mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 22:22:08 +02:00
x86/resctrl: Add a new field to struct rmid_read for summation of domains
When a user reads a monitor file rdtgroup_mondata_show() calls mon_event_read()
to package up all the required details into an rmid_read structure which is
passed across the smp_call*() infrastructure to code that will read data from
hardware and return the value (or error status) in the rmid_read structure.
Sub-NUMA Cluster (SNC) mode adds files with new semantics. These require the
smp_call-ed code to sum event data from all domains that share an L3 cache.
Add a pointer to the L3 "cacheinfo" structure to struct rmid_read for the data
collection routines to use to pick the domains to be summed.
[ Reinette: the rmid_read structure has become complex enough so document each
of its fields and provide the kerneldoc documentation for struct rmid_read. ]
Co-developed-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: Babu Moger <babu.moger@amd.com>
Link: https://lore.kernel.org/r/20240628215619.76401-10-tony.luck@intel.com
This commit is contained in:
parent
328ea68874
commit
fb1f51f677
|
|
@ -144,12 +144,31 @@ union mon_data_bits {
|
|||
} u;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rmid_read - Data passed across smp_call*() to read event count.
|
||||
* @rgrp: Resource group for which the counter is being read. If it is a parent
|
||||
* resource group then its event count is summed with the count from all
|
||||
* its child resource groups.
|
||||
* @r: Resource describing the properties of the event being read.
|
||||
* @d: Domain that the counter should be read from. If NULL then sum all
|
||||
* domains in @r sharing L3 @ci.id
|
||||
* @evtid: Which monitor event to read.
|
||||
* @first: Initialize MBM counter when true.
|
||||
* @ci: Cacheinfo for L3. Only set when @d is NULL. Used when summing domains.
|
||||
* @err: Error encountered when reading counter.
|
||||
* @val: Returned value of event counter. If @rgrp is a parent resource group,
|
||||
* @val includes the sum of event counts from its child resource groups.
|
||||
* If @d is NULL, @val includes the sum of all domains in @r sharing @ci.id,
|
||||
* (summed across child resource groups if @rgrp is a parent resource group).
|
||||
* @arch_mon_ctx: Hardware monitor allocated for this read request (MPAM only).
|
||||
*/
|
||||
struct rmid_read {
|
||||
struct rdtgroup *rgrp;
|
||||
struct rdt_resource *r;
|
||||
struct rdt_mon_domain *d;
|
||||
enum resctrl_event_id evtid;
|
||||
bool first;
|
||||
struct cacheinfo *ci;
|
||||
int err;
|
||||
u64 val;
|
||||
void *arch_mon_ctx;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user