[dpdk-users] KNI multi-queue example?

Andriy Berestovskyy aber at semihalf.com
Thu Jun 9 13:44:30 CEST 2016


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 at 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 at semihalf.com>
> wrote:
>>
>> Hi Jason,
>>
>> On Fri, Mar 25, 2016 at 1:00 AM, Jason Kwon <m43kwon at 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


More information about the users mailing list