From: tip-bot for Fenghua Yu <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@kernel.org, reinette.chatre@intel.com, hpa@zytor.com,
linux-kernel@vger.kernel.org, tony.luck@intel.com,
fenghua.yu@intel.com, tglx@linutronix.de
Subject: [tip:x86/cache] x86/intel_rdt: Show bitmask of shareable resource with other executing units
Date: Tue, 1 Aug 2017 13:57:31 -0700 [thread overview]
Message-ID: <tip-0dd2d7494cd818d06a2ae1cd840cd62124a2d25e@git.kernel.org> (raw)
In-Reply-To: <20170725223904.12996-1-tony.luck@intel.com>
Commit-ID: 0dd2d7494cd818d06a2ae1cd840cd62124a2d25e
Gitweb: http://git.kernel.org/tip/0dd2d7494cd818d06a2ae1cd840cd62124a2d25e
Author: Fenghua Yu <fenghua.yu@intel.com>
AuthorDate: Tue, 25 Jul 2017 15:39:04 -0700
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 1 Aug 2017 22:41:30 +0200
x86/intel_rdt: Show bitmask of shareable resource with other executing units
CPUID.(EAX=0x10, ECX=res#):EBX[31:0] reports a bit mask for a resource.
Each set bit within the length of the CBM indicates the corresponding
unit of the resource allocation may be used by other entities in the
platform (e.g. an integrated graphics engine or hardware units outside
the processor core and have direct access to the resource). Each
cleared bit within the length of the CBM indicates the corresponding
allocation unit can be configured to implement a priority-based
allocation scheme without interference with other hardware agents in
the system. Bits outside the length of the CBM are reserved.
More details on the bit mask are described in x86 Software Developer's
Manual.
The bitmask is shown in "info" directory for each resource. It's
up to user to decide how to use the bitmask within a CBM in a partition
to share or isolate a resource with other executing units.
Suggested-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: ravi.v.shankar@intel.com
Cc: peterz@infradead.org
Cc: eranian@google.com
Cc: ak@linux.intel.com
Cc: davidcc@google.com
Cc: vikas.shivappa@linux.intel.com
Link: http://lkml.kernel.org/r/20170725223904.12996-1-tony.luck@intel.com
---
Documentation/x86/intel_rdt_ui.txt | 7 +++++++
arch/x86/kernel/cpu/intel_rdt.c | 2 ++
arch/x86/kernel/cpu/intel_rdt.h | 3 +++
arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 16 ++++++++++++++++
4 files changed, 28 insertions(+)
diff --git a/Documentation/x86/intel_rdt_ui.txt b/Documentation/x86/intel_rdt_ui.txt
index 76f21e2..4d8848e 100644
--- a/Documentation/x86/intel_rdt_ui.txt
+++ b/Documentation/x86/intel_rdt_ui.txt
@@ -48,6 +48,13 @@ related to allocation:
"min_cbm_bits": The minimum number of consecutive bits which
must be set when writing a mask.
+"shareable_bits": Bitmask of shareable resource with other executing
+ entities (e.g. I/O). User can use this when
+ setting up exclusive cache partitions. Note that
+ some platforms support devices that have their
+ own settings for cache use which can over-ride
+ these bits.
+
Memory bandwitdh(MB) subdirectory contains the following files
with respect to allocation:
diff --git a/arch/x86/kernel/cpu/intel_rdt.c b/arch/x86/kernel/cpu/intel_rdt.c
index de26aa7..da4f389 100644
--- a/arch/x86/kernel/cpu/intel_rdt.c
+++ b/arch/x86/kernel/cpu/intel_rdt.c
@@ -193,6 +193,7 @@ static inline bool cache_alloc_hsw_probe(void)
r->num_closid = 4;
r->default_ctrl = max_cbm;
r->cache.cbm_len = 20;
+ r->cache.shareable_bits = 0xc0000;
r->cache.min_cbm_bits = 2;
r->alloc_capable = true;
r->alloc_enabled = true;
@@ -260,6 +261,7 @@ static void rdt_get_cache_alloc_cfg(int idx, struct rdt_resource *r)
r->num_closid = edx.split.cos_max + 1;
r->cache.cbm_len = eax.split.cbm_len + 1;
r->default_ctrl = BIT_MASK(eax.split.cbm_len + 1) - 1;
+ r->cache.shareable_bits = ebx & r->default_ctrl;
r->data_width = (r->cache.cbm_len + 3) / 4;
r->alloc_capable = true;
r->alloc_enabled = true;
diff --git a/arch/x86/kernel/cpu/intel_rdt.h b/arch/x86/kernel/cpu/intel_rdt.h
index 94e488a..4040bf1 100644
--- a/arch/x86/kernel/cpu/intel_rdt.h
+++ b/arch/x86/kernel/cpu/intel_rdt.h
@@ -227,12 +227,15 @@ struct msr_param {
* @cbm_idx_offset: Offset of CBM index. CBM index is computed by:
* closid * cbm_idx_multi + cbm_idx_offset
* in a cache bit mask
+ * @shareable_bits: Bitmask of shareable resource with other
+ * executing entities
*/
struct rdt_cache {
unsigned int cbm_len;
unsigned int min_cbm_bits;
unsigned int cbm_idx_mult;
unsigned int cbm_idx_offset;
+ unsigned int shareable_bits;
};
/**
diff --git a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
index c24dd06..2621ae3 100644
--- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
+++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
@@ -596,6 +596,15 @@ static int rdt_min_cbm_bits_show(struct kernfs_open_file *of,
return 0;
}
+static int rdt_shareable_bits_show(struct kernfs_open_file *of,
+ struct seq_file *seq, void *v)
+{
+ struct rdt_resource *r = of->kn->parent->priv;
+
+ seq_printf(seq, "%x\n", r->cache.shareable_bits);
+ return 0;
+}
+
static int rdt_min_bw_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
@@ -712,6 +721,13 @@ static struct rftype res_common_files[] = {
.fflags = RF_CTRL_INFO | RFTYPE_RES_CACHE,
},
{
+ .name = "shareable_bits",
+ .mode = 0444,
+ .kf_ops = &rdtgroup_kf_single_ops,
+ .seq_show = rdt_shareable_bits_show,
+ .fflags = RF_CTRL_INFO | RFTYPE_RES_CACHE,
+ },
+ {
.name = "min_bandwidth",
.mode = 0444,
.kf_ops = &rdtgroup_kf_single_ops,
next prev parent reply other threads:[~2017-08-01 20:58 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-25 21:14 [PATCH 00/28 V2] Cqm3 patch series(along with MBM support) Vikas Shivappa
2017-07-25 21:14 ` [PATCH 01/28] x86/perf/cqm: Wipe out perf based cqm Vikas Shivappa
2017-08-01 20:46 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 02/28] x86/intel_rdt/cqm: Documentation for resctrl based RDT Monitoring Vikas Shivappa
2017-08-01 20:46 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 03/28] x86/intel_rdt: Introduce a common compile option for RDT Vikas Shivappa
2017-08-01 20:47 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 04/28] x86/intel_rdt: Change file names to accommodate RDT monitor code Vikas Shivappa
2017-08-01 20:47 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 05/28] x86/intel_rdt: Mark rdt_root and closid_alloc as static Vikas Shivappa
2017-08-01 20:48 ` [tip:x86/cache] " tip-bot for Reinette Chatre
2017-07-25 21:14 ` [PATCH 06/28] x86/intel_rdt: Cleanup namespace to support RDT monitoring Vikas Shivappa
2017-08-01 20:48 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 07/28] x86/intel_rdt: make rdt_resources_all more readable Vikas Shivappa
2017-08-01 20:48 ` [tip:x86/cache] x86/intel_rdt: Make " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 08/28] x86/intel_rdt/cqm: Add RDT monitoring initialization Vikas Shivappa
2017-08-01 20:49 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 09/28] x86/intel_rdt/cqm: Add RMID(Resource monitoring ID) management Vikas Shivappa
2017-08-01 20:14 ` Thomas Gleixner
2017-08-02 7:41 ` Shivappa Vikas
2017-08-01 20:49 ` [tip:x86/cache] x86/intel_rdt/cqm: Add RMID (Resource " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 10/28] x86/intel_rdt: Simplify info and base file lists Vikas Shivappa
2017-08-01 20:34 ` Thomas Gleixner
2017-08-01 20:50 ` [tip:x86/cache] " tip-bot for Tony luck
2017-07-25 21:14 ` [PATCH 11/28] x86/intel_rdt/cqm: Add info files for RDT monitoring Vikas Shivappa
2017-08-01 20:40 ` Thomas Gleixner
2017-08-01 20:50 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 12/28] x86/intel_rdt: Prepare for RDT monitoring mkdir support Vikas Shivappa
2017-08-01 20:50 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 13/28] x86/intel_rdt/cqm: Add mkdir support for RDT monitoring Vikas Shivappa
2017-08-01 20:51 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 14/28] x86/intel_rdt: Change closid type from int to u32 Vikas Shivappa
2017-08-01 20:51 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 15/28] x86/intel_rdt/cqm: Add tasks file support Vikas Shivappa
2017-08-01 20:52 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 16/28] x86/intel_rdt: Prepare to add RDT monitor cpus " Vikas Shivappa
2017-08-01 19:49 ` Thomas Gleixner
2017-08-01 21:35 ` Shivappa Vikas
2017-08-01 20:52 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 17/28] x86/intel_rdt/cqm: Add " Vikas Shivappa
2017-08-01 20:52 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 18/28] x86/intel_rdt: Prepare for RDT monitor data support Vikas Shivappa
2017-08-01 20:53 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 19/28] x86/intel_rdt/cqm: Add mon_data Vikas Shivappa
2017-08-01 20:53 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 20/28] x86/intel_rdt: Separate the ctrl bits from rmdir Vikas Shivappa
2017-08-01 20:54 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 21/28] x86/intel_rdt/cqm: Add rmdir support Vikas Shivappa
2017-08-01 20:54 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 22/28] x86/intel_rdt/cqm: Add mount,umount support Vikas Shivappa
2017-08-01 20:54 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 23/28] x86/intel_rdt: Introduce rdt_enable_key for scheduling Vikas Shivappa
2017-08-01 20:55 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 24/28] x86/intel_rdt/cqm: Add sched_in support Vikas Shivappa
2017-08-01 20:55 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 25/28] x86/intel_rdt/cqm: Add hotcpu support Vikas Shivappa
2017-08-01 20:55 ` [tip:x86/cache] x86/intel_rdt/cqm: Add CPU hotplug support tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 26/28] x86/intel_rdt/mbm: Basic counting of MBM events (total and local) Vikas Shivappa
2017-08-01 20:56 ` [tip:x86/cache] " tip-bot for Tony Luck
2017-07-25 21:14 ` [PATCH 27/28] x86/intel_rdt/mbm: Add mbm counter initialization Vikas Shivappa
2017-08-01 20:56 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 21:14 ` [PATCH 28/28] x86/intel_rdt/mbm: Handle counter overflow Vikas Shivappa
2017-08-01 20:57 ` [tip:x86/cache] " tip-bot for Vikas Shivappa
2017-07-25 22:39 ` [PATCH] x86/intel_rdt: Show bitmask of shareable resource with other executing units Luck, Tony
2017-08-01 20:57 ` tip-bot for Fenghua Yu [this message]
2017-07-25 22:42 ` [RFC PATCH] Add "-f" and "-F" flags to watch a "/sys? style file (single number) Luck, Tony
2017-08-01 20:51 ` [PATCH 00/28 V2] Cqm3 patch series(along with MBM support) Thomas Gleixner
2017-08-01 21:39 ` Shivappa Vikas
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=tip-0dd2d7494cd818d06a2ae1cd840cd62124a2d25e@git.kernel.org \
--to=tipbot@zytor.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=reinette.chatre@intel.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
/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
Powered by JetHome