Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8140a2d authored by Reinette Chatre's avatar Reinette Chatre Committed by Thomas Gleixner
Browse files

x86/intel_rdt: Introduce pseudo-locked region



A pseudo-locked region is introduced representing an instance of a
pseudo-locked cache region. Each cache instance (domain) can support one
pseudo-locked region. Similarly a resource group can be used for one
pseudo-locked region.

Include a pointer to a pseudo-locked region from the domain and resource
group structures.

Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: fenghua.yu@intel.com
Cc: tony.luck@intel.com
Cc: vikas.shivappa@linux.intel.com
Cc: gavin.hindman@intel.com
Cc: jithu.joseph@intel.com
Cc: dave.hansen@intel.com
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/9f69eb159051067703bcbc714de62e69874d5dee.1529706536.git.reinette.chatre@intel.com
parent bbcee99b
Loading
Loading
Loading
Loading
+41 −23
Original line number Diff line number Diff line
@@ -122,6 +122,20 @@ struct mongroup {
	u32			rmid;
};

/**
 * struct pseudo_lock_region - pseudo-lock region information
 * @r:			RDT resource to which this pseudo-locked region
 *			belongs
 * @d:			RDT domain to which this pseudo-locked region
 *			belongs
 * @cbm:		bitmask of the pseudo-locked region
 */
struct pseudo_lock_region {
	struct rdt_resource	*r;
	struct rdt_domain	*d;
	u32			cbm;
};

/**
 * struct rdtgroup - store rdtgroup's data in resctrl file system.
 * @kn:				kernfs node
@@ -135,6 +149,7 @@ struct mongroup {
 *				monitor only or ctrl_mon group
 * @mon:			mongroup related data
 * @mode:			mode of resource group
 * @plr:			pseudo-locked region
 */
struct rdtgroup {
	struct kernfs_node		*kn;
@@ -146,6 +161,7 @@ struct rdtgroup {
	enum rdt_group_type		type;
	struct mongroup			mon;
	enum rdtgrp_mode		mode;
	struct pseudo_lock_region	*plr;
};

/* rdtgroup.flags */
@@ -246,6 +262,7 @@ struct mbm_state {
 * @mbps_val:	When mba_sc is enabled, this holds the bandwidth in MBps
 * @new_ctrl:	new ctrl value to be loaded
 * @have_new_ctrl: did user provide new_ctrl for this domain
 * @plr:	pseudo-locked region (if any) associated with domain
 */
struct rdt_domain {
	struct list_head		list;
@@ -262,6 +279,7 @@ struct rdt_domain {
	u32				*mbps_val;
	u32				new_ctrl;
	bool				have_new_ctrl;
	struct pseudo_lock_region	*plr;
};

/**