Re: [PATCH v2 3/4] acpi: numa: Add setting of generic port system locality attributes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 6/1/23 07:38, Jonathan Cameron wrote:
On Fri, 19 May 2023 09:24:38 -0700
Dave Jiang <dave.jiang@xxxxxxxxx> wrote:

Add generic port support for the parsing of HMAT system locality sub-table.
The attributes will be added to the third array member of the access
coordinates in order to not mix with the existing memory attributes. It only
provides the system locality attributes from initator to the generic port
targets and is missing the rest of the data to the actual memory device.

The complete attributes will be updated when a memory device is
attached and the system locality information is calculated end to end.

Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Missing
---
here

As a passing comment, hmat_parse_locality() is awfully deeply nested
- maybe worth looking to see if some of the deeply nested stuff can be
factored out...  That would be a new patch however


I'll take a look



v2:
- Fix commit log runon sentence. (Jonathan)
- Add a check for memory type for skipping other access levels. (Jonathan)
- NODE_ACCESS_CLASS_GENPORT to NODE_ACCESS_CLASS_GENPORT_SINK. (Jonathan)
---
  drivers/acpi/numa/hmat.c |   10 ++++++++++
  1 file changed, 10 insertions(+)

diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c
index e2ab1cce0add..82320c92abed 100644
--- a/drivers/acpi/numa/hmat.c
+++ b/drivers/acpi/numa/hmat.c
@@ -60,6 +60,7 @@ struct target_cache {
  enum {
  	NODE_ACCESS_CLASS_0 = 0,
  	NODE_ACCESS_CLASS_1,
+	NODE_ACCESS_CLASS_GENPORT_SINK,
  	NODE_ACCESS_CLASS_MAX,
  };
@@ -368,6 +369,15 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header,
  			if (mem_hier == ACPI_HMAT_MEMORY) {
  				target = find_mem_target(targs[targ]);
  				if (target && target->processor_pxm == inits[init]) {
+					if (*target->device_handle) {
+						hmat_update_target_access(target, type, value,
+								NODE_ACCESS_CLASS_GENPORT_SINK);
+						if ((hmat_loc->flags &
+						     ACPI_HMAT_MEMORY_HIERARCHY) ==
+						    ACPI_HMAT_MEMORY)
+							continue;
I'm confused.  Isn't this already what was checked for with
if (mem_heir == ACPI_HMAT_MEMORY)?

Yes. Do gen target show up as not memory? I couldn't tell from the ACPI spec. I wonder if I need to move the setup outside of the (mem_hier == ACPI_HMAT_MEMORY)?


+					}
+
  					hmat_update_target_access(target, type, value,
  								  NODE_ACCESS_CLASS_0);
  					/* If the node has a CPU, update access 1 */





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux