<div dir="ltr">//Adding the Interrupt Snapshot details from the kernel<div><br></div><div>Hello,<div><br></div><div>I followed the example from the l3fwd-power to enable the event poll using Interrupt for the ixgbe driver (10G X550T 1563).</div><div><br></div><div>Default multi-queuing enabled.</div><div><br></div><div><img src="cid:ii_ldj3viz13" alt="image.png" width="440" height="205" class="gmail-CToWUd gmail-a6T" tabindex="0" style="cursor: pointer; outline: 0px;"><br></div><div><br></div><div><br></div><div>The Interrupts associated with the NIC - PCI-MSI</div><div><img src="cid:ii_ldj753rm3" alt="image.png" width="562" height="227"><br></div><div>As the first step, I bind my NIC to the VFIO module.</div><div><br></div><div><img src="cid:ii_ldj3pe350" alt="image.png" width="562" height="111" class="gmail-CToWUd gmail-a6T" tabindex="0" style="cursor: pointer; outline: 0px;"><br></div><div><br></div><div><br></div><div><br></div><div>The number of rte_eth_devices is shown as 1.<br></div><div><br></div><div>Then in my code, I called RTE_INTR_EVENT_ADD with kPort = 0 and kQueue = 0</div><div><br></div>->rte_eth_dev_rx_intr_ctl_q(kPort, kQueue, RTE_EPOLL_PER_THREAD,<br> RTE_INTR_EVENT_ADD, nullptr);<div>->I got the error as "<span style="color:rgb(0,0,0);font-size:13px;white-space:pre-wrap">RX Intr vector unset." When I checked inside the DPDK code, it showed </span></div><div><pre style="white-space:pre-wrap;font-size:13px;color:rgb(0,0,0)">intr_handle = dev->intr_handle;
+ if (!intr_handle->intr_vec) {
+ RTE_ETHDEV_LOG(ERR, "RX Intr vector unset\n");
+ return -EPERM;
+ }</pre><pre style="white-space:pre-wrap;font-size:13px;color:rgb(0,0,0)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;white-space:normal">I disabled multi-queueing by setting only one Combined queue but got the same error. </span><font face="arial, sans-serif">Could someone help me understand why and how to overcome this error? Thank you. </font></pre><pre style="white-space:pre-wrap;font-size:13px;color:rgb(0,0,0)"><br></pre><pre style="white-space:pre-wrap;font-size:13px;color:rgb(0,0,0)"><font face="arial, sans-serif">Regards,</font></pre><pre style="white-space:pre-wrap;font-size:13px;color:rgb(0,0,0)"><font face="arial, sans-serif">Priya</font></pre></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 30, 2023 at 11:53 AM Priya Ramanathan <<a href="mailto:shunmugapriya.ramanathan@gmail.com">shunmugapriya.ramanathan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I followed the example from the l3fwd-power to enable the event poll for the ixgbe driver (10G X550T 1563).</div><div><br></div><div>Default multi-queuing enabled.</div><div><br></div><div><img src="cid:ii_ldj3viz13" alt="image.png" width="440" height="205"><br></div><div><br></div><div>As the first step, I bind my NIC to the VFIO module.</div><div><br></div><div><img src="cid:ii_ldj3pe350" alt="image.png" width="562" height="111"><br></div><div><br></div><div><br></div><div><br></div><div>The number of rte_eth_devices is shown as 1.<br></div><div><br></div><div>Then in my code, I called RTE_INTR_EVENT_ADD with kPort = 0 and kQueue = 0</div><div><br></div>->rte_eth_dev_rx_intr_ctl_q(kPort, kQueue, RTE_EPOLL_PER_THREAD,<br> RTE_INTR_EVENT_ADD, nullptr);<div>->I got the error as "<span style="color:rgb(0,0,0);font-size:13px;white-space:pre-wrap">RX Intr vector unset." When I checked inside the DPDK code, it showed </span></div><div><pre style="font-size:13px;white-space:pre-wrap;color:rgb(0,0,0)"><span>intr_handle = dev->intr_handle;
+ if (!intr_handle->intr_vec) {
+ RTE_ETHDEV_LOG(ERR, "RX Intr vector unset\n");
+ return -EPERM;
+ }</span></pre><pre style="font-size:13px;white-space:pre-wrap;color:rgb(0,0,0)"><span>
<span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;white-space:normal">I disabled multi-queueing by setting only one Combined queue but got the same error. </span><font face="arial, sans-serif">Could someone help me understand why and how to overcome this error? Thank you. </font></span></pre><pre style="font-size:13px;white-space:pre-wrap;color:rgb(0,0,0)"><span><br></span></pre><pre style="font-size:13px;white-space:pre-wrap;color:rgb(0,0,0)"><span>Regards,</span></pre><pre style="font-size:13px;white-space:pre-wrap;color:rgb(0,0,0)"><span>Priya.</span></pre><pre style="font-size:13px;white-space:pre-wrap;color:rgb(0,0,0)"><span><br></span></pre><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 19, 2023 at 10:04 PM Stephen Hemminger <<a href="mailto:stephen@networkplumber.org" target="_blank">stephen@networkplumber.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 19 Jan 2023 16:29:16 -0600<br>
Priya Ramanathan <<a href="mailto:shunmugapriya.ramanathan@gmail.com" target="_blank">shunmugapriya.ramanathan@gmail.com</a>> wrote:<br>
<br>
> Thank you, for the information.<br>
> I have a UDPDK stack (with DPDK at the physical layer) for UDP<br>
> communication.<br>
> <br>
> I am using VFIO module and binded the 10G X550T NIC to the VFIO module.<br>
> Then I wrote a simple server-client code for UDP communication using the<br>
> UDPDK APIs with DPDK support, which works fine.<br>
> Now, I added the epoll_create, epoll_ctl and epoll_wait commands, and it<br>
> looks like it is not working as expected.<br>
> <br>
> Let me go through the l3fwd example and try to understand it better. If I<br>
> get any questions, I will get back to you. Thank you.<br>
> <br>
> Regards,<br>
> Priya.<br>
<br>
<br>
There is no file descriptor visible to poll on in DPDK.<br>
You need to use DPDK interrupt mode which is rte_epoll.<br>
<br>
Also, if DPDK wakes up in interrupt mode, it might not be a UDP<br>
packet, it could be any type of packet that your stack has to digest<br>
(ARP, ICMP, UDP, etc)<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr">winners do not do different things.They do things differently</div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">winners do not do different things.They do things differently</div>