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 9E87342D26; Thu, 22 Jun 2023 18:36:26 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6FA7D40DDA; Thu, 22 Jun 2023 18:36:26 +0200 (CEST) Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by mails.dpdk.org (Postfix) with ESMTP id 6DD5D406BA for ; Thu, 22 Jun 2023 18:36:24 +0200 (CEST) Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-25e83254ff5so631402a91.1 for ; Thu, 22 Jun 2023 09:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687451783; x=1690043783; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vhCdhIeH3X8V/bqOQIa1QryUnl7+Q2LWNur34nBuapU=; b=NfjSpMBjTjir4ciTimEAcNAl/L/d/h8y/fxw8U7UxDN3SlhsDcQCbv0dQUEC9Cmi0o W9suU+JYzg25bFzYGp48VAHd8fwc911ejBSZJy8P6qWEM6muadoWh/YTkTjzvvBYOK5J uryLCiSgVgfMQ6GSKHqoIOHJbtJFIft+0p2BY/ruYv0BgS8IfMw4yDzZZf6CZaiuCtct nttqO5afeu6yXZowEButLsmmIxOuz0njdZXaJRCZlWsDj3Ksb3j0CK3qO4qmWKmIlYVL Bj/xvZ2gK0wEgFiCyaHNzW4+QyCOhLMCPfEowqfQLjY35khhlAAol2zfdFv/StRX7kLp QrXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687451783; x=1690043783; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vhCdhIeH3X8V/bqOQIa1QryUnl7+Q2LWNur34nBuapU=; b=XZueIKaUFKLeRDrIgyMvosh85My4fAngKBVP3Ywu72hiw9BDq5oC24LpoAPPn7Xa4V 5J4goMS22kIFG6iY6XMj8PAi0Fr34i7q2DEo1gF3yIcmh2P8s4rS21ZvvIG5KANYqnSL aVrJ44B5svqJwubaSm+Wymd7h0etf7cTxGYn+9j9CR+YqvZY5otbemTLuJg7SmEHs/vi VY2W4wPfSK7kabMbSvI/qtGg/yJ1DsRTZpJQQY2WNNGhSlsDWegIS9lkzqI4HOsOQKzh VCU2/VRSTFAt0CK0wZaP/PLCNxXmK8P6ZsHbQD0F2AaqvHkqyiHB52DSmH0Kbx6jARzH FljQ== X-Gm-Message-State: AC+VfDyYK2pb64/qyceTHd7zRYX1aIvsXD67R8WTYPxd9aRdsUytNGSP +6ROipaQ6xKY3mtvwt78S+lIBbjyd8TNgrWtv/OWH8UGFw4= X-Google-Smtp-Source: ACHHUZ7UknZ8tJQbzo7DFjG8KjxcX2VGhb9+cEEoTpQhMkOzb/Pr3CG6lpV6a36PxHnrFwF/gofZ5occYFe6QRbB6Go= X-Received: by 2002:a17:90a:eb18:b0:25e:c876:26e9 with SMTP id j24-20020a17090aeb1800b0025ec87626e9mr22974617pjz.22.1687451783013; Thu, 22 Jun 2023 09:36:23 -0700 (PDT) MIME-Version: 1.0 From: Nageswara Rao Date: Thu, 22 Jun 2023 22:06:10 +0530 Message-ID: Subject: DPDK22 issue: Unable to set more than 4 queues in Azure To: dev@dpdk.org, ASHIQUE CK Content-Type: multipart/alternative; boundary="0000000000001a2e8a05feba7c45" 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 --0000000000001a2e8a05feba7c45 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi All, We are observing the following issue with DPDK22.11. We didn=E2=80=99t find= any upstream patches for this issue on the DPDK github. Is there any known issue, please let us know. *Issue:* On Azure platform, we are unable to configure more than 4 queues. When we try to configure more than 4 queues its failing with =E2=80=9CEAL: Cannot s= end more than 8 FDs=E2=80=9D error. Here I am pasting the working and failing testpmd logs. Please note that this issue is not observed in DPDK 21.11. *DPDK Testpmd*: *Working case with 4 rx & 4 tx queues:* ./build/app/dpdk-testpmd -l 0-3 -a 38d9:00:02.0 -- --nb-cores=3D3 --rxq=3D4 --txq=3D4 --burst=3D64 --mbcache=3D512 --max-pkt-len=3D128 --forward-mode= =3Dtxonly -a --stats-period 1 *Failing case with 8 rx & 8 tx queues:* ./build/app/dpdk-testpmd -l 0-7 -a 38d9:00:02.0 -- --nb-cores=3D4 --rxq=3D8 --txq=3D8 --burst=3D64 --mbcache=3D512 --max-pkt-len=3D128 --forward-mode= =3Dtxonly -a --stats-period 1 *DPDK log:* Configuring Port 0 (socket 0) EAL: Cannot send more than 8 FDs tap_mp_req_on_rxtx(): Failed to send start req to secondary 7 *** stack smashing detected ***: terminated Aborted =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D When we checked DPDK 22.11 code, tap_mp_req_on_rxtx() pasted below is newly added in rte_eth_tap.c file which is causing the issue. static int tap_mp_req_on_rxtx(struct rte_eth_dev *dev) { struct rte_mp_msg msg; struct ipc_queues *request_param =3D (struct ipc_queues *)msg.param; int err; int fd_iterator =3D 0; struct pmd_process_private *process_private =3D dev->process_private; int i; memset(&msg, 0, sizeof(msg)); strlcpy(msg.name, TAP_MP_REQ_START_RXTX, sizeof(msg.name)); strlcpy(request_param->port_name, dev->data->name, sizeof(request_param->port_name)); msg.len_param =3D sizeof(*request_param); for (i =3D 0; i < dev->data->nb_tx_queues; i++) { msg.fds[fd_iterator++] =3D process_private->txq_fds[i]; msg.num_fds++; request_param->txq_count++; } for (i =3D 0; i < dev->data->nb_rx_queues; i++) { msg.fds[fd_iterator++] =3D process_private->rxq_fds[i]; msg.num_fds++; request_param->rxq_count++; } err =3D rte_mp_sendmsg(&msg); =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=C3=A8 This function is sending msg with msg.num_fds > RTE_PMD_TAP_MAX_QUEUES (i.e. 8), because of that its failing. if (err < 0) { TAP_LOG(ERR, "Failed to send start req to secondary %d", rte_errno); return -1; } return 0; } Thanks Nagesh --0000000000001a2e8a05feba7c45 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Hi All,

We are observing = the following issue with DPDK22.11.=C2=A0We didn=E2=80=99t find any upstream patches for this issue on the DPDK gi= thub. Is there any known issue, please let us know.

=C2=A0

Issue:

On Azure platform, we are unable to configure more than 4 queues. When we try to configure more than 4 queues its failing with =E2=80= =9CEAL: Cannot send more than 8 FDs=E2=80=9D error.

Here I am pasting the working and failing testpmd logs.=C2= =A0

Please note that this issue is not observed in DPDK 21.11.

=C2=A0

DP= DK Testpmd:
Working case with 4 rx & 4 tx queues:
./build/app/dpdk-testpmd -l 0-3 -a 38d9:00:02.0 -- --nb-cores=3D3 --rxq=3D4 --txq=3D4 --burst=3D64 --mbcache=3D512 --max-pkt-len=3D128 --forward-mode=3Dtxonly -a --stats-period 1

Failing case with 8 rx & 8 tx queues:
./build/app/dpdk-testpmd -l 0-7 -a 38d9:00:02.0 -- --nb-cores=3D4 --rxq=3D8 --txq=3D8 --burst=3D64 --mbcache=3D512 --max-pkt-len=3D128 --forward-mode=3Dtxonly -a --stats-period 1

DPDK log:
Configuring Port 0 (socket 0)
EAL: Cannot send more than 8 FDs
tap_mp_req_on_rxtx(): Failed to send start req to secondary 7
*** stack smashing detected ***: <unknown> terminated
Aborted

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

=C2=A0

When we checked DPDK 22.11 code, tap_mp_req_on_rxtx() pasted below is newly added in rte_eth_tap.c file which is causing the issue.

=C2=A0

static int

tap_mp_req_on_rxtx(struct rte_eth_dev *dev)

{

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct rte_mp_msg msg;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct ipc_queues *request_param =3D (struct ipc_queues *)msg.param;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int err;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int fd_iterator =3D 0;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct pmd_process_private *process_private =3D dev->process_private;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int i;

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 memset(&msg, 0, sizeof(msg));

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 strlcpy(msg.name, TAP_MP_REQ_START_RXTX, si= zeof(msg.name));

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 strlcpy(request_param->port_name, dev->data->name, sizeof(request_param->port_name));

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 msg.len_param =3D sizeof(*request_param);

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 for (i =3D 0; i < dev->data->nb_tx_queues; i++) {

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 msg.fds[fd_iterator++] =3D process_private->txq_fds[i];

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 msg.num_fds++;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 request_param->txq_count++;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 for (i =3D 0; i < dev->data->nb_rx_queues; i++) {

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 msg.fds[fd_iterator++] =3D process_private->rxq_fds[i];

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 msg.num_fds++;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 request_param->rxq_count++;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 err =3D rte_mp_sendmsg(&msg);=C2=A0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=C3=A8 This func= tion is sending msg with msg.num_fds > RTE_PMD_TAP_MAX_QUEUES (i.e. 8), because of that its failing.

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (err < 0) {

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 TAP_LOG(ERR, "Failed to send start req to secondary %d",

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rte_errno);

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -1;

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return 0;

}

=C2=A0

Thanks

Nagesh

--0000000000001a2e8a05feba7c45--