diff mbox series

ACPI/HMAT: Move HMAT messages to pr_debug()

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

Commit Message

Dan Williams Jan. 31, 2024, 8:30 a.m. UTC
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(-)

Comments

Kai-Heng Feng Oct. 7, 2024, 3:03 a.m. UTC | #1
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);
>>
Kai-Heng Feng Oct. 23, 2024, 2:02 a.m. UTC | #2
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);
>>>
>
Kai-Heng Feng Dec. 4, 2024, 2:51 a.m. UTC | #3
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);
>>>>
>>
>
Dan Williams Dec. 4, 2024, 8:09 p.m. UTC | #4
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.
Dave Jiang Dec. 4, 2024, 8:55 p.m. UTC | #5
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 mbox series

Patch

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);