[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v1 00/13] Enable Memory Bandwidth Allocation in Xen



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
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.