RE: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net.

From: Xin, Xiaohui
Date: Mon Sep 27 2010 - 21:26:17 EST


>-----Original Message-----
>From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel-owner@xxxxxxxxxxxxxxx] On
>Behalf Of Xin, Xiaohui
>Sent: Monday, September 27, 2010 8:45 AM
>To: Michael S. Tsirkin
>Cc: netdev@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>mingo@xxxxxxx; davem@xxxxxxxxxxxxx; herbert@xxxxxxxxxxxxxxxxxxxx;
>jdike@xxxxxxxxxxxxxxx
>Subject: RE: [PATCH v11 00/17] Provide a zero-copy method on KVM virtio-net.
>
>>From: Michael S. Tsirkin [mailto:mst@xxxxxxxxxx]
>>Sent: Monday, September 27, 2010 1:02 AM
>>To: Xin, Xiaohui
>>Cc: netdev@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>>mingo@xxxxxxx; davem@xxxxxxxxxxxxx; herbert@xxxxxxxxxxxxxxxxxxxx;
>>jdike@xxxxxxxxxxxxxxx
>>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.xin@xxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
>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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/