On 8/18/25 2:49 AM, David Hildenbrand wrote: > On 14.08.25 19:16, Dave Jiang wrote: >> Add helper function node_update_perf_attrs() to allow update of node access >> coordinates computed by an external agent such as CXL. The helper allows >> updating of coordinates after the attribute being created by HMAT. >> >> Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> >> --- >> drivers/base/node.c | 39 +++++++++++++++++++++++++++++++++++++++ >> include/linux/node.h | 8 ++++++++ >> 2 files changed, 47 insertions(+) >> >> diff --git a/drivers/base/node.c b/drivers/base/node.c >> index 3399594136b2..cf395da18c9b 100644 >> --- a/drivers/base/node.c >> +++ b/drivers/base/node.c >> @@ -248,6 +248,45 @@ void node_set_perf_attrs(unsigned int nid, struct access_coordinate *coord, >> } >> EXPORT_SYMBOL_GPL(node_set_perf_attrs); >> +/** >> + * node_update_perf_attrs - Update the performance values for given access class >> + * @nid: Node identifier to be updated >> + * @coord: Heterogeneous memory performance coordinates >> + * @access: The access class the for the given attributes > > "the for": there is probably something missing looks like extra 'the' > >> + */ >> +void node_update_perf_attrs(unsigned int nid, struct access_coordinate *coord, >> + enum access_coordinate_class access) >> +{ >> + struct node_access_nodes *access_node; >> + struct node *node; >> + int i; >> + >> + if (WARN_ON_ONCE(!node_online(nid))) >> + return; >> + >> + node = node_devices[nid]; >> + list_for_each_entry(access_node, &node->access_list, list_node) { >> + if (access_node->access != access) >> + continue; >> + >> + access_node->coord = *coord; >> + for (i = 0; access_attrs[i]; i++) { >> + sysfs_notify(&access_node->dev.kobj, >> + NULL, access_attrs[i]->name); >> + } >> + break; >> + } >> + >> + /* When setting CPU access coordinates, update mempolicy */ >> + if (access == ACCESS_COORDINATE_CPU) { >> + if (mempolicy_set_node_perf(nid, coord)) { >> + pr_info("failed to set mempolicy attrs for node %d\n", >> + nid); >> + } > if (access == ACCESS_COORDINATE_CPU && > mempolicy_set_node_perf(nid, coord)) > pr_info("failed to set mempolicy attrs for node %d\n", nid); > > or > > if (access != ACCESS_COORDINATE_CPU) > return > if (mempolicy_set_node_perf(nid, coord)) > pr_info("failed to set mempolicy attrs for node %d\n", nid); > ok > > With both things sorted > > Acked-by: David Hildenbrand <david@xxxxxxxxxx> > Thanks for the ack