Skip to contentSkip to conversation

net/af_xdp, numa_node and socket_id is assigned incorrectly for numa scenario

DPDK/ethdev Bug 1611 [email protected] 1 participant 1 message Jan 7, 2025

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1611

Bug ID: 1611
Summary: net/af_xdp, numa_node and socket_id is assigned
incorrectly for numa scenario
Product: DPDK
Version: 22.11
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---

1. in rte_pmd_af_xdp_probe() function, can't assign device.numa_node with current socket id. Since the CPU core socket to start app can be different to virtual xdp/device socket to attach.
===========code in rte_eth_af_xdp.c===========================

        if (dev->device.numa_node == SOCKET_ID_ANY)
                dev->device.numa_node = rte_socket_id();

===========code in rte_eth_af_xdp.c===========================

Same issue for rte_pmd_af_xdp_remove() and eth_dev_close().

2. For xdp_umem_configure() in xsk_configure(), also can't allocate umem at CPU core socket which get from during eth_rx_queue_setup() phase. Because it will probably be different to socket which "umem" wants to attach port device belongs to.
===========code in rte_eth_af_xdp.c===========================

        umem = rte_zmalloc_socket("umem", sizeof(*umem), 0, rte_socket_id());
        if (umem == NULL) {
                AF_XDP_LOG(ERR, "Failed to allocate umem info\n");
                return NULL;
        }

        snprintf(ring_name, sizeof(ring_name), "af_xdp_ring_%s_%u",
                       internals->if_name, rxq->xsk_queue_idx);
        umem->buf_ring = rte_ring_create(ring_name,
                                         ETH_AF_XDP_NUM_BUFFERS,
                                         rte_socket_id(),
                                         0x0);

===========code in rte_eth_af_xdp.c===========================

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.