[dpdk-dev] [PATCH v4] eal: Set numa node value for system which not support it.

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Mon Jun 26 14:50:09 CEST 2017

On 26/06/2017 10:39, Thomas Monjalon wrote:
> 26/06/2017 11:14, Sergio Gonzalez Monroy:
>> On 23/06/2017 14:02, Thomas Monjalon wrote:
>>> 22/06/2017 17:15, Sergio Gonzalez Monroy:
>>>> Just fyi, the summary line should be lowercase apart from acronyms (DPDK
>>>> guidelines).
>>>> On 11/05/2017 02:56, Tonghao Zhang wrote:
>>>>> The NUMA node information for PCI devices provided through
>>>>> sysfs is invalid for AMD Opteron(TM) Processor 62xx and 63xx
>>>>> on Red Hat Enterprise Linux 6, and VMs on some hypervisors.
>>>>> It is good to see more checking for valid values.
>>>>> Signed-off-by: Tonghao Zhang <nic at opencloud.tech>
>>>>> ---
>>>> IMHO the message could be slightly improved by adding some of the
>>>> replies that you made to your v3.
>>>> ie. Typical wrong numa node in VMs
>>>> $ cat /sys/devices/pci0000:00/0000:00:18.6/numa_node
>>>> -1
>>> [...]
>>>> The code changes look fine, so I leave it to Thomas regarding the commit
>>>> message :)
>>>> Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>
>>> Applied, thanks
>> It looks like some systems have quite a few devices that report -1 as
>> numa_node value causing lots of warning messages being printed.
>> Quick fixes that come to mind would be:
>> 1) Change log level to DEBUG
> As it is important for performance, it should not be just for DEBUG.
>> 2) Add static var to only print the message once.
> Yes good idea.
>> I also think that the message itself should show at least the BDF to at
>> least know which devices are reporting bad numa_node values.
> With the static variable, we will have only the first device BDF.
> Is it relevant?

I think it is relevant if it affects a device used by DPDK, but we don't 
know that when doing full pci_scan.

At least on x86 platforms we usually see many PCI devices without numa_node:
ls /sys/bus/pci/devices | xargs -n 1 -I {} head -v 

A single warning is not going to mean much if all platforms have PCI 
devices without proper numa_node, right?

A more cleaner solution might be to leave -1 if we failed to parse 
numa_node, then on rte_pci_probe_one_driver after checking if it is 
blacklisted check if socket_id is -1 and show warning message defaulting 
to 0?

I would be inclined to:
a) leave it as it is with DEBUG log level, also showing PCI BDF (very 
noisy in debug mode).
b) show the warning and default to 0 in rte_pci_probe_one_driver, 
showing only relevant devices.


More information about the dev mailing list