Re: [PATCH net-next v4 0/4] vsock/virtio/vhost: MSG_ZEROCOPY preparations

From: Arseniy Krasnov
Date: Fri Jul 28 2023 - 04:07:03 EST




On 28.07.2023 08:45, Michael S. Tsirkin wrote:
> On Fri, Jul 28, 2023 at 01:26:23AM +0300, Arseniy Krasnov wrote:
>> Hello,
>>
>> this patchset is first of three parts of another big patchset for
>> MSG_ZEROCOPY flag support:
>> https://lore.kernel.org/netdev/20230701063947.3422088-1-AVKrasnov@xxxxxxxxxxxxxx/
>
> overall looks good. Two points I'd like to see addressed:

Thanks!

> - what's the performance with all these changes - still same?

Yes, I perform quick tests and seems result are same. This is because last
implemented logic when I compare size of payload against 'num_max' is
for "emergency" case and not triggered in default environment. Anyway, I'll
perform retest at least in nested guest case.

> - most systems have a copybreak scheme where buffers
> smaller than a given size are copied directly.
> This will address regression you see with small buffers -
> but need to find that value. we know it's between 4k and 32k :)

I see, You suggest to find this value and add this check for decision to
use zerocopy or copy ?

Thanks, Arseniy

>
>
>> During review of this series, Stefano Garzarella <sgarzare@xxxxxxxxxx>
>> suggested to split it for three parts to simplify review and merging:
>>
>> 1) virtio and vhost updates (for fragged skbs) <--- this patchset
>> 2) AF_VSOCK updates (allows to enable MSG_ZEROCOPY mode and read
>> tx completions) and update for Documentation/.
>> 3) Updates for tests and utils.
>>
>> This series enables handling of fragged skbs in virtio and vhost parts.
>> Newly logic won't be triggered, because SO_ZEROCOPY options is still
>> impossible to enable at this moment (next bunch of patches from big
>> set above will enable it).
>>
>> I've included changelog to some patches anyway, because there were some
>> comments during review of last big patchset from the link above.
>>
>> Head for this patchset is 9d0cd5d25f7d45bce01bbb3193b54ac24b3a60f3
>>
>> Link to v1:
>> https://lore.kernel.org/netdev/20230717210051.856388-1-AVKrasnov@xxxxxxxxxxxxxx/
>> Link to v2:
>> https://lore.kernel.org/netdev/20230718180237.3248179-1-AVKrasnov@xxxxxxxxxxxxxx/
>> Link to v3:
>> https://lore.kernel.org/netdev/20230720214245.457298-1-AVKrasnov@xxxxxxxxxxxxxx/
>>
>> Changelog:
>> * Patchset rebased and tested on new HEAD of net-next (see hash above).
>> * See per-patch changelog after ---.
>>
>> Arseniy Krasnov (4):
>> vsock/virtio/vhost: read data from non-linear skb
>> vsock/virtio: support to send non-linear skb
>> vsock/virtio: non-linear skb handling for tap
>> vsock/virtio: MSG_ZEROCOPY flag support
>>
>> drivers/vhost/vsock.c | 14 +-
>> include/linux/virtio_vsock.h | 6 +
>> net/vmw_vsock/virtio_transport.c | 79 +++++-
>> net/vmw_vsock/virtio_transport_common.c | 312 ++++++++++++++++++------
>> 4 files changed, 330 insertions(+), 81 deletions(-)
>>
>> --
>> 2.25.1
>