Hello Stefano, thanks for review! Since both patches are R-b, i can wait for a few days, then send this as 'net-next'? Thanks, Arseniy On 22.03.2023 21:34, Arseniy Krasnov wrote: > This adds small optimization for tx path: instead of allocating single > skbuff on every call to transport, allocate multiple skbuff's until > credit space allows, thus trying to send as much as possible data without > return to af_vsock.c. > > Also this patchset includes second patch which adds check and return from > 'virtio_transport_get_credit()' and 'virtio_transport_put_credit()' when > these functions are called with 0 argument. This is needed, because zero > argument makes both functions to behave as no-effect, but both of them > always tries to acquire spinlock. Moreover, first patch always calls > function 'virtio_transport_put_credit()' with zero argument in case of > successful packet transmission. > > Link to v1: > https://lore.kernel.org/netdev/2c52aa26-8181-d37a-bccd-a86bd3cbc6e1@xxxxxxxxxxxxxx/ > Link to v2: > https://lore.kernel.org/netdev/ea5725eb-6cb5-cf15-2938-34e335a442fa@xxxxxxxxxxxxxx/ > Link to v3: > https://lore.kernel.org/netdev/f33ef593-982e-2b3f-0986-6d537a3aaf08@xxxxxxxxxxxxxx/ > Link to v4: > https://lore.kernel.org/netdev/0e0c1421-7cdc-2582-b120-cad6f42824bb@xxxxxxxxxxxxxx/ > > Changelog: > v1 -> v2: > - If sent something, return number of bytes sent (even in > case of error). Return error only if failed to sent first > skbuff. > > v2 -> v3: > - Handle case when transport callback returns unexpected value which > is not equal to 'skb->len'. Break loop. > - Don't check for zero value of 'rest_len' before calling > 'virtio_transport_put_credit()'. Decided to add this check directly > to 'virtio_transport_put_credit()' in separate patch. > > v3 -> v4: > - Use WARN_ONCE() to handle case when transport callback returns > unexpected value. > - Remove useless 'ret = -EFAULT;' assignment for case above. > > v4 -> v5: > - Remove extra 'ret' initialization. > - Remove empty extra line before 'if (ret < 0)'. > - Add R-b tag for the first patch. > - Add second patch, thus creating patchset of 2 patches. > > Arseniy Krasnov (2): > virtio/vsock: allocate multiple skbuffs on tx > virtio/vsock: check argument to avoid no effect call > > net/vmw_vsock/virtio_transport_common.c | 63 +++++++++++++++++++------ > 1 file changed, 49 insertions(+), 14 deletions(-) >