All of lore.kernel.org
 help / color / mirror / Atom feed
* [DPDK/examples Bug 1393] examples/l3fwd: in eventmode RX queue setup doesn't obey numa
@ 2024-03-01 13:56 bugzilla
  0 siblings, 0 replies; only message in thread
From: bugzilla @ 2024-03-01 13:56 UTC (permalink / raw)
  To: dev

[-- Attachment #1: Type: text/plain, Size: 2372 bytes --]

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

            Bug ID: 1393
           Summary: examples/l3fwd: in eventmode RX queue setup doesn't
                    obey numa
           Product: DPDK
           Version: 23.11
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: examples
          Assignee: dev@dpdk.org
          Reporter: konstantin.v.ananyev@yandex.ru
  Target Milestone: ---

Reproducible with latest DPDK main branch (24.03.rc1)

Starting l3fwd in event mode with all cores/NICs on numa-socket #1 will fail:

dpdk-l3fwd --lcores=49,51,53,57 -n 6 \
-a ca:00.0 -a ca:00.1 -a cb:00.0 -a cb:00.1 -s 0x8000000000000 --vdev event_sw0
-- \
-L -P -p f --rx-queue-size 1024 --tx-queue-size 1024 --mode eventdev \
--eventq-sched=ordered --rule_ipv4=test/l3fwd_lpm_v4_u1.cfg \
--rule_ipv6=test/l3fwd_lpm_v6_u1.cfg
....
...
ETHDEV: Ambiguous Rx mempools configuration
EAL: Error - exiting with code: 1
  Cause: rte_eth_rx_queue_setup: err=-22, port=0, eth_qid: 0

Reason for that:
all lcores I specified are from numa-socket #1, so there is no mempool for
numa-socket #0, while in event mode l3fwd_eth_dev_port_setup() *always* tries
to use mempool for numa-socket 0.
examples/l3fwd/l3fwd_event.c:
static void
l3fwd_eth_dev_port_setup(struct rte_eth_conf *port_conf)
{
   ...
   for (eth_qid = 0; eth_qid < evt_rsrc->eth_rx_queues;
                     eth_qid++) {
                        if (!evt_rsrc->per_port_pool)
                                ret = rte_eth_rx_queue_setup(port_id, eth_qid,
                                        nb_rxd, 0, &rxconf,
                                        evt_rsrc->pkt_pool[0][0]);
                        else
                                ret = rte_eth_rx_queue_setup(port_id, eth_qid,
                                        nb_rxd, 0, &rxconf,
                                        evt_rsrc->pkt_pool[port_id][0]);

For proper numa support, I expect it to be something like:

int socket_id = l3fwd_event_deduce_rx_service_socket_id(...);
ret = rte_eth_rx_queue_setup(..., evt_rsrc->pkt_pool[port_id][socket_id]);

To overcome the problem, use '--no-numa' l3fwd cmd-line flag.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[-- Attachment #2: Type: text/html, Size: 4266 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-03-01 13:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-01 13:56 [DPDK/examples Bug 1393] examples/l3fwd: in eventmode RX queue setup doesn't obey numa bugzilla

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.