On 28.07.2023 11:00, Arseniy Krasnov wrote: > > > 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. "default environment" is vanilla Qemu where queue size is 128 elements. To test this logic i rebuild Qemu with for example queue of 8 elements. Thanks, Arseniy > >> - 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 >>