* [DPDK/ethdev Bug 1381] TAP device can not support 17 queues
@ 2024-02-20 3:29 bugzilla
2024-02-20 19:23 ` Stephen Hemminger
0 siblings, 1 reply; 2+ messages in thread
From: bugzilla @ 2024-02-20 3:29 UTC (permalink / raw)
To: dev
[-- Attachment #1: Type: text/plain, Size: 5700 bytes --]
https://bugs.dpdk.org/show_bug.cgi?id=1381
Bug ID: 1381
Summary: TAP device can not support 17 queues
Product: DPDK
Version: 23.11
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: dev@dpdk.org
Reporter: stephen@networkplumber.org
Target Milestone: ---
If you try:
# dpdk-testpmd --log-level=pmd.net.tap:debug -l 1-2 --vdev=net_tap0 -- -i
--rxq=8 --txq=8
It will fail because:
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
rte_pmd_tap_probe(): Initializing pmd_tap for net_tap0
eth_dev_tap_create(): TAP device on numa 0
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tun_alloc(): Using rt-signal 35
eth_dev_tap_create(): allocated dtap0
Interactive-mode selected
testpmd: create a new mbuf pool <mb_pool_0>: n=155456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Warning! port-topology=paired and odd forward ports number, the last port will
pair with itself.
Configuring Port 0 (socket 0)
tap_dev_configure(): net_tap0: dtap0: TX configured queues number: 8
tap_dev_configure(): net_tap0: dtap0: RX configured queues number: 8
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 0 fd 26
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 0 on fd 26 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 1 fd 212
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 1 on fd 212 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 2 fd 213
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 2 on fd 213 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 3 fd 214
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 3 on fd 214 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 4 fd 215
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 4 on fd 215 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 5 fd 216
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 5 on fd 216 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 6 fd 217
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 6 on fd 217 csum off
tun_alloc(): /dev/net/tun Features 00007173
tun_alloc(): Multi-queue support for 16 queues
tun_alloc(): Device name is 'dtap0'
tap_setup_queue(): dtap0: add tx queue for qid 7 fd 218
tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 7 on fd 218 csum off
tap_setup_queue(): dtap0: dup fd 26 for rx queue qid 0 (219)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 0 on fd 219
tap_setup_queue(): dtap0: dup fd 212 for rx queue qid 1 (220)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 1 on fd 220
tap_setup_queue(): dtap0: dup fd 213 for rx queue qid 2 (221)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 2 on fd 221
tap_setup_queue(): dtap0: dup fd 214 for rx queue qid 3 (222)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 3 on fd 222
tap_setup_queue(): dtap0: dup fd 215 for rx queue qid 4 (223)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 4 on fd 223
tap_setup_queue(): dtap0: dup fd 216 for rx queue qid 5 (224)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 5 on fd 224
tap_setup_queue(): dtap0: dup fd 217 for rx queue qid 6 (225)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 6 on fd 225
tap_setup_queue(): dtap0: dup fd 218 for rx queue qid 7 (226)
tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 7 on fd 226
EAL: Cannot send more than 8 FDs
tap_mp_req_on_rxtx(): Failed to send start req to secondary 7
This is a regression caused by:
commit c36ce7099c2187926cd62cff7ebd479823554929
Author: Kumara Parameshwaran <kumaraparamesh92@gmail.com>
Date: Mon Jan 31 20:02:34 2022 +0530
net/tap: fix to populate FDs in secondary process
When a tap device is hotplugged to primary process which in turn
adds the device to all secondary process, the secondary process
does a tap_mp_attach_queues, but the fds are not populated in
the primary during the probe they are populated during the queue_setup,
added a fix to sync the queues during rte_eth_dev_start
Fixes: 4852aa8f6e21 ("drivers/net: enable hotplug on secondary process")
Cc: stable@dpdk.org
Signed-off-by: Kumara Parameshwaran <kparameshwar@vmware.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
--
You are receiving this mail because:
You are the assignee for the bug.
[-- Attachment #2: Type: text/html, Size: 7804 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [DPDK/ethdev Bug 1381] TAP device can not support 17 queues
2024-02-20 3:29 [DPDK/ethdev Bug 1381] TAP device can not support 17 queues bugzilla
@ 2024-02-20 19:23 ` Stephen Hemminger
0 siblings, 0 replies; 2+ messages in thread
From: Stephen Hemminger @ 2024-02-20 19:23 UTC (permalink / raw)
To: bugzilla; +Cc: dev
On Tue, 20 Feb 2024 03:29:04 +0000
bugzilla@dpdk.org wrote:
> https://bugs.dpdk.org/show_bug.cgi?id=1381
>
> Bug ID: 1381
> Summary: TAP device can not support 17 queues
> Product: DPDK
> Version: 23.11
> Hardware: All
> OS: All
> Status: UNCONFIRMED
> Severity: normal
> Priority: Normal
> Component: ethdev
> Assignee: dev@dpdk.org
> Reporter: stephen@networkplumber.org
> Target Milestone: ---
>
> If you try:
> # dpdk-testpmd --log-level=pmd.net.tap:debug -l 1-2 --vdev=net_tap0 -- -i
> --rxq=8 --txq=8
>
> It will fail because:
> EAL: Detected CPU lcores: 8
> EAL: Detected NUMA nodes: 1
> EAL: Detected static linkage of DPDK
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> EAL: Selected IOVA mode 'VA'
> rte_pmd_tap_probe(): Initializing pmd_tap for net_tap0
> eth_dev_tap_create(): TAP device on numa 0
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tun_alloc(): Using rt-signal 35
> eth_dev_tap_create(): allocated dtap0
> Interactive-mode selected
> testpmd: create a new mbuf pool <mb_pool_0>: n=155456, size=2176, socket=0
> testpmd: preferred mempool ops selected: ring_mp_mc
>
> Warning! port-topology=paired and odd forward ports number, the last port will
> pair with itself.
>
> Configuring Port 0 (socket 0)
> tap_dev_configure(): net_tap0: dtap0: TX configured queues number: 8
> tap_dev_configure(): net_tap0: dtap0: RX configured queues number: 8
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 0 fd 26
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 0 on fd 26 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 1 fd 212
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 1 on fd 212 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 2 fd 213
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 2 on fd 213 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 3 fd 214
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 3 on fd 214 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 4 fd 215
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 4 on fd 215 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 5 fd 216
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 5 on fd 216 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 6 fd 217
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 6 on fd 217 csum off
> tun_alloc(): /dev/net/tun Features 00007173
> tun_alloc(): Multi-queue support for 16 queues
> tun_alloc(): Device name is 'dtap0'
> tap_setup_queue(): dtap0: add tx queue for qid 7 fd 218
> tap_tx_queue_setup(): TX TUNTAP device name dtap0, qid 7 on fd 218 csum off
> tap_setup_queue(): dtap0: dup fd 26 for rx queue qid 0 (219)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 0 on fd 219
> tap_setup_queue(): dtap0: dup fd 212 for rx queue qid 1 (220)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 1 on fd 220
> tap_setup_queue(): dtap0: dup fd 213 for rx queue qid 2 (221)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 2 on fd 221
> tap_setup_queue(): dtap0: dup fd 214 for rx queue qid 3 (222)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 3 on fd 222
> tap_setup_queue(): dtap0: dup fd 215 for rx queue qid 4 (223)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 4 on fd 223
> tap_setup_queue(): dtap0: dup fd 216 for rx queue qid 5 (224)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 5 on fd 224
> tap_setup_queue(): dtap0: dup fd 217 for rx queue qid 6 (225)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 6 on fd 225
> tap_setup_queue(): dtap0: dup fd 218 for rx queue qid 7 (226)
> tap_rx_queue_setup(): RX TUNTAP device name dtap0, qid 7 on fd 226
> EAL: Cannot send more than 8 FDs
> tap_mp_req_on_rxtx(): Failed to send start req to secondary 7
>
> This is a regression caused by:
> commit c36ce7099c2187926cd62cff7ebd479823554929
> Author: Kumara Parameshwaran <kumaraparamesh92@gmail.com>
> Date: Mon Jan 31 20:02:34 2022 +0530
>
> net/tap: fix to populate FDs in secondary process
>
> When a tap device is hotplugged to primary process which in turn
> adds the device to all secondary process, the secondary process
> does a tap_mp_attach_queues, but the fds are not populated in
> the primary during the probe they are populated during the queue_setup,
> added a fix to sync the queues during rte_eth_dev_start
>
> Fixes: 4852aa8f6e21 ("drivers/net: enable hotplug on secondary process")
> Cc: stable@dpdk.org
>
> Signed-off-by: Kumara Parameshwaran <kparameshwar@vmware.com>
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
The number of file descriptors allowed in rte_mp_msg should be much larger.
The Linux kernel has an upper limit SCM_MAX_FD which is 253 (see net/scm.h)
But fixing this will break ABI because rte_mp_msg structure was exposed
in rte_eal.h. It should have been internal!
Alternatively, since fds[] is the last field in rte_mp_msg, and num_fds is
also there, fds[] could have been a flexible array, rather than hard coded.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-02-20 19:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-20 3:29 [DPDK/ethdev Bug 1381] TAP device can not support 17 queues bugzilla
2024-02-20 19:23 ` Stephen Hemminger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).