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

[Xen-devel] [PATCH v7 00/16] 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_v7

This version bases on below pre-fix patch which has been merged into staging
branch:
"x86: psr: support co-exist features' values setting"
https://lists.xen.org/archives/html/xen-devel/2017-10/msg00866.html

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 V7:

a - Acked-by
r - Reviewed-by

  r  patch 1  - docs: create Memory Bandwidth Allocation (MBA) feature document
  ar patch 2  - Rename PSR sysctl/domctl interfaces and xsm policy to make them 
be general
  ar patch 3  - x86: rename 'cbm_type' to 'psr_type' to make it general
  ar patch 4  - x86: a few optimizations to psr codes
  r  patch 5  - x86: implement data structure and CPU init flow for MBA
  ar patch 6  - x86: implement get hw info flow for MBA
  ar patch 7  - x86: implement get value interface for MBA
  ar patch 9  - tools: create general interfaces to support psr allocation 
features
  ar patch 10 - tools: implement the new libxc get hw info interface
  ar patch 11 - tools: implement the new libxl get hw info interface
  ar patch 12 - tools: implement the new xl get hw info interface
  ar patch 13 - tools: rename 'xc_psr_cat_type' to 'xc_psr_type'
  ar patch 14 - tools: implement new generic get value interface and MBA get 
value command
  ar patch 15 - tools: implement new generic set value interface and MBA set 
value command
  ar patch 16 - docs: add MBA description in docs

---
V7 change list:

Patch 2:
    - add single trailing underscore for internal variabled in macro.
      (suggested by Jan Beulich)
    - add parentheses for input parameters of marcro.
      (suggested by Jan Beulich)
    - adjust the postion of macro.
      (suggested by Jan Beulich)
    - rebase to latest codes.
Patch 4:
    - adjust the check to 'cat_init_feature' in 'psr_cpu_init'.
      (suggested by Jan Beulich)
    - change 'PSR_INFO_IDX_CAT_FLAG' to 'PSR_INFO_IDX_CAT_FLAGS'.
      (suggested by Jan Beulich)
Patch 5:
    - modify commit message.
      (suggested by Jan Beulich)
    - move the changes about check of 'cat_init_feature' in 'psr_cpu_init'
      into previous patch.
      (suggested by Jan Beulich)
Patch 6:
    - change 'PSR_INFO_IDX_MBA_FLAG' to 'PSR_INFO_IDX_MBA_FLAGS'.
      (suggested by Jan Beulich)
Patch 8:
    - change name of 'check_val' to 'sanitize'.
      (suggested by Jan Beulich)
    - fix comments.
      (suggested by Jan Beulich)
    - add parentheses and change '== 0' to '!'.
      (suggested by Jan Beulich)
    - remove unnecessary check of 'mba.thrtl_max'.
      (suggested by Jan Beulich)
    - remove unnecessary intermediate variable 'mod'.
      (suggested by Jan Beulich)
    - refine an assignement sentence to use '&='.
      (suggested by Jan Beulich)
    - change type of last parameter of 'sanitize' to 'uint32_t' and
      apply same change to 'cat_check_cbm'.
      (suggested by Jan Beulich)

Yi Sun (16):
  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: a few optimizations to psr codes
  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  | 297 +++++++++++++++++++++++++++++++++++
 docs/man/xl.pod.1.in                |  33 ++++
 docs/misc/xl-psr.markdown           |  62 ++++++++
 tools/flask/policy/modules/dom0.te  |   4 +-
 tools/libxc/include/xenctrl.h       |  44 ++++--
 tools/libxc/xc_psr.c                | 109 +++++++------
 tools/libxl/libxl.h                 |  37 +++++
 tools/libxl/libxl_psr.c             | 223 +++++++++++++++++++++------
 tools/libxl/libxl_types.idl         |  22 +++
 tools/xl/xl.h                       |   2 +
 tools/xl/xl_cmdtable.c              |  12 ++
 tools/xl/xl_psr.c                   | 279 ++++++++++++++++++++++++++-------
 xen/arch/x86/domctl.c               |  87 ++++++-----
 xen/arch/x86/psr.c                  | 298 +++++++++++++++++++++++++++---------
 xen/arch/x86/sysctl.c               |  57 ++++---
 xen/include/asm-x86/msr-index.h     |   1 +
 xen/include/asm-x86/psr.h           |  24 +--
 xen/include/public/domctl.h         |  26 ++--
 xen/include/public/sysctl.h         |  20 ++-
 xen/xsm/flask/hooks.c               |   8 +-
 xen/xsm/flask/policy/access_vectors |   8 +-
 21 files changed, 1323 insertions(+), 330 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®.