Message ID | 170668982094.318782.2963631284830500182.stgit@dwillia2-xfh.jf.intel.com |
---|---|
State | New |
Headers | show |
Series | ACPI/HMAT: Move HMAT messages to pr_debug() | expand |
Hi Rafael, On 2024/1/31 7:54 PM, Rafael J. Wysocki wrote: > On Wed, Jan 31, 2024 at 9:30 AM Dan Williams <dan.j.williams@intel.com> wrote: >> >> The HMAT messages printed at boot, beyond being noisy, can also print >> details for nodes that are not yet enabled. The primary method to >> consume HMAT details is via sysfs, and the sysfs interface gates what is >> emitted by whether the node is online or not. Hide the messages by >> default by moving them from "info" to "debug" log level. >> >> Otherwise, these prints are just a pretty-print way to dump the ACPI >> HMAT table. It has always been the case that post-analysis was required >> for these messages to map proximity-domains to Linux NUMA nodes, and as >> Priya points out that analysis also needs to consider whether the >> proximity domain is marked "enabled" in the SRAT. >> >> Reported-by: Priya Autee <priya.v.autee@intel.com> >> Signed-off-by: Dan Williams <dan.j.williams@intel.com> > > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> This patch doesn't seem to be included in the tree. Is it possible to pick this up in the your tree? Thanks! Kai-Heng > >> --- >> drivers/acpi/numa/hmat.c | 24 ++++++++++++------------ >> 1 file changed, 12 insertions(+), 12 deletions(-) >> >> diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c >> index d6b85f0f6082..5331abc7c956 100644 >> --- a/drivers/acpi/numa/hmat.c >> +++ b/drivers/acpi/numa/hmat.c >> @@ -409,9 +409,9 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header, >> return -EINVAL; >> } >> >> - pr_info("Locality: Flags:%02x Type:%s Initiator Domains:%u Target Domains:%u Base:%lld\n", >> - hmat_loc->flags, hmat_data_type(type), ipds, tpds, >> - hmat_loc->entry_base_unit); >> + pr_debug("Locality: Flags:%02x Type:%s Initiator Domains:%u Target Domains:%u Base:%lld\n", >> + hmat_loc->flags, hmat_data_type(type), ipds, tpds, >> + hmat_loc->entry_base_unit); >> >> inits = (u32 *)(hmat_loc + 1); >> targs = inits + ipds; >> @@ -422,9 +422,9 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header, >> value = hmat_normalize(entries[init * tpds + targ], >> hmat_loc->entry_base_unit, >> type); >> - pr_info(" Initiator-Target[%u-%u]:%u%s\n", >> - inits[init], targs[targ], value, >> - hmat_data_type_suffix(type)); >> + pr_debug(" Initiator-Target[%u-%u]:%u%s\n", >> + inits[init], targs[targ], value, >> + hmat_data_type_suffix(type)); >> >> hmat_update_target(targs[targ], inits[init], >> mem_hier, type, value); >> @@ -452,9 +452,9 @@ static __init int hmat_parse_cache(union acpi_subtable_headers *header, >> } >> >> attrs = cache->cache_attributes; >> - pr_info("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", >> - cache->memory_PD, cache->cache_size, attrs, >> - cache->number_of_SMBIOShandles); >> + pr_debug("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", >> + cache->memory_PD, cache->cache_size, attrs, >> + cache->number_of_SMBIOShandles); >> >> target = find_mem_target(cache->memory_PD); >> if (!target) >> @@ -513,9 +513,9 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade >> } >> >> if (hmat_revision == 1) >> - pr_info("Memory (%#llx length %#llx) Flags:%04x Processor Domain:%u Memory Domain:%u\n", >> - p->reserved3, p->reserved4, p->flags, p->processor_PD, >> - p->memory_PD); >> + pr_debug("Memory (%#llx length %#llx) Flags:%04x Processor Domain:%u Memory Domain:%u\n", >> + p->reserved3, p->reserved4, p->flags, p->processor_PD, >> + p->memory_PD); >> else >> pr_info("Memory Flags:%04x Processor Domain:%u Memory Domain:%u\n", >> p->flags, p->processor_PD, p->memory_PD); >>
On 2024/10/7 11:03 AM, Kai-Heng Feng wrote: > Hi Rafael, > > On 2024/1/31 7:54 PM, Rafael J. Wysocki wrote: >> On Wed, Jan 31, 2024 at 9:30 AM Dan Williams <dan.j.williams@intel.com> wrote: >>> >>> The HMAT messages printed at boot, beyond being noisy, can also print >>> details for nodes that are not yet enabled. The primary method to >>> consume HMAT details is via sysfs, and the sysfs interface gates what is >>> emitted by whether the node is online or not. Hide the messages by >>> default by moving them from "info" to "debug" log level. >>> >>> Otherwise, these prints are just a pretty-print way to dump the ACPI >>> HMAT table. It has always been the case that post-analysis was required >>> for these messages to map proximity-domains to Linux NUMA nodes, and as >>> Priya points out that analysis also needs to consider whether the >>> proximity domain is marked "enabled" in the SRAT. >>> >>> Reported-by: Priya Autee <priya.v.autee@intel.com> >>> Signed-off-by: Dan Williams <dan.j.williams@intel.com> >> >> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > This patch doesn't seem to be included in the tree. > > Is it possible to pick this up in the your tree? Thanks! A gentle ping... > > Kai-Heng > >> >>> --- >>> drivers/acpi/numa/hmat.c | 24 ++++++++++++------------ >>> 1 file changed, 12 insertions(+), 12 deletions(-) >>> >>> diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c >>> index d6b85f0f6082..5331abc7c956 100644 >>> --- a/drivers/acpi/numa/hmat.c >>> +++ b/drivers/acpi/numa/hmat.c >>> @@ -409,9 +409,9 @@ static __init int hmat_parse_locality(union >>> acpi_subtable_headers *header, >>> return -EINVAL; >>> } >>> >>> - pr_info("Locality: Flags:%02x Type:%s Initiator Domains:%u Target >>> Domains:%u Base:%lld\n", >>> - hmat_loc->flags, hmat_data_type(type), ipds, tpds, >>> - hmat_loc->entry_base_unit); >>> + pr_debug("Locality: Flags:%02x Type:%s Initiator Domains:%u Target >>> Domains:%u Base:%lld\n", >>> + hmat_loc->flags, hmat_data_type(type), ipds, tpds, >>> + hmat_loc->entry_base_unit); >>> >>> inits = (u32 *)(hmat_loc + 1); >>> targs = inits + ipds; >>> @@ -422,9 +422,9 @@ static __init int hmat_parse_locality(union >>> acpi_subtable_headers *header, >>> value = hmat_normalize(entries[init * tpds + targ], >>> hmat_loc->entry_base_unit, >>> type); >>> - pr_info(" Initiator-Target[%u-%u]:%u%s\n", >>> - inits[init], targs[targ], value, >>> - hmat_data_type_suffix(type)); >>> + pr_debug(" Initiator-Target[%u-%u]:%u%s\n", >>> + inits[init], targs[targ], value, >>> + hmat_data_type_suffix(type)); >>> >>> hmat_update_target(targs[targ], inits[init], >>> mem_hier, type, value); >>> @@ -452,9 +452,9 @@ static __init int hmat_parse_cache(union >>> acpi_subtable_headers *header, >>> } >>> >>> attrs = cache->cache_attributes; >>> - pr_info("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", >>> - cache->memory_PD, cache->cache_size, attrs, >>> - cache->number_of_SMBIOShandles); >>> + pr_debug("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", >>> + cache->memory_PD, cache->cache_size, attrs, >>> + cache->number_of_SMBIOShandles); >>> >>> target = find_mem_target(cache->memory_PD); >>> if (!target) >>> @@ -513,9 +513,9 @@ static int __init hmat_parse_proximity_domain(union >>> acpi_subtable_headers *heade >>> } >>> >>> if (hmat_revision == 1) >>> - pr_info("Memory (%#llx length %#llx) Flags:%04x Processor >>> Domain:%u Memory Domain:%u\n", >>> - p->reserved3, p->reserved4, p->flags, p->processor_PD, >>> - p->memory_PD); >>> + pr_debug("Memory (%#llx length %#llx) Flags:%04x Processor >>> Domain:%u Memory Domain:%u\n", >>> + p->reserved3, p->reserved4, p->flags, p->processor_PD, >>> + p->memory_PD); >>> else >>> pr_info("Memory Flags:%04x Processor Domain:%u Memory >>> Domain:%u\n", >>> p->flags, p->processor_PD, p->memory_PD); >>> >
On 2024/10/23 10:02 AM, Kai-Heng Feng wrote: > > > On 2024/10/7 11:03 AM, Kai-Heng Feng wrote: >> Hi Rafael, >> >> On 2024/1/31 7:54 PM, Rafael J. Wysocki wrote: >>> On Wed, Jan 31, 2024 at 9:30 AM Dan Williams <dan.j.williams@intel.com> wrote: >>>> >>>> The HMAT messages printed at boot, beyond being noisy, can also print >>>> details for nodes that are not yet enabled. The primary method to >>>> consume HMAT details is via sysfs, and the sysfs interface gates what is >>>> emitted by whether the node is online or not. Hide the messages by >>>> default by moving them from "info" to "debug" log level. >>>> >>>> Otherwise, these prints are just a pretty-print way to dump the ACPI >>>> HMAT table. It has always been the case that post-analysis was required >>>> for these messages to map proximity-domains to Linux NUMA nodes, and as >>>> Priya points out that analysis also needs to consider whether the >>>> proximity domain is marked "enabled" in the SRAT. >>>> >>>> Reported-by: Priya Autee <priya.v.autee@intel.com> >>>> Signed-off-by: Dan Williams <dan.j.williams@intel.com> >>> >>> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> >> This patch doesn't seem to be included in the tree. >> >> Is it possible to pick this up in the your tree? Thanks! > > A gentle ping... Another gentle ping... > >> >> Kai-Heng >> >>> >>>> --- >>>> drivers/acpi/numa/hmat.c | 24 ++++++++++++------------ >>>> 1 file changed, 12 insertions(+), 12 deletions(-) >>>> >>>> diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c >>>> index d6b85f0f6082..5331abc7c956 100644 >>>> --- a/drivers/acpi/numa/hmat.c >>>> +++ b/drivers/acpi/numa/hmat.c >>>> @@ -409,9 +409,9 @@ static __init int hmat_parse_locality(union >>>> acpi_subtable_headers *header, >>>> return -EINVAL; >>>> } >>>> >>>> - pr_info("Locality: Flags:%02x Type:%s Initiator Domains:%u Target >>>> Domains:%u Base:%lld\n", >>>> - hmat_loc->flags, hmat_data_type(type), ipds, tpds, >>>> - hmat_loc->entry_base_unit); >>>> + pr_debug("Locality: Flags:%02x Type:%s Initiator Domains:%u Target >>>> Domains:%u Base:%lld\n", >>>> + hmat_loc->flags, hmat_data_type(type), ipds, tpds, >>>> + hmat_loc->entry_base_unit); >>>> >>>> inits = (u32 *)(hmat_loc + 1); >>>> targs = inits + ipds; >>>> @@ -422,9 +422,9 @@ static __init int hmat_parse_locality(union >>>> acpi_subtable_headers *header, >>>> value = hmat_normalize(entries[init * tpds + targ], >>>> hmat_loc->entry_base_unit, >>>> type); >>>> - pr_info(" Initiator-Target[%u-%u]:%u%s\n", >>>> - inits[init], targs[targ], value, >>>> - hmat_data_type_suffix(type)); >>>> + pr_debug(" Initiator-Target[%u-%u]:%u%s\n", >>>> + inits[init], targs[targ], value, >>>> + hmat_data_type_suffix(type)); >>>> >>>> hmat_update_target(targs[targ], inits[init], >>>> mem_hier, type, value); >>>> @@ -452,9 +452,9 @@ static __init int hmat_parse_cache(union >>>> acpi_subtable_headers *header, >>>> } >>>> >>>> attrs = cache->cache_attributes; >>>> - pr_info("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", >>>> - cache->memory_PD, cache->cache_size, attrs, >>>> - cache->number_of_SMBIOShandles); >>>> + pr_debug("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", >>>> + cache->memory_PD, cache->cache_size, attrs, >>>> + cache->number_of_SMBIOShandles); >>>> >>>> target = find_mem_target(cache->memory_PD); >>>> if (!target) >>>> @@ -513,9 +513,9 @@ static int __init hmat_parse_proximity_domain(union >>>> acpi_subtable_headers *heade >>>> } >>>> >>>> if (hmat_revision == 1) >>>> - pr_info("Memory (%#llx length %#llx) Flags:%04x Processor >>>> Domain:%u Memory Domain:%u\n", >>>> - p->reserved3, p->reserved4, p->flags, p->processor_PD, >>>> - p->memory_PD); >>>> + pr_debug("Memory (%#llx length %#llx) Flags:%04x Processor >>>> Domain:%u Memory Domain:%u\n", >>>> + p->reserved3, p->reserved4, p->flags, p->processor_PD, >>>> + p->memory_PD); >>>> else >>>> pr_info("Memory Flags:%04x Processor Domain:%u Memory >>>> Domain:%u\n", >>>> p->flags, p->processor_PD, p->memory_PD); >>>> >> >
Kai-Heng Feng wrote: > > > On 2024/10/23 10:02 AM, Kai-Heng Feng wrote: > > > > > > On 2024/10/7 11:03 AM, Kai-Heng Feng wrote: > >> Hi Rafael, > >> > >> On 2024/1/31 7:54 PM, Rafael J. Wysocki wrote: > >>> On Wed, Jan 31, 2024 at 9:30 AM Dan Williams <dan.j.williams@intel.com> wrote: > >>>> > >>>> The HMAT messages printed at boot, beyond being noisy, can also print > >>>> details for nodes that are not yet enabled. The primary method to > >>>> consume HMAT details is via sysfs, and the sysfs interface gates what is > >>>> emitted by whether the node is online or not. Hide the messages by > >>>> default by moving them from "info" to "debug" log level. > >>>> > >>>> Otherwise, these prints are just a pretty-print way to dump the ACPI > >>>> HMAT table. It has always been the case that post-analysis was required > >>>> for these messages to map proximity-domains to Linux NUMA nodes, and as > >>>> Priya points out that analysis also needs to consider whether the > >>>> proximity domain is marked "enabled" in the SRAT. > >>>> > >>>> Reported-by: Priya Autee <priya.v.autee@intel.com> > >>>> Signed-off-by: Dan Williams <dan.j.williams@intel.com> > >>> > >>> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> > >> This patch doesn't seem to be included in the tree. > >> > >> Is it possible to pick this up in the your tree? Thanks! > > > > A gentle ping... > > Another gentle ping... Rafael acked it, so he probably expected me to take it through the CXL tree? In any event we can get this queued up in cxl.git unless Rafael beats me to it and applies it.
On 12/4/24 1:09 PM, Dan Williams wrote: > Kai-Heng Feng wrote: >> >> >> On 2024/10/23 10:02 AM, Kai-Heng Feng wrote: >>> >>> >>> On 2024/10/7 11:03 AM, Kai-Heng Feng wrote: >>>> Hi Rafael, >>>> >>>> On 2024/1/31 7:54 PM, Rafael J. Wysocki wrote: >>>>> On Wed, Jan 31, 2024 at 9:30 AM Dan Williams <dan.j.williams@intel.com> wrote: >>>>>> >>>>>> The HMAT messages printed at boot, beyond being noisy, can also print >>>>>> details for nodes that are not yet enabled. The primary method to >>>>>> consume HMAT details is via sysfs, and the sysfs interface gates what is >>>>>> emitted by whether the node is online or not. Hide the messages by >>>>>> default by moving them from "info" to "debug" log level. >>>>>> >>>>>> Otherwise, these prints are just a pretty-print way to dump the ACPI >>>>>> HMAT table. It has always been the case that post-analysis was required >>>>>> for these messages to map proximity-domains to Linux NUMA nodes, and as >>>>>> Priya points out that analysis also needs to consider whether the >>>>>> proximity domain is marked "enabled" in the SRAT. >>>>>> >>>>>> Reported-by: Priya Autee <priya.v.autee@intel.com> >>>>>> Signed-off-by: Dan Williams <dan.j.williams@intel.com> >>>>> >>>>> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >>>> >>>> This patch doesn't seem to be included in the tree. >>>> >>>> Is it possible to pick this up in the your tree? Thanks! >>> >>> A gentle ping... >> >> Another gentle ping... > > Rafael acked it, so he probably expected me to take it through the CXL > tree? In any event we can get this queued up in cxl.git unless Rafael > beats me to it and applies it. > I'll pick it up for cxl-next
diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c index d6b85f0f6082..5331abc7c956 100644 --- a/drivers/acpi/numa/hmat.c +++ b/drivers/acpi/numa/hmat.c @@ -409,9 +409,9 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header, return -EINVAL; } - pr_info("Locality: Flags:%02x Type:%s Initiator Domains:%u Target Domains:%u Base:%lld\n", - hmat_loc->flags, hmat_data_type(type), ipds, tpds, - hmat_loc->entry_base_unit); + pr_debug("Locality: Flags:%02x Type:%s Initiator Domains:%u Target Domains:%u Base:%lld\n", + hmat_loc->flags, hmat_data_type(type), ipds, tpds, + hmat_loc->entry_base_unit); inits = (u32 *)(hmat_loc + 1); targs = inits + ipds; @@ -422,9 +422,9 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header, value = hmat_normalize(entries[init * tpds + targ], hmat_loc->entry_base_unit, type); - pr_info(" Initiator-Target[%u-%u]:%u%s\n", - inits[init], targs[targ], value, - hmat_data_type_suffix(type)); + pr_debug(" Initiator-Target[%u-%u]:%u%s\n", + inits[init], targs[targ], value, + hmat_data_type_suffix(type)); hmat_update_target(targs[targ], inits[init], mem_hier, type, value); @@ -452,9 +452,9 @@ static __init int hmat_parse_cache(union acpi_subtable_headers *header, } attrs = cache->cache_attributes; - pr_info("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", - cache->memory_PD, cache->cache_size, attrs, - cache->number_of_SMBIOShandles); + pr_debug("Cache: Domain:%u Size:%llu Attrs:%08x SMBIOS Handles:%d\n", + cache->memory_PD, cache->cache_size, attrs, + cache->number_of_SMBIOShandles); target = find_mem_target(cache->memory_PD); if (!target) @@ -513,9 +513,9 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade } if (hmat_revision == 1) - pr_info("Memory (%#llx length %#llx) Flags:%04x Processor Domain:%u Memory Domain:%u\n", - p->reserved3, p->reserved4, p->flags, p->processor_PD, - p->memory_PD); + pr_debug("Memory (%#llx length %#llx) Flags:%04x Processor Domain:%u Memory Domain:%u\n", + p->reserved3, p->reserved4, p->flags, p->processor_PD, + p->memory_PD); else pr_info("Memory Flags:%04x Processor Domain:%u Memory Domain:%u\n", p->flags, p->processor_PD, p->memory_PD);
The HMAT messages printed at boot, beyond being noisy, can also print details for nodes that are not yet enabled. The primary method to consume HMAT details is via sysfs, and the sysfs interface gates what is emitted by whether the node is online or not. Hide the messages by default by moving them from "info" to "debug" log level. Otherwise, these prints are just a pretty-print way to dump the ACPI HMAT table. It has always been the case that post-analysis was required for these messages to map proximity-domains to Linux NUMA nodes, and as Priya points out that analysis also needs to consider whether the proximity domain is marked "enabled" in the SRAT. Reported-by: Priya Autee <priya.v.autee@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- drivers/acpi/numa/hmat.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)