Hi, all, We plan to bring a new PSR (Platform Shared Resource) feature called Intel Memory Bandwidth Allocation (MBA) to Xen.
Besides the MBA enabling, we change some interfaces to make them more general but not only for CAT. The implementation bases on below patch set which has been merged into staging branch. [PATCH v15 00/23] Enable L2 Cache Allocation Technology & Refactor psr.c https://lists.xen.org/archives/html/xen-devel/2017-08/msg00029.html Any comments are welcome! You can find this patch set at: https://github.com/yisun-git/xen_mba mba_v1 --- V1 change list comparing to RFC v2: Patch 1: - remove a special character to avoid the error when building pandoc. Patch 2: - add description about what to be changed in commit message. (suggested by Wei Liu) - bump sysctl/domctl version numbers. (suggested by Wei Liu) Patch 3: - rebase codes onto L2 CAT v15. - use '(1u << X)'. (suggested by Wei Liu) - move comment to appropriate place. (suggested by Chao Peng) - implement 'mba_init_feature' and keep 'cat_init_feature'. (suggested by Chao Peng) - keep 'regs.b' into a local variable to avoid reading CPUID every time. (suggested by Chao Peng) Patch 5: - sort 'PSR_INFO_IDX_' macros as feature. (suggested by Chao Peng) - rename 'PSR_INFO_IDX_MBA_LINEAR' to 'PSR_INFO_IDX_MBA_FLAG'. - rename 'linear' in 'struct mba_info' to 'flags' for future extension. (suggested by Chao Peng) Patch 7: - rename 'check_change_val' to 'check_val'. (suggested by Chao Peng) - rename 'cat_check_change_val' to 'cat_check_cbm'. (suggested by Chao Peng) - rename 'mba_check_change_val' to 'mba_check_thrtl'. (suggested by Chao Peng) Patch 8: - change 'uint32_t target' to 'unsigned int target'. (suggested by Wei Liu) - change 'int nr' to 'unsigned int nr'. (suggested by Wei Liu) - change 'int lvl' to 'unsigned int lvl'. - change 'EXIT_FAILURE' to 'ERROR_FAIL'. (suggested by Wei Liu) - add 'dir=DIR_OUT' for 'libxl_psr_hw_info'. (suggested by Wei Liu) Patch 9: - remove the pointless initialization for 'xc_psr_feat_type'. (suggested by Wei Liu) - use 'libxl__' for internal functions. (suggested by Wei Liu) - change error value '-1' to 'ERROR_INVAL'. (suggested by Wei Liu) - remove an extraneous space. (suggested by Wei Liu) - replace some 'int' to 'unsigned int'. (suggested by Wei Liu) - remove test to macro 'LIBXL_HAVE_PSR_MBA'. (suggested by Wei Liu) - change 'mba_info.linear' to 'mba_info.flags'. (suggested by Chao Peng) - adjust print info only to show the MBA info after successfully getting HW info. Patch 10: - split this patch out from next 'get value' patch. (suggested by Wei Liu) Yi Sun (13): docs: create Memory Bandwidth Allocation (MBA) feature document Rename PSR sysctl/domctl interfaces and xsm policy to make them be general x86: rename 'cbm_type' to 'psr_val_type' to make it general x86: implement data structure and CPU init flow for MBA x86: implement get hw info flow for MBA x86: implement get value interface for MBA x86: implement set value flow for MBA tools: create general interfaces to support psr allocation features tools: implement the new get hw info interface suitable to all psr allocation features tools: rename 'xc_psr_cat_type' to 'xc_psr_val_type' tools: implemet new get value interface suitable for all psr allocation features tools: implemet new set value interface suitable for all psr allocation features docs: add MBA description in docs docs/features/intel_psr_mba.pandoc | 247 ++++++++++++++++++++++ docs/man/xl.pod.1.in | 33 +++ docs/misc/xl-psr.markdown | 60 ++++++ tools/flask/policy/modules/dom0.te | 4 +- tools/libxc/include/xenctrl.h | 47 ++++- tools/libxc/xc_psr.c | 88 +++++--- tools/libxl/libxl.h | 35 +++- tools/libxl/libxl_psr.c | 227 +++++++++++++++++---- tools/libxl/libxl_types.idl | 22 ++ tools/xl/xl.h | 2 + tools/xl/xl_cmdtable.c | 12 ++ tools/xl/xl_psr.c | 273 +++++++++++++++++++------ xen/arch/x86/domctl.c | 65 +++--- xen/arch/x86/psr.c | 394 +++++++++++++++++++++++++++--------- xen/arch/x86/sysctl.c | 47 +++-- xen/include/asm-x86/msr-index.h | 1 + xen/include/asm-x86/psr.h | 22 +- xen/include/public/domctl.h | 14 +- xen/include/public/sysctl.h | 20 +- xen/xsm/flask/hooks.c | 8 +- xen/xsm/flask/policy/access_vectors | 8 +- 21 files changed, 1323 insertions(+), 306 deletions(-) create mode 100644 docs/features/intel_psr_mba.pandoc -- 1.9.1 _______________________________________________ Xen-devel mailing list Xenfirstname.lastname@example.org https://lists.xen.org/xen-devel