On Thu, Apr 04, 2019 at 12:08:44PM -0700, Dan Williams wrote:
As of ACPI 6.3 the HMAT no longer advertises the physical memory
address
range for its entries. Instead, the expectation is the corresponding
entry in the SRAT is looked up by the target proximity domain.
Given there may be multiple distinct address ranges that share the same
performance profile (sparse address space), find_mem_target() is updated
to also consider the start address of the memory range. Target property
updates are also adjusted to loop over all possible 'struct target'
instances that may share the same proximity domain identification.
Since this may allocate multiple targets with the same PXM,
hmat_register_targets() will attempt to register the same node multiple
times.
Would it make sense if the existing struct memory_target adds a resource
list that we can append to as we parse SRAT? That way we have one target
per memory node, and also track the ranges.