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

[Xen-devel] [PATCH v4 00/15] 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.

Any comments are welcome!

You can find this series at:
https://github.com/yisun-git/xen_mba mba_v4

CC: Jan Beulich <jbeulich@xxxxxxxx>
CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CC: Wei Liu <wei.liu2@xxxxxxxxxx>
CC: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
CC: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
CC: Chao Peng <chao.p.peng@xxxxxxxxxxxxxxx>
CC: Julien Grall <julien.grall@xxxxxxx>

---
Acked and Reviewed list before V4:

a - Acked-by
r - Reviewed-by

  ar patch 2  - Rename PSR sysctl/domctl interfaces and xsm policy to make them 
be general
  r  patch 3  - x86: rename 'cbm_type' to 'psr_type' to make it general
  r  patch 6  - x86: implement get value interface for MBA
  ar patch 12 - tools: rename 'xc_psr_cat_type' to 'xc_psr_type'
  a  patch 13 - tools: implement new generic get value interface and MBA get 
value command
  a  patch 15 - docs: add MBA description in docs

---
V4 change list:

Patch 1:
    - add 'domain-name' as parameter of 'psr-mba-show/psr-mba-set'.
      (suggested by Roger Pau Monné)
    - fix some wordings.
      (suggested by Roger Pau Monné)
    - explain how user can know the MBA_MAX.
      (suggested by Roger Pau Monné)
    - move the description of 'Linear mode/Non-linear mode' into section
      of 'psr-mba-show'.
      (suggested by Roger Pau Monné)
    - change 'per-thread' to 'per-hyper-thread' to make it clearer.
      (suggested by Roger Pau Monné)
    - upgrade revision number.
Patch 2:
    - remove 'ALLOC_' from names.
      (suggested by Roger Pau Monné)
    - fix comments.
      (suggested by Roger Pau Monné)
Patch 3:
    - fix words in commit message.
      (suggested by Roger Pau Monné)
Patch 4:
    - modify commit message.
      (suggested by Roger Pau Monné)
    - fix a comment.
      (suggested by Roger Pau Monné)
    - join two checks in a single if.
      (suggested by Roger Pau Monné)
    - remove redundant initialization of 'feat->cos_reg_val[0]'.
      (suggested by Roger Pau Monné)
    - change 'reg_b' to 'ebx'.
      (suggested by Jan Beulich)
    - change type of 'mba_init_feature' from 'int' to 'bool'.
      (suggested by Roger Pau Monné)
    - change type of 'cat_init_feature' from 'int' to 'bool'.
Patch 5:
    - remove 'ALLOC_' from macro names.
      (suggested by Roger Pau Monné)
    - initialize 'data[PSR_INFO_ARRAY_SIZE]' to 0 to prevent to leak stack data.
      (suggested by Roger Pau Monné)
Patch 6:
    - remove 'ALLOC_' from macro names.
      (suggested by Roger Pau Monné)
Patch 7:
    - remove 'ALLOC_' from macro names.
      (suggested by Roger Pau Monné)
    - join two checks into a single if.
      (suggested by Roger Pau Monné)
    - remove redundant local variable 'array_len'.
      (suggested by Roger Pau Monné)
Patch 8:
    - add description for LIBXL_HAVE_PSR_GENERIC to mention newly added
      public functions.
      (suggested by Roger Pau Monné)
Patch 9:
    - remove 'ALLOC_' from macro names.
      (suggested by Roger Pau Monné)
    - remove 'XC_PSR_FEAT_UNKNOWN' which is not necessary.
      (suggested by Roger Pau Monné)
    - remove 'FEAT_' from enum item names.
      (suggested by Roger Pau Monné)
    - remove 'xc_' from struct name.
      (suggested by Roger Pau Monné)
    - adjust codes to reduce indentation.
      (suggested by Roger Pau Monné)
    - assert for not happened case.
      (suggested by Roger Pau Monné)
    - add LOGE to show errno.
      (suggested by Roger Pau Monné)
Patch 10:
    - remove 'xc_' from struct name.
      (suggested by Roger Pau Monné)
    - fix words in commit message.
      (suggested by Roger Pau Monné)
    - change type of 'libxl__hw_info_to_libxl_cat_info' to void and use
      assert to check invalid type. Then, remove check for
      'libxl__hw_info_to_libxl_cat_info'.
      (suggested by Roger Pau Monné)
    - change type of 'libxl__xc_hw_info_to_libxl_hw_info' to void and use
      assert to check invalid type. Then, remove check for
      'libxl__xc_hw_info_to_libxl_hw_info'.
      (suggested by Roger Pau Monné)
Patch 12:
    - move assignment of xc_type to its declaration place.
      (suggested by Roger Pau Monné)
Patch 13:
    - use designated initializers for 'feat_name[]'.
      (suggested by Roger Pau Monné)
    - use LOG in 'libxl__psr_alloc_log_err_msg'.
      (suggested by Roger Pau Monné)
Patch 14:
    - remove 'ALLOC_' from macro name.
      (suggested by Roger Pau Monné)
    - adjust place of argc check and return EXIT_FAILURE.
      (suggested by Roger Pau Monné)
    - fix indentation issue.
      (suggested by Roger Pau Monné)
    - move same type local variables declaration to a single line.
      (suggested by Roger Pau Monné)
Patch 15:
    - modify description of MBA in 'xl.pod.1.in' to be same as feature doc.
      (suggested by Roger Pau Monné)
    - fix words issue.
      (suggested by Roger Pau Monné)

Yi Sun (15):
  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_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 libxc get hw info interface
  tools: implement the new libxl get hw info interface
  tools: implement the new xl get hw info interface
  tools: rename 'xc_psr_cat_type' to 'xc_psr_type'
  tools: implement new generic get value interface and  MBA get value
    command
  tools: implement new generic set value interface and MBA set value
    command
  docs: add MBA description in docs

 docs/features/intel_psr_mba.pandoc  | 291 +++++++++++++++++++++++++++++
 docs/man/xl.pod.1.in                |  33 ++++
 docs/misc/xl-psr.markdown           |  63 +++++++
 tools/flask/policy/modules/dom0.te  |   4 +-
 tools/libxc/include/xenctrl.h       |  46 +++--
 tools/libxc/xc_psr.c                | 114 +++++++-----
 tools/libxl/libxl.h                 |  37 ++++
 tools/libxl/libxl_psr.c             | 219 +++++++++++++++++-----
 tools/libxl/libxl_types.idl         |  22 +++
 tools/xl/xl.h                       |   2 +
 tools/xl/xl_cmdtable.c              |  12 ++
 tools/xl/xl_psr.c                   | 280 ++++++++++++++++++++++------
 xen/arch/x86/domctl.c               |  81 ++++----
 xen/arch/x86/psr.c                  | 358 +++++++++++++++++++++++++-----------
 xen/arch/x86/sysctl.c               |  53 ++++--
 xen/include/asm-x86/msr-index.h     |   1 +
 xen/include/asm-x86/psr.h           |  22 ++-
 xen/include/public/domctl.h         |  32 ++--
 xen/include/public/sysctl.h         |  28 ++-
 xen/xsm/flask/hooks.c               |   8 +-
 xen/xsm/flask/policy/access_vectors |   8 +-
 21 files changed, 1354 insertions(+), 360 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®.