Re: [RFC PATCH v9 19/19] af_vsock: serialize writes to shared socket

From: Stefano Garzarella
Date: Thu May 13 2021 - 11:41:41 EST


On Thu, May 13, 2021 at 05:48:19PM +0300, Arseny Krasnov wrote:

On 13.05.2021 17:46, Stefano Garzarella wrote:
On Thu, May 13, 2021 at 04:01:50PM +0200, Stefano Garzarella wrote:
On Sat, May 08, 2021 at 07:37:35PM +0300, Arseny Krasnov wrote:
This add logic, that serializes write access to single socket
by multiple threads. It is implemented be adding field with TID
of current writer. When writer tries to send something, it checks
that field is -1(free), else it sleep in the same way as waiting
for free space at peers' side.

Signed-off-by: Arseny Krasnov <arseny.krasnov@xxxxxxxxxxxxx>
---
include/net/af_vsock.h | 1 +
net/vmw_vsock/af_vsock.c | 10 +++++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
I think you forgot to move this patch at the beginning of the series.
It's important because in this way we can backport to stable branches
easily.

About the implementation, can't we just add a mutex that we hold until
we have sent all the payload?
Re-thinking, I guess we can't because we have the timeout to deal
with...
Yes, i forgot about why i've implemented it using 'tid_owner' :)

It is not clear to me if we need to do this also for stream.

I think will be better to follow af_inet/af_unix, but I need to check their implementation.

Thanks,
Stefano