From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7A12643B58; Tue, 20 Feb 2024 20:23:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1FACA402A7; Tue, 20 Feb 2024 20:23:11 +0100 (CET) Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) by mails.dpdk.org (Postfix) with ESMTP id 0F9B3402A7 for ; Tue, 20 Feb 2024 20:23:10 +0100 (CET) Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-5bdbe2de25fso4724004a12.3 for ; Tue, 20 Feb 2024 11:23:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1708456989; x=1709061789; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=YSIizLD/BXpXKmRf96e+h86qqUGXsuW7zJ/SulXec+U=; b=u+hUI9ecWXvRiJDBIdqH1ILTv4FOGoceik0N66ZPjJGQNP93PU4ijAacRVe0TRnR7i syKZZ+yUqjvEUf8+klA/KNKupiyuVYIPtLQCo+nxw47TQebiiDjYZ9sWdkslWYFz9rEj NOYffKt2goV6J5aXTGPUWXZeJHlzPOOnD9ZImGRutTK3dOMIZJmf0kguNe6A7JbNLkrc jlSRxOG3otd4y8DBlZsai0lFmDTFaKYCFQEYXF4Fqpm0dMY5wmJ9w0kRDhVIvZJPNdBX RFAXFTzDDweAgr96+HVuku+DOnciyX4/YPjpFwieIGUnYI9pekLiGOBmBTRhCUqiMiCF uWtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708456989; x=1709061789; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YSIizLD/BXpXKmRf96e+h86qqUGXsuW7zJ/SulXec+U=; b=QZFKtIKJCfV8N/6+cDDOxQEy4e/OH4t7CAjNGr6uHfpHIY9ZgDaDpKMHzDikwlHOXi vgqYKGZoyJAW+i06I1VlxFobVPH69vsDjXcS9nbfM5sWt4y4fayqSMz4t2UP3T432SvA MeNxP4of5RxSBaXu/Vkc/L9PTiE5Bls4lzBnOE//0VsoBJ/5V9NqT+l28Dmzegahp6ZX my1UQDy9eQ6eTTCZo0Mog56+CZcmTggH2gm7zkqgV97ZpqRqF4zZha8MuwhsYzkBY3jG QUgldNGck4uul6ll/9C4WuAyLDF2+ZZ7RWoCvlInfKLs4Ig6HDDvoKPkxXMBf2VJ9UZ6 nRrw== X-Gm-Message-State: AOJu0YwOL9d2N8GGDeRB6y3Ae8+k6Y6Is9w3al+c+tqFoDpK7xqYmw55 atuaaNms+yoKR1MepO53DaIjoRN57dN7QJ+A4J9+NJxe0ROEfHhJ2SILxQpzUOg= X-Google-Smtp-Source: AGHT+IE6WAo3VdJXBQRnPRRIskVyAmUPIPJbeXN9iFSU1QlQcZ0Bx9ryI2GAvUcYDThMKpr6CahL5w== X-Received: by 2002:a17:90a:e504:b0:299:305e:6811 with SMTP id t4-20020a17090ae50400b00299305e6811mr11061242pjy.4.1708456988965; Tue, 20 Feb 2024 11:23:08 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id mp14-20020a17090b190e00b002993f72ed02sm8005609pjb.34.2024.02.20.11.23.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Feb 2024 11:23:08 -0800 (PST) Date: Tue, 20 Feb 2024 11:23:07 -0800 From: Stephen Hemminger To: bugzilla@dpdk.org Cc: dev@dpdk.org Subject: Re: [DPDK/ethdev Bug 1381] TAP device can not support 17 queues Message-ID: <20240220112307.523c952e@hermes.local> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 : 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 > 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 > Reviewed-by: Ferruh Yigit > 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.