| 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 | dev@dpdk.org |
| Reporter | xiaohua.wang@ericsson.com |
| 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===========================