[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 01/15] docs: create Memory Bandwidth Allocation (MBA) feature document
On 17-09-18 18:16:40, Roger Pau Monn� wrote: > On Tue, Sep 05, 2017 at 05:32:23PM +0800, Yi Sun wrote: > > +* xl interfaces: > > + > > + 1. `psr-mba-show [domain-id]`: > > Is this limited to domain-id, or one can also use the domain name? > Most of the xl commands accept either a domain-id or a domain-name. > Both domain-id and domain-name can show it. I thought this is by default and no need to explicitly declare. If I am wrong, I will change it as below: `psr-mba-show [domain-id/domain-name]` [...] > > + 2. `psr-mba-set [OPTIONS] <domain-id> <throttling>`: > > + > > + Set memory bandwidth throttling for domain. > > + > > + Options: > > + '-s': Specify the socket to process, otherwise all sockets are > > processed. > > + > > + Throttling value set in register implies the approximate amount of > > delaying > > + the traffic between core and memory. The higher throttling value > > results in > > + lower bandwidth. The max throttling value (MBA_MAX) supported can be > > got > > s/got/obtained/ > Thanks! > > + through CPUID. > > How can one get this value empirically? Do I need to use a external > tool? > Sorry for confusion. In fact, the MBA_MAX is got through CPUID in hypervisor. User can know it through psr-hwinfo. Will explain it. > > + > > + Linear mode: the input precision is defined as 100-(MBA_MAX). For > > instance, > > + if the MBA_MAX value is 90, the input precision is 10%. Values not an > > even > > + multiple of the precision (e.g., 12%) will be rounded down (e.g., to > > 10% > > + delay applied) by HW automatically. > > + > > + Non-linear mode: input delay values are powers-of-two from zero to the > > + MBA_MAX value from CPUID. In this case any values not a power of two > > will > > + be rounded down the next nearest power of two by HW automatically. > > Both of the above descriptions should be moved to mba-show IMHO, the > description there is incomplete and not helpful. > Ok, thanks! > > + > > +# Technical details > > + > > +MBA is a member of Intel PSR features, it shares the base PSR > > infrastructure > > +in Xen. > > + > > +## Hardware perspective > > + > > + MBA defines a range of MSRs to support specifying a delay value (Thrtl) > > per > > + COS, with details below. > > + > > + ``` > > + +----------------------------+----------------+ > > + | MSR (per socket) | Address | > > + +----------------------------+----------------+ > > + | IA32_L2_QOS_Ext_BW_Thrtl_0 | 0xD50 | > > + +----------------------------+----------------+ > > + | ... | ... | > > + +----------------------------+----------------+ > > + | IA32_L2_QOS_Ext_BW_Thrtl_n | 0xD50+n | > > + +----------------------------+----------------+ > > + ``` > > + > > + When context switch happens, the COS ID of domain is written to > > per-thread MSR > > + `IA32_PQR_ASSOC`, and then hardware enforces bandwidth allocation > > according > > I think this is missing some context of the relation between a thread > and the MSR. I assume it's related to IA32_PQR_ASSOC, but I have no > idea what that constant means. > > What's more, Xen doesn't have threads, so you should maybe speak about > vCPUs instead? > As Jan's comment, this is for 'per-hyper-thread'. [...] > > +## Implementation Description > > + > > +* Hypervisor interfaces: > > + > > + 1. Boot line param: "psr=mba" to enable the feature. > > + > > + 2. SYSCTL: > > + - XEN_SYSCTL_PSR_MBA_get_info: Get system MBA information. > > So this is likely how one gets the mentioned MBA_MAX? > Yup. > > + > > + 3. DOMCTL: > > + - XEN_DOMCTL_PSR_MBA_OP_GET_THRTL: Get throttling for a domain. > > + - XEN_DOMCTL_PSR_MBA_OP_SET_THRTL: Set throttling for a domain. > > + > > +* xl interfaces: > > + > > + 1. psr-mba-show [domain-id] > > + Show system/domain runtime MBA throttling value. For linear mode, > > + it shows the decimal value. For non-linear mode, it shows > > hexadecimal > > + value. > > + => XEN_SYSCTL_PSR_MBA_get_info/XEN_DOMCTL_PSR_MBA_OP_GET_THRTL > > + > > + 2. psr-mba-set [OPTIONS] <domain-id> <throttling> > > + Set bandwidth throttling for a domain. > > + => XEN_DOMCTL_PSR_MBA_OP_SET_THRTL > > + > > + 3. psr-hwinfo > > + Show PSR HW information, including L3 CAT/CDP/L2 CAT/MBA. > > + => XEN_SYSCTL_PSR_MBA_get_info > > 'psr-hwinfo' seems to be completely missing from the 'xl interfaces:' > section above. > Because this is not a newly added interface, I do not describe it in 'xl interfaces'. Is that necessary? > > +* Key data structure: > > + > > + 1. Feature HW info > > + > > + ``` > > + struct { > > + unsigned int thrtl_max; > > + bool linear; > > + } mba; > > + > > + - Member `thrtl_max` > > + > > + `thrtl_max` is the max throttling value to be set, i.e. MBA_MAX. > > + > > + - Member `linear` > > + > > + `linear` means the response of delay value is linear or not. > > + > > + As mentioned above, MBA is a member of Intel PSR features, it would > > + share the base PSR infrastructure in Xen. For example, the 'cos_max' > > + is a common HW property for all features. So, for other data structure > > + details, please refer 'intel_psr_cat_cdp.pandoc'. > ^ to Thanks! > > + > > +# Limitations > > + > > +MBA can only work on HW which enables it (check by CPUID). > ^ s/enables/supports/. Thanks! > > + > > +# Testing > > + > > +We can execute these commands to verify MBA on different HWs supporting > > them. > > + > > +For example: > > + 1. User can get the MBA hardware info through 'psr-hwinfo' command. From > > + result, user can know if this hardware works under linear mode or non- > > + linear mode, the max throttling value (MBA_MAX) and so on. > > + > > + root@:~$ xl psr-hwinfo --mba > > + Memory Bandwidth Allocation (MBA): > > + Socket ID : 0 > > + Linear Mode : Enabled > > + Maximum COS : 7 > > + Maximum Throttling Value: 90 > > + Default Throttling Value: 0 > > + > > + 2. Then, user can set a throttling value to a domain. For example, set > > '0xa', > > + i.e 10% delay. > > + > > + root@:~$ xl psr-mba-set 1 0xa > > + > > + 3. User can check the current configuration of the domain through > > + 'psr-mab-show'. For linear mode, the decimal value is shown. > > + > > + root@:~$ xl psr-mba-show 1 > > + Socket ID : 0 > > + Default THRTL : 0 > > + ID NAME THRTL > > + 1 ubuntu14 10 > > The example seems better now IMHO. > > Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |