RE: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net.
-Original Message- From: linux-kernel-ow...@vger.kernel.org [mailto:linux-kernel-ow...@vger.kernel.org] On Behalf Of Xin, Xiaohui Sent: Monday, September 27, 2010 8:45 AM To: Michael S. Tsirkin Cc: net...@vger.kernel.org; kvm@vger.kernel.org; linux-ker...@vger.kernel.org; mi...@elte.hu; da...@davemloft.net; herb...@gondor.hengli.com.au; jd...@linux.intel.com Subject: RE: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net. From: Michael S. Tsirkin [mailto:m...@redhat.com] Sent: Monday, September 27, 2010 1:02 AM To: Xin, Xiaohui Cc: net...@vger.kernel.org; kvm@vger.kernel.org; linux-ker...@vger.kernel.org; mi...@elte.hu; da...@davemloft.net; herb...@gondor.hengli.com.au; jd...@linux.intel.com Subject: Re: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net. On Sat, Sep 25, 2010 at 12:27:18PM +0800, xiaohui@intel.com wrote: We provide an zero-copy method which driver side may get external buffers to DMA. Here external means driver don't use kernel space to allocate skb buffers. Currently the external buffer can be from guest virtio-net driver. The idea is simple, just to pin the guest VM user space and then let host NIC driver has the chance to directly DMA to it. The patches are based on vhost-net backend driver. We add a device which provides proto_ops as sendmsg/recvmsg to vhost-net to send/recv directly to/from the NIC driver. KVM guest who use the vhost-net backend may bind any ethX interface in the host side to get copyless data transfer thru guest virtio-net frontend. patch 01-10:net core and kernel changes. patch 11-13:new device as interface to mantpulate external buffers. patch 14: for vhost-net. patch 15: An example on modifying NIC driver to using napi_gro_frags(). patch 16: An example how to get guest buffers based on driver who using napi_gro_frags(). patch 17: It's a patch to address comments from Michael S. Thirkin to add 2 new ioctls in mp device. We split it out here to make easier reiewer. I commented on how to avoid mm semaphore on data path separately, and since you didn't have time to review that yet, I won't repeat that here. I think I did avoid that in data path to use mm semaphore. I stored the value in mp structures and check with that. Hi Michael, Did you think I have addressed your comments about to avoid mm semaphore on data path or not? I stored the value in mp structures and don't use mmap_semphore. Or you still have some concerns with it? At this point what are the plans on macvtap integration? You indicated this is the interface you intend to use longterm. I'm now working on that. I'm now trying to export some functions from mp device, and let macvtap to use them for rx zero-copy. Thanks Xiaohui -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net.
On Sat, Sep 25, 2010 at 12:27:18PM +0800, xiaohui@intel.com wrote: We provide an zero-copy method which driver side may get external buffers to DMA. Here external means driver don't use kernel space to allocate skb buffers. Currently the external buffer can be from guest virtio-net driver. The idea is simple, just to pin the guest VM user space and then let host NIC driver has the chance to directly DMA to it. The patches are based on vhost-net backend driver. We add a device which provides proto_ops as sendmsg/recvmsg to vhost-net to send/recv directly to/from the NIC driver. KVM guest who use the vhost-net backend may bind any ethX interface in the host side to get copyless data transfer thru guest virtio-net frontend. patch 01-10: net core and kernel changes. patch 11-13: new device as interface to mantpulate external buffers. patch 14: for vhost-net. patch 15: An example on modifying NIC driver to using napi_gro_frags(). patch 16: An example how to get guest buffers based on driver who using napi_gro_frags(). patch 17: It's a patch to address comments from Michael S. Thirkin to add 2 new ioctls in mp device. We split it out here to make easier reiewer. I commented on how to avoid mm semaphore on data path separately, and since you didn't have time to review that yet, I won't repeat that here. At this point what are the plans on macvtap integration? You indicated this is the interface you intend to use longterm. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net.
From: Michael S. Tsirkin [mailto:m...@redhat.com] Sent: Monday, September 27, 2010 1:02 AM To: Xin, Xiaohui Cc: net...@vger.kernel.org; kvm@vger.kernel.org; linux-ker...@vger.kernel.org; mi...@elte.hu; da...@davemloft.net; herb...@gondor.hengli.com.au; jd...@linux.intel.com Subject: Re: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net. On Sat, Sep 25, 2010 at 12:27:18PM +0800, xiaohui@intel.com wrote: We provide an zero-copy method which driver side may get external buffers to DMA. Here external means driver don't use kernel space to allocate skb buffers. Currently the external buffer can be from guest virtio-net driver. The idea is simple, just to pin the guest VM user space and then let host NIC driver has the chance to directly DMA to it. The patches are based on vhost-net backend driver. We add a device which provides proto_ops as sendmsg/recvmsg to vhost-net to send/recv directly to/from the NIC driver. KVM guest who use the vhost-net backend may bind any ethX interface in the host side to get copyless data transfer thru guest virtio-net frontend. patch 01-10: net core and kernel changes. patch 11-13: new device as interface to mantpulate external buffers. patch 14:for vhost-net. patch 15:An example on modifying NIC driver to using napi_gro_frags(). patch 16:An example how to get guest buffers based on driver who using napi_gro_frags(). patch 17:It's a patch to address comments from Michael S. Thirkin to add 2 new ioctls in mp device. We split it out here to make easier reiewer. I commented on how to avoid mm semaphore on data path separately, and since you didn't have time to review that yet, I won't repeat that here. I think I did avoid that in data path to use mm semaphore. I stored the value in mp structures and check with that. At this point what are the plans on macvtap integration? You indicated this is the interface you intend to use longterm. I'm now working on that. Thanks Xiaohui -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html