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.

Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")
Cc: [email protected]

Signed-off-by: Houssem Bouhlel <[email protected]>
Signed-off-by: Olivier Matz <[email protected]>
---
 drivers/bus/pci/pci_common.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index f8fff2c98ebf..c70ab2373c79 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -166,6 +166,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
                         struct rte_pci_device *dev)
 {
        int ret;
+       unsigned int 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);
-- 
2.30.2

Reply via email to