Re: [PATCH 2/2] vhost_net: a kernel-level virtio server

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Arnd Bergmann
Date: Wednesday, August 12, 2009 - 10:59 am

On Wednesday 12 August 2009, Michael S. Tsirkin wrote:

Well, that was my point: virtio can already work on a number of abstractions,
so adding one more for vhost should not be too hard.

...

The trick is to swap the virtqueues instead. virtio-net is actually
mostly symmetric in just the same way that the physical wires on a
twisted pair ethernet are symmetric (I like how that analogy fits).

virtio_net kicks the transmit virtqueue when it has data and
it kicks the receive queue when it has empty buffers to fill,
and it has callbacks when the two are done. You can do the
same in both the guest and the host, but then the guests input
virtqueue is the hosts output virtqueue and vice versa.

Once a virtqueue got kicked from both sides, the vhost_virtqueue
implementation between the two only needs to do a copy_from_user
or copy_to_user (possibly from a thread if it is in atomic context)
and then call the two callback functions. This is basically the
same thing you do already, except that you use slightly different
names for the components.

	Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Mon Aug 10, 11:53 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Mon Aug 10, 12:51 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Mon Aug 10, 1:10 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Mon Aug 10, 3:16 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Wed Aug 12, 10:03 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Ira W. Snyder, (Wed Aug 12, 10:19 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Wed Aug 12, 10:21 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Wed Aug 12, 10:31 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Ira W. Snyder, (Wed Aug 12, 10:48 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Wed Aug 12, 10:59 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Anthony Liguori, (Wed Aug 12, 12:22 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Anthony Liguori, (Wed Aug 12, 12:27 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Paul E. McKenney, (Wed Aug 12, 12:58 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Wed Aug 12, 10:55 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Wed Aug 12, 11:06 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Wed Aug 12, 11:31 pm)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Thu Aug 13, 1:45 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Thu Aug 13, 6:38 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Thu Aug 13, 6:45 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Thu Aug 13, 6:48 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Thu Aug 13, 7:39 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Thu Aug 13, 7:41 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Thu Aug 13, 7:53 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Arnd Bergmann, (Thu Aug 13, 7:58 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Michael S. Tsirkin, (Thu Aug 13, 8:03 am)
Re: [PATCH 2/2] vhost_net: a kernel-level virtio server, Rusty Russell, (Thu Aug 20, 12:25 am)