On 12/23/25 11:27, Stefano Garzarella wrote: > On Tue, Dec 23, 2025 at 10:15:29AM +0100, Michal Luczaj wrote: >> Make sure setsockopt(SOL_SOCKET, SO_ZEROCOPY) on an accept()ed socket is >> handled by vsock's implementation. >> >> Signed-off-by: Michal Luczaj <[email protected]> >> --- >> tools/testing/vsock/vsock_test.c | 33 +++++++++++++++++++++++++++++++++ >> 1 file changed, 33 insertions(+) >> >> diff --git a/tools/testing/vsock/vsock_test.c >> b/tools/testing/vsock/vsock_test.c >> index 9e1250790f33..8ec8f0844e22 100644 >> --- a/tools/testing/vsock/vsock_test.c >> +++ b/tools/testing/vsock/vsock_test.c >> @@ -2192,6 +2192,34 @@ static void test_stream_nolinger_server(const struct >> test_opts *opts) >> close(fd); >> } >> >> +static void test_stream_accepted_setsockopt_client(const struct test_opts >> *opts) >> +{ >> + int fd; >> + >> + fd = vsock_stream_connect(opts->peer_cid, opts->peer_port); >> + if (fd < 0) { >> + perror("connect"); >> + exit(EXIT_FAILURE); >> + } >> + >> + vsock_wait_remote_close(fd); >> + close(fd); >> +} >> + >> +static void test_stream_accepted_setsockopt_server(const struct test_opts >> *opts) >> +{ >> + int fd; >> + >> + fd = vsock_stream_accept(VMADDR_CID_ANY, opts->peer_port, NULL); >> + if (fd < 0) { >> + perror("accept"); >> + exit(EXIT_FAILURE); >> + } >> + >> + enable_so_zerocopy_check(fd); > > This test is passing on my env also without the patch applied. > > Is that expected?
Oh, no, definitely not. It fails for me: 36 - SOCK_STREAM accept()ed socket custom setsockopt()...36 - SOCK_STREAM accept()ed socket custom setsockopt()...setsockopt err: Operation not supported (95) setsockopt SO_ZEROCOPY val 1 I have no idea what's going on :)

