> From: Stephen Hemminger [mailto:step...@networkplumber.org]
> Sent: Tuesday, 12 November 2024 06.21
> 
> On Wed, 6 Nov 2024 08:46:55 +0100
> Maxime Coquelin <maxime.coque...@redhat.com> wrote:
> >
> > Why not just use Virtio-user PMD with Vhost-kernel backend [0]?
> > Are there any missing features that io_uring can address?
> >
> > Regards,
> > Maxime
> >
> > [0]:
> http://doc.dpdk.org/guides/howto/virtio_user_as_exception_path.html
> >
> 
> Yes, I looked at that but:
>   - virtio user ends up with a busy kernel thread which is not
> acceptable
>     in SOC environment where all resources are locked down. In the SOC
> I was working
>     on DPDK was limited to 4 polling isolated CPU's and 1 sleeping main
> thread.
>     The rest of the CPU resources were hard constrained by cgroups. The
> virtio user
>     thread was a problem.

I suppose the Kernel needs to schedule CPU resources to process the packets at 
some point anyway.
So how does the ioring driver improve the situation with the virtio-user 
thread? I.e. what's the difference in the way the Kernel handles these two 
types of drivers?

And a slightly related question: Are there any differences in throughput, 
latency or other performance metrics? (At very high bandwidth, scheduling 
latency matters; the "latency" parameter of the BDP becomes dominant.)

Overall, I'm trying to figure out when to use the virtio-user PMD, and when to 
use the ioring PMD.
Eventually, this should be described in the driver documentation or a user 
guide.

> 
>   - virtio user device is not persistent. If DPDK is being used a
> dataplane, need to
>     be able to quickly restart and not disturb applications and routing
> in the kernel
>     while the tap device is unavailable.  I.e having device present but
> in no carrier
>     state is better than having to teach applications about hot plug or
> play around
>     with multiple addresses on loopback device (which is what Cisco
> routers do).

virtio-user device persistence can probably be achieved in some other way.
(E.g. a persistent user space daemon could be used as a middle man for 
allocation. Just an idea; probably better solutions are available, if given 
more brain cycles.)

Reply via email to