qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] snabbswitch integration with QEMU for userspace etherne


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] snabbswitch integration with QEMU for userspace ethernet I/O
Date: Mon, 27 May 2013 18:18:55 +0300

On Mon, May 27, 2013 at 11:34:09AM +0200, Stefan Hajnoczi wrote:
> On Sun, May 26, 2013 at 11:32:49AM +0200, Luke Gorrie wrote:
> > Stefan put us onto the highly promising track of vhost/virtio. We have
> > implemented this between Snabb Switch and the Linux kernel, but not
> > directly between Snabb Switch and QEMU guests. The "roadblock" we have hit
> > is embarrasingly basic: QEMU is using user-to-kernel system calls to setup
> > vhost (open /dev/net/tun and /dev/vhost-net, ioctl()s) and I haven't found
> > a good way to map these towards Snabb Switch instead of the kernel.
> 
> vhost_net is about connecting the a virtio-net speaking process to a
> tun-like device.  The problem you are trying to solve is connecting a
> virtio-net speaking process to Snabb Switch.
> 
> Either you need to replace vhost or you need a tun-like device
> interface.
> 
> Replacing vhost would mean that your switch implements virtio-net,
> shares guest RAM with the guest, and shares the ioeventfd and irqfd
> which are used to signal with the guest.  At that point your switch is
> similar to the virtio-net data plane work that Ping Fan Liu is working
> on but your switch is in a separate process rather than a thread.
> 
> How does your switch talk to hardware?

Yes that's my question as well.

>  If you have userspace NIC
> drivers that bypass the Linux network stack then the approach I
> mentioned fits well.
> 
> If you are using the Linux network stack then it might be better to
> integrate with vhost maybe as a tun-like device driver.
> 
> Stefan

Maybe you should bind macvtap passthrough mode to veth.
packet socket backend doesn't support TSO at this point,
so it's slower.

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]