bus/pci: fix selection of default device NUMA node
authorHoussem Bouhlel <houssem.bouhlel@6wind.com>
Mon, 25 Oct 2021 14:24:14 +0000 (16:24 +0200)
committerOlivier Matz <olivier.matz@6wind.com>
Tue, 26 Oct 2021 08:30:58 +0000 (10:30 +0200)
There can be dev binding issue when no hugepages
are allocated for socket 0.
To avoid this, set device numa node value based on
the first lcore instead of 0.

Signed-off-by: Houssem Bouhlel <houssem.bouhlel@6wind.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
drivers/bus/pci/pci_common.c

index 3406e03..9bffdf1 100644 (file)
@@ -166,6 +166,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
                         struct rte_pci_device *dev)
 {
        int ret;
+       unsigned socket_id;
        bool already_probed;
        struct rte_pci_addr *loc;
 
@@ -194,7 +195,8 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
                if (rte_socket_count() > 1)
                        RTE_LOG(INFO, EAL, "Device %s is not NUMA-aware, defaulting socket to 0\n",
                                        dev->name);
-               dev->device.numa_node = 0;
+               socket_id = rte_lcore_to_socket_id(rte_get_next_lcore(-1, 0, 0));
+               dev->device.numa_node = socket_id;
        }
 
        already_probed = rte_dev_is_probed(&dev->device);