<div dir="ltr"><p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">Hi All,</p><p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">We are observing the following issue with DPDK22.11. <span style="font-size:14.6667px">We didn’t find any upstream patches for this issue on the DPDK github. Is there any known issue, please let us know.</span></p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><b>Issue:</b></p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">On Azure platform, we are unable to configure more than 4
queues. When we try to configure more than 4 queues its failing with “<span style="font-size:12pt;font-family:"Segoe UI",sans-serif">EAL: Cannot send
more than 8 FDs</span>” error. </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">Here I am pasting the working and failing testpmd logs. </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">Please note that this issue is not observed in DPDK 21.11.</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><b><span style="font-size:12pt;font-family:"Segoe UI",sans-serif">DPDK
Testpmd</span></b><span style="font-size:12pt;font-family:"Segoe UI",sans-serif">:<br>
<b><i>Working case with 4 rx & 4 tx queues:</i></b><br>
./build/app/dpdk-testpmd -l 0-3 -a 38d9:00:02.0 -- --nb-cores=<span style="background:yellow">3 --rxq=4 --txq=4</span>
--burst=64 --mbcache=512 --max-pkt-len=128 --forward-mode=txonly -a
--stats-period 1<br>
<br>
<b><i>Failing case with 8 rx & 8 tx queues:</i></b><br>
./build/app/dpdk-testpmd -l 0-7 -a 38d9:00:02.0 -- --nb-cores=4 <span style="background:yellow">--rxq=8 --txq=8</span>
--burst=64 --mbcache=512 --max-pkt-len=128 --forward-mode=txonly -a
--stats-period 1<br>
<br>
<b>DPDK log:</b><br>
Configuring Port 0 (socket 0)<br>
<span style="background:yellow">EAL: Cannot send more than
8 FDs</span><br>
tap_mp_req_on_rxtx(): Failed to send start req to secondary 7<br>
*** stack smashing detected ***: <unknown> terminated<br>
Aborted</span></p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">=====================================</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">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.</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9pt;font-family:Menlo;color:rgb(210,168,255);background:rgb(13,17,23)"> </span></p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">static int</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">tap_mp_req_on_rxtx(struct rte_eth_dev *dev)</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">{</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
struct rte_mp_msg msg;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
struct ipc_queues *request_param = (struct ipc_queues *)msg.param;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
int err;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
int fd_iterator = 0;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
struct pmd_process_private *process_private = dev->process_private;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
int i;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
memset(&msg, 0, sizeof(msg));</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
strlcpy(<a href="http://msg.name">msg.name</a>, TAP_MP_REQ_START_RXTX, sizeof(<a href="http://msg.name">msg.name</a>));</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
strlcpy(request_param->port_name, dev->data->name,
sizeof(request_param->port_name));</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
msg.len_param = sizeof(*request_param);</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
for (i = 0; i < dev->data->nb_tx_queues; i++) {</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
msg.fds[fd_iterator++] = process_private->txq_fds[i];</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
msg.num_fds++;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
request_param->txq_count++;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
}</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
for (i = 0; i < dev->data->nb_rx_queues; i++) {</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
msg.fds[fd_iterator++] = process_private->rxq_fds[i];</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
msg.num_fds++;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
request_param->rxq_count++;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
}</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
<span style="background:yellow">err =
rte_mp_sendmsg(&msg);  ========================</span><span style="font-family:Wingdings;background:yellow">è</span><span style="background:yellow"> This function is sending msg
with msg.num_fds > RTE_PMD_TAP_MAX_QUEUES (i.e. 8), because of that its
failing.</span></p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
if (err < 0) {</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
TAP_LOG(ERR, "Failed to send start req to secondary %d",</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                                               
rte_errno);</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">                               
return -1;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
}</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">               
return 0;</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">}</p><p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:11pt"> </span></p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">Thanks</p>

<p class="MsoNormal" style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif">Nagesh</p></div>