On 2019/2/12 上午11:55, Stefan Hajnoczi wrote:
On Mon, Feb 11, 2019 at 09:52:01AM -0500, Michael S. Tsirkin wrote:
On Mon, Feb 11, 2019 at 04:40:44PM +0300, Anton Kuchin wrote:
As far as I can see currently IOThread offloading is used only for block
devices and all others are emulated by main thread.

I expect that network devices can also benefit from processing in separate
thread but I couldn't find any recent work in this direction. I'm going to
implement a PoC but I want to ask if you know any previous attempts and do
you know why it can be a total waste of time. Are there fundamental
obstacles that prevent network emulation handling in IOThread?
No but vhost-net is there. Unlike block where you gain lots of
functionality such as snapshots there seems to be little to
be gained by doing it in userspace.
Anthony Liguori tried virtio-net in a dedicated thread a long time ago
but it was never completed/merged.

I think the argument for vhost-net in the kernel is that userspace
doesn't offer the same APIs as the kernel.  For example, is zero copy
possible from userspace?


Actually, it will be simpler than doing it at kernel somehow. E.g technically, you can write a userspace NIC driver in qemu to achieve that or doing it through dpdk pmd.

Thanks



Anton: If you want to do virtio-net in userspace, QEMU has
vhost-user-net support so you can perform emulation in a separate
process.

Stefan

Reply via email to