DPDK usage discussions
 help / color / mirror / Atom feed
From: Priya Ramanathan <shunmugapriya.ramanathan@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: users@dpdk.org,
	Koteswararao Kondepu <koteswararao.kondepu@gmail.com>,
	 andreaf <andreaf@utdallas.edu>
Subject: Re: Does DPDK supports EPOLL for 10G X550T (ixgbe driver)
Date: Mon, 30 Jan 2023 13:21:44 -0600	[thread overview]
Message-ID: <CAMgau3naSFWZJbx7pmdnX52fVaa8uXDxQ1zEY=EE_SHdR8hz7w@mail.gmail.com> (raw)
In-Reply-To: <CAMgau3kX1oPZCY1yiWbo4xbfjLxyAD5NTP=Cg4x1MYziB4Z6Qg@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 3408 bytes --]

//Adding the Interrupt Snapshot details from the kernel

Hello,

I followed the example from the l3fwd-power to enable the event poll using
Interrupt for the ixgbe driver  (10G X550T 1563).

Default multi-queuing enabled.

[image: image.png]


The Interrupts associated with the NIC - PCI-MSI
[image: image.png]
As the first step, I bind my NIC to the VFIO module.

[image: image.png]



The number of rte_eth_devices is shown as 1.

Then in my code, I called RTE_INTR_EVENT_ADD  with kPort = 0 and kQueue = 0

->rte_eth_dev_rx_intr_ctl_q(kPort, kQueue, RTE_EPOLL_PER_THREAD,
                                   RTE_INTR_EVENT_ADD, nullptr);
->I got the error as "RX Intr vector unset." When I checked inside the DPDK
code, it showed

intr_handle = dev->intr_handle;
+	if (!intr_handle->intr_vec) {
+		RTE_ETHDEV_LOG(ERR, "RX Intr vector unset\n");
+		return -EPERM;
+	}

I disabled multi-queueing by setting only one Combined queue but got
the same error. Could someone help me understand why and how to
overcome this error? Thank you.


Regards,

Priya


On Mon, Jan 30, 2023 at 11:53 AM Priya Ramanathan <
shunmugapriya.ramanathan@gmail.com> wrote:

> Hello,
>
> I followed the example from the l3fwd-power to enable the event poll for
> the ixgbe driver  (10G X550T 1563).
>
> Default multi-queuing enabled.
>
> [image: image.png]
>
> As the first step, I bind my NIC to the VFIO module.
>
> [image: image.png]
>
>
>
> The number of rte_eth_devices is shown as 1.
>
> Then in my code, I called RTE_INTR_EVENT_ADD  with kPort = 0 and kQueue = 0
>
> ->rte_eth_dev_rx_intr_ctl_q(kPort, kQueue, RTE_EPOLL_PER_THREAD,
>                                    RTE_INTR_EVENT_ADD, nullptr);
> ->I got the error as "RX Intr vector unset." When I checked inside the
> DPDK code, it showed
>
> intr_handle = dev->intr_handle;
> +	if (!intr_handle->intr_vec) {
> +		RTE_ETHDEV_LOG(ERR, "RX Intr vector unset\n");
> +		return -EPERM;
> +	}
>
>
> I disabled multi-queueing by setting only one Combined queue but got the same error. Could someone help me understand why and how to overcome this error? Thank you.
>
>
> Regards,
>
> Priya.
>
>
>
>
> On Thu, Jan 19, 2023 at 10:04 PM Stephen Hemminger <
> stephen@networkplumber.org> wrote:
>
>> On Thu, 19 Jan 2023 16:29:16 -0600
>> Priya Ramanathan <shunmugapriya.ramanathan@gmail.com> wrote:
>>
>> > Thank you, for the information.
>> > I have a UDPDK stack (with DPDK at the physical layer) for UDP
>> > communication.
>> >
>> > I am using VFIO module and binded the 10G X550T NIC to the VFIO module.
>> > Then I wrote a simple server-client code for UDP communication using the
>> > UDPDK APIs with DPDK support, which works fine.
>> > Now, I added the epoll_create, epoll_ctl and epoll_wait commands, and it
>> > looks like it is not working as expected.
>> >
>> > Let me go through the l3fwd example and try to understand it better. If
>> I
>> > get any questions, I will get back to you. Thank you.
>> >
>> > Regards,
>> > Priya.
>>
>>
>> There is no file descriptor visible to poll on in DPDK.
>> You need to use DPDK interrupt mode which is rte_epoll.
>>
>> Also, if DPDK wakes up in interrupt mode, it might not be a UDP
>> packet, it could be any type of packet that your stack has to digest
>> (ARP, ICMP, UDP, etc)
>>
>
>
> --
> winners do not do different things.They do things differently
>


-- 
winners do not do different things.They do things differently

[-- Attachment #1.2: Type: text/html, Size: 6733 bytes --]

[-- Attachment #2: image.png --]
[-- Type: image/png, Size: 91549 bytes --]

[-- Attachment #3: image.png --]
[-- Type: image/png, Size: 46072 bytes --]

[-- Attachment #4: image.png --]
[-- Type: image/png, Size: 232750 bytes --]

      reply	other threads:[~2023-02-02  8:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-19 19:43 Priya Ramanathan
2023-01-19 22:14 ` Stephen Hemminger
2023-01-19 22:29   ` Priya Ramanathan
2023-01-20  4:04     ` Stephen Hemminger
2023-01-30 17:53       ` Priya Ramanathan
2023-01-30 19:21         ` Priya Ramanathan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMgau3naSFWZJbx7pmdnX52fVaa8uXDxQ1zEY=EE_SHdR8hz7w@mail.gmail.com' \
    --to=shunmugapriya.ramanathan@gmail.com \
    --cc=andreaf@utdallas.edu \
    --cc=koteswararao.kondepu@gmail.com \
    --cc=stephen@networkplumber.org \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).