Skip to content

Commit fb1f51f

Browse files
aeglbp3tk0v
authored andcommitted
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 <[email protected]> Signed-off-by: Reinette Chatre <[email protected]> Signed-off-by: Tony Luck <[email protected]> Signed-off-by: Borislav Petkov (AMD) <[email protected]> Tested-by: Babu Moger <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 328ea68 commit fb1f51f

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

arch/x86/kernel/cpu/resctrl/internal.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,31 @@ union mon_data_bits {
144144
} u;
145145
};
146146

147+
/**
148+
* struct rmid_read - Data passed across smp_call*() to read event count.
149+
* @rgrp: Resource group for which the counter is being read. If it is a parent
150+
* resource group then its event count is summed with the count from all
151+
* its child resource groups.
152+
* @r: Resource describing the properties of the event being read.
153+
* @d: Domain that the counter should be read from. If NULL then sum all
154+
* domains in @r sharing L3 @ci.id
155+
* @evtid: Which monitor event to read.
156+
* @first: Initialize MBM counter when true.
157+
* @ci: Cacheinfo for L3. Only set when @d is NULL. Used when summing domains.
158+
* @err: Error encountered when reading counter.
159+
* @val: Returned value of event counter. If @rgrp is a parent resource group,
160+
* @val includes the sum of event counts from its child resource groups.
161+
* If @d is NULL, @val includes the sum of all domains in @r sharing @ci.id,
162+
* (summed across child resource groups if @rgrp is a parent resource group).
163+
* @arch_mon_ctx: Hardware monitor allocated for this read request (MPAM only).
164+
*/
147165
struct rmid_read {
148166
struct rdtgroup *rgrp;
149167
struct rdt_resource *r;
150168
struct rdt_mon_domain *d;
151169
enum resctrl_event_id evtid;
152170
bool first;
171+
struct cacheinfo *ci;
153172
int err;
154173
u64 val;
155174
void *arch_mon_ctx;

0 commit comments

Comments
 (0)