xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Yi Sun <yi.y.sun@linux.intel.com>
To: xen-devel@lists.xenproject.org
Cc: kevin.tian@intel.com, wei.liu2@citrix.com,
	andrew.cooper3@citrix.com, dario.faggioli@citrix.com,
	ian.jackson@eu.citrix.com, Yi Sun <yi.y.sun@linux.intel.com>,
	julien.grall@arm.com, mengxu@cis.upenn.edu, jbeulich@suse.com,
	chao.p.peng@linux.intel.com, roger.pau@citrix.com
Subject: [PATCH v1 00/13] Enable Memory Bandwidth Allocation in Xen
Date: Wed,  9 Aug 2017 15:41:39 +0800	[thread overview]
Message-ID: <1502264512-4648-1-git-send-email-yi.y.sun@linux.intel.com> (raw)

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

             reply	other threads:[~2017-08-09  7:57 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-09  7:41 Yi Sun [this message]
2017-08-09  7:41 ` [PATCH v1 01/13] docs: create Memory Bandwidth Allocation (MBA) feature document Yi Sun
2017-08-14  7:35   ` Chao Peng
2017-08-14  8:23     ` Yi Sun
2017-08-14  9:36       ` Chao Peng
2017-08-15 10:08   ` Wei Liu
2017-08-16  2:51     ` Yi Sun
2017-08-09  7:41 ` [PATCH v1 02/13] Rename PSR sysctl/domctl interfaces and xsm policy to make them be general Yi Sun
2017-08-15 10:12   ` Wei Liu
2017-08-16  2:48     ` Yi Sun
2017-08-15 14:03   ` Daniel De Graaf
2017-08-09  7:41 ` [PATCH v1 03/13] x86: rename 'cbm_type' to 'psr_val_type' to make it general Yi Sun
2017-08-15 10:13   ` Wei Liu
2017-08-16  2:17   ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 04/13] x86: implement data structure and CPU init flow for MBA Yi Sun
2017-08-15 10:50   ` Wei Liu
2017-08-16  7:18     ` Yi Sun
2017-08-17  9:49       ` Wei Liu
2017-08-16  3:14   ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 05/13] x86: implement get hw info " Yi Sun
2017-08-16  3:23   ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 06/13] x86: implement get value interface " Yi Sun
2017-08-16  6:38   ` Chao Peng
2017-08-16  6:43     ` Yi Sun
2017-08-17  7:51       ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 07/13] x86: implement set value flow " Yi Sun
2017-08-18  3:32   ` Chao Peng
2017-08-18  9:25     ` Yi Sun
2017-08-21  7:54       ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 08/13] tools: create general interfaces to support psr allocation features Yi Sun
2017-08-21 10:12   ` Chao Peng
2017-08-22  2:38     ` Yi Sun
2017-08-22  6:42       ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 09/13] tools: implement the new get hw info interface suitable to all " Yi Sun
2017-08-15 11:14   ` Wei Liu
2017-08-21 10:13   ` Chao Peng
2017-08-22  2:38     ` Yi Sun
2017-08-09  7:41 ` [PATCH v1 10/13] tools: rename 'xc_psr_cat_type' to 'xc_psr_val_type' Yi Sun
2017-08-15 11:15   ` Wei Liu
2017-08-21 10:13   ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 11/13] tools: implemet new get value interface suitable for all psr allocation features Yi Sun
2017-08-15 11:24   ` Wei Liu
2017-08-21 10:14   ` Chao Peng
2017-08-22  2:24     ` Yi Sun
2017-08-22  6:44       ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 12/13] tools: implemet new set " Yi Sun
2017-08-15 11:25   ` Wei Liu
2017-08-21 10:15     ` Chao Peng
2017-08-09  7:41 ` [PATCH v1 13/13] docs: add MBA description in docs Yi Sun
2017-08-15 11:26   ` Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1502264512-4648-1-git-send-email-yi.y.sun@linux.intel.com \
    --to=yi.y.sun@linux.intel.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=chao.p.peng@linux.intel.com \
    --cc=dario.faggioli@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=julien.grall@arm.com \
    --cc=kevin.tian@intel.com \
    --cc=mengxu@cis.upenn.edu \
    --cc=roger.pau@citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).