mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-04 20:57:45 -04:00
base/node / acpi: Change 'node_hmem_attrs' to 'access_coordinates'
Dan Williams suggested changing the struct 'node_hmem_attrs' to 'access_coordinates' [1]. The struct is a container of r/w-latency and r/w-bandwidth numbers. Moving forward, this container will also be used by CXL to store the performance characteristics of each link hop in the PCIE/CXL topology. So, where node_hmem_attrs is just the access parameters of a memory-node, access_coordinates applies more broadly to hardware topology characteristics. The observation is that seemed like an exercise in having the application identify "where" it falls on a spectrum of bandwidth and latency needs. For the tuple of read/write-latency and read/write-bandwidth, "coordinates" is not a perfect fit. Sometimes it is just conveying values in isolation and not a "location" relative to other performance points, but in the end this data is used to identify the performance operation point of a given memory-node. [2] Link: http://lore.kernel.org/r/64471313421f7_1b66294d5@dwillia2-xfh.jf.intel.com.notmuch/ Link: https://lore.kernel.org/linux-cxl/645e6215ee0de_1e6f2945e@dwillia2-xfh.jf.intel.com.notmuch/ Suggested-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/170319615734.2212653.15319394025985499185.stgit@djiang5-mobl3 Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
@@ -74,14 +74,14 @@ static BIN_ATTR_RO(cpulist, CPULIST_FILE_MAX_BYTES);
|
||||
* @dev: Device for this memory access class
|
||||
* @list_node: List element in the node's access list
|
||||
* @access: The access class rank
|
||||
* @hmem_attrs: Heterogeneous memory performance attributes
|
||||
* @coord: Heterogeneous memory performance coordinates
|
||||
*/
|
||||
struct node_access_nodes {
|
||||
struct device dev;
|
||||
struct list_head list_node;
|
||||
unsigned int access;
|
||||
#ifdef CONFIG_HMEM_REPORTING
|
||||
struct node_hmem_attrs hmem_attrs;
|
||||
struct access_coordinate coord;
|
||||
#endif
|
||||
};
|
||||
#define to_access_nodes(dev) container_of(dev, struct node_access_nodes, dev)
|
||||
@@ -167,7 +167,7 @@ static ssize_t property##_show(struct device *dev, \
|
||||
char *buf) \
|
||||
{ \
|
||||
return sysfs_emit(buf, "%u\n", \
|
||||
to_access_nodes(dev)->hmem_attrs.property); \
|
||||
to_access_nodes(dev)->coord.property); \
|
||||
} \
|
||||
static DEVICE_ATTR_RO(property)
|
||||
|
||||
@@ -187,10 +187,10 @@ static struct attribute *access_attrs[] = {
|
||||
/**
|
||||
* node_set_perf_attrs - Set the performance values for given access class
|
||||
* @nid: Node identifier to be set
|
||||
* @hmem_attrs: Heterogeneous memory performance attributes
|
||||
* @coord: Heterogeneous memory performance coordinates
|
||||
* @access: The access class the for the given attributes
|
||||
*/
|
||||
void node_set_perf_attrs(unsigned int nid, struct node_hmem_attrs *hmem_attrs,
|
||||
void node_set_perf_attrs(unsigned int nid, struct access_coordinate *coord,
|
||||
unsigned int access)
|
||||
{
|
||||
struct node_access_nodes *c;
|
||||
@@ -205,7 +205,7 @@ void node_set_perf_attrs(unsigned int nid, struct node_hmem_attrs *hmem_attrs,
|
||||
if (!c)
|
||||
return;
|
||||
|
||||
c->hmem_attrs = *hmem_attrs;
|
||||
c->coord = *coord;
|
||||
for (i = 0; access_attrs[i] != NULL; i++) {
|
||||
if (sysfs_add_file_to_group(&c->dev.kobj, access_attrs[i],
|
||||
"initiators")) {
|
||||
|
||||
Reference in New Issue
Block a user