DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] KNI multi-queue example?
@ 2016-03-25  0:00 Jason Kwon
  2016-04-04 16:11 ` Andriy Berestovskyy
  0 siblings, 1 reply; 4+ messages in thread
From: Jason Kwon @ 2016-03-25  0:00 UTC (permalink / raw)
  To: users

Hello,

In the DPDK 2.2 KNI example code, only a single RX/TX queue pair is set up
for each Ethernet device port.  Is there a KNI example for devices and
drivers which support multiple queues per port?

Would such an implementation involve instantiating multiple KNI devices,
each to be associated with a single RX/TX queue pair?  Or would it be
possible to associate multiple RX/TX queues of a single port to a single
KNI device?

Thank you,

Jason

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] KNI multi-queue example?
  2016-03-25  0:00 [dpdk-users] KNI multi-queue example? Jason Kwon
@ 2016-04-04 16:11 ` Andriy Berestovskyy
  2016-06-08 22:59   ` Cliff Burdick
  0 siblings, 1 reply; 4+ messages in thread
From: Andriy Berestovskyy @ 2016-04-04 16:11 UTC (permalink / raw)
  To: Jason Kwon; +Cc: users

Hi Jason,

On Fri, Mar 25, 2016 at 1:00 AM, Jason Kwon <m43kwon@gmail.com> wrote:
> Is there a KNI example for devices and
> drivers which support multiple queues per port?

I guess there is no such an example, please see below.

> Would such an implementation involve instantiating multiple KNI devices,
> each to be associated with a single RX/TX queue pair?  Or would it be
> possible to associate multiple RX/TX queues of a single port to a single
> KNI device?

Since KNI has just 1 RX/TX pair, for the NIC->KNI path you need to
modify kni_ingress() to iterate all the NIC RX queues and send all of
those packets to the KNI.

For the KNI->NIC path you need to modify kni_egress() to distribute
the packets received from the KNI to multiple NIC TX queues (say,
based on a hash).

Having said the above, most likely it will not get you any performance
gain, since I guess the bottleneck is KNI, not the NIC queues.

Regards,
Andriy Berestovskyy

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] KNI multi-queue example?
  2016-04-04 16:11 ` Andriy Berestovskyy
@ 2016-06-08 22:59   ` Cliff Burdick
  2016-06-09 11:44     ` Andriy Berestovskyy
  0 siblings, 1 reply; 4+ messages in thread
From: Cliff Burdick @ 2016-06-08 22:59 UTC (permalink / raw)
  To: Andriy Berestovskyy; +Cc: Jason Kwon, users

Andriy, which pktmbuf_pool do you use when initializing KNI? There's a
separate pool for each queue on a port.

On Mon, Apr 4, 2016 at 9:11 AM, Andriy Berestovskyy <aber@semihalf.com>
wrote:

> Hi Jason,
>
> On Fri, Mar 25, 2016 at 1:00 AM, Jason Kwon <m43kwon@gmail.com> wrote:
> > Is there a KNI example for devices and
> > drivers which support multiple queues per port?
>
> I guess there is no such an example, please see below.
>
> > Would such an implementation involve instantiating multiple KNI devices,
> > each to be associated with a single RX/TX queue pair?  Or would it be
> > possible to associate multiple RX/TX queues of a single port to a single
> > KNI device?
>
> Since KNI has just 1 RX/TX pair, for the NIC->KNI path you need to
> modify kni_ingress() to iterate all the NIC RX queues and send all of
> those packets to the KNI.
>
> For the KNI->NIC path you need to modify kni_egress() to distribute
> the packets received from the KNI to multiple NIC TX queues (say,
> based on a hash).
>
> Having said the above, most likely it will not get you any performance
> gain, since I guess the bottleneck is KNI, not the NIC queues.
>
> Regards,
> Andriy Berestovskyy
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] KNI multi-queue example?
  2016-06-08 22:59   ` Cliff Burdick
@ 2016-06-09 11:44     ` Andriy Berestovskyy
  0 siblings, 0 replies; 4+ messages in thread
From: Andriy Berestovskyy @ 2016-06-09 11:44 UTC (permalink / raw)
  To: Cliff Burdick; +Cc: Jason Kwon, users

Hi Cliff,
KNI example has just one mempool and there is a reason for that: you
cannot init KNI with a mempool and then send there an mbuf from
another mempool.

So I suggest to use the same mempool for all the NIC queues.

Andriy


On Thu, Jun 9, 2016 at 12:59 AM, Cliff Burdick <shaklee3@gmail.com> wrote:
> Andriy, which pktmbuf_pool do you use when initializing KNI? There's a
> separate pool for each queue on a port.
>
> On Mon, Apr 4, 2016 at 9:11 AM, Andriy Berestovskyy <aber@semihalf.com>
> wrote:
>>
>> Hi Jason,
>>
>> On Fri, Mar 25, 2016 at 1:00 AM, Jason Kwon <m43kwon@gmail.com> wrote:
>> > Is there a KNI example for devices and
>> > drivers which support multiple queues per port?
>>
>> I guess there is no such an example, please see below.
>>
>> > Would such an implementation involve instantiating multiple KNI devices,
>> > each to be associated with a single RX/TX queue pair?  Or would it be
>> > possible to associate multiple RX/TX queues of a single port to a single
>> > KNI device?
>>
>> Since KNI has just 1 RX/TX pair, for the NIC->KNI path you need to
>> modify kni_ingress() to iterate all the NIC RX queues and send all of
>> those packets to the KNI.
>>
>> For the KNI->NIC path you need to modify kni_egress() to distribute
>> the packets received from the KNI to multiple NIC TX queues (say,
>> based on a hash).
>>
>> Having said the above, most likely it will not get you any performance
>> gain, since I guess the bottleneck is KNI, not the NIC queues.
>>
>> Regards,
>> Andriy Berestovskyy
>
>



-- 
Andriy Berestovskyy

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-06-09 11:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-25  0:00 [dpdk-users] KNI multi-queue example? Jason Kwon
2016-04-04 16:11 ` Andriy Berestovskyy
2016-06-08 22:59   ` Cliff Burdick
2016-06-09 11:44     ` Andriy Berestovskyy

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).