tap device speed

Maxime Coquelin maxime.coquelin at redhat.com
Mon Oct 9 20:42:21 CEST 2023


Hi Antonio,

On 10/9/23 19:48, Antonio Di Bacco wrote:
> Hi Maxime,
> 
> trying to follow the steps at the link provided:
> 
> 
> sage:
> ======
> 
> 1. Probe required Kernel modules
> # modprobe vdpa
> # modprobe vduse
> # modprobe virtio-vdpa
> 
> 2. Build (require vduse kernel headers to be available)
> # meson build
> # ninja -C build
> 
> 3. Create a VDUSE device (vduse0) using Vhost PMD with
> testpmd (with 4 queue pairs in this example)
> # ./build/app/dpdk-testpmd --no-pci
> --vdev=net_vhost0,iface=/dev/vduse/vduse0,queues=4 --log-level=*:9  --
> -i --txq=4 --rxq=4
> 
> 4. Attach the VDUSE device to the vDPA bus
> # vdpa dev add name vduse0 mgmtdev vduse
> 
> I'm stuck at step 4, with an error:
> 
> manderwo at fetgem01:~$ sudo vdpa dev add name vduse0 mgmtdev vduse
> kernel answers: Invalid argument
> manderwo at fetgem01:~$ vdpa mgmtdev show
> vduse:
>    supported_classes block
> manderwo at fetgem01:~$
> 
> Do you know what could be wrong?

I guess you don't have the kernel patches applied, a recent branch  can 
be found on my gitlab aacount.
You can find instructions here:

https://gitlab.com/mcoquelin/vduse-doc/-/blob/master/SETUP.md?ref_type=heads#kernel

Maxime

> 
> Thank you in advance,
> Antonio.
> 
> On Wed, Oct 4, 2023 at 9:50 AM Maxime Coquelin
> <maxime.coquelin at redhat.com> wrote:
>>
>>
>>
>> On 10/4/23 09:42, Antonio Di Bacco wrote:
>>> Thank you for your info that are giving me the right heads up
>>> To experiment with VDUSE and share a virtual network interface (I
>>> don't have a physical NIC) between the Linux kernel and DPDK using
>>> VDUSE, I'm about to follow these steps:
>>>
>>> Load Required Kernel Modules:
>>> modprobe vduse
>>> Create /dev/vdpa0 device with:
>>> vdpa -d /dev/vdpa0 -n my_vdpa_driver -q queue_count
>>>
>>> I wonder which vdpa_driver should I use, I don't have a real NIC
>>> After having this vdpa0 interface up I can run my DPDK application:
>>>
>>> ./my_dpdk_app --vdev "net_vdpa0,iface=/dev/vdpa0"
>>
>> You will use the Vhost PMD in this case (alternative is to use the Vhost
>> API directly).
>>
>> Maybe I missed to add steps with Vhost PMD in my doc repo, I'll improve
>> it but in the mean time you can refer to the steps provided in the DPDK
>> VDUSE series cover letter:
>> https://inbox.dpdk.org/dev/7f72500a-5317-c66d-3f36-2fd65c874b47@redhat.com/T/
>>
>> Please read the vduse documentation on my gitlab repo anyways, it
>> provides pointers on the missing Kernel patches (being upstreamed).
>>
>> Maxime
>>
>>
>>> Regards,
>>> Antonio.
>>>
>>> On Wed, Oct 4, 2023 at 9:08 AM Maxime Coquelin
>>> <maxime.coquelin at redhat.com> wrote:
>>>>
>>>>
>>>>
>>>> On 10/4/23 08:17, David Marchand wrote:
>>>>> On Tue, Oct 3, 2023 at 6:01 PM Stephen Hemminger
>>>>> <stephen at networkplumber.org> wrote:
>>>>>>
>>>>>> On Tue, 3 Oct 2023 10:49:16 +0200
>>>>>> Antonio Di Bacco <a.dibacco.ks at gmail.com> wrote:
>>>>>>
>>>>>>> I understand, could we use another solution ? Like a memif  interface
>>>>>>> in DPDK and libmemif in Linux?
>>>>>>
>>>>>> The issue is accessing kernel networking devices. Both virtio user
>>>>>> and XDP are faster for that. Memif is for doing process to process networking.
>>>>>
>>>>> For dpdk <-> kernel, as you are mentioning virtio-user/vhost, let me
>>>>> add that there is some activity on this side, with VDUSE.
>>>>>
>>>>> Maxime is working on the VDUSE kernel and dpdk bits.
>>>>> He gave a talk about the current status during the summit and some
>>>>> performance numbers:
>>>>> https://dpdksummit2023.sched.com/event/1P9xA/vduse-performance-how-fast-is-it-maxime-coquelin-red-hat
>>>>>
>>>>>
>>>>
>>>> Thanks for sharing David.
>>>> I'd like just to add some more information on VDUSE if you want to
>>>> experiment with VDUSE, which is still under development:
>>>> https://gitlab.com/mcoquelin/vduse-doc
>>>>
>>>> Maxime
>>>>
>>>
>>
> 



More information about the users mailing list