|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6 |
|
| #
7fd7ad6f |
| 07-May-2025 |
Konstantin Shkolnyy <[email protected]> |
vsock/test: Fix occasional failure in SIOCOUTQ tests
These tests: "SOCK_STREAM ioctl(SIOCOUTQ) 0 unsent bytes" "SOCK_SEQPACKET ioctl(SIOCOUTQ) 0 unsent bytes" output: "Unexpected 'SIOCOUTQ'
vsock/test: Fix occasional failure in SIOCOUTQ tests
These tests: "SOCK_STREAM ioctl(SIOCOUTQ) 0 unsent bytes" "SOCK_SEQPACKET ioctl(SIOCOUTQ) 0 unsent bytes" output: "Unexpected 'SIOCOUTQ' value, expected 0, got 64 (CLIENT)".
They test that the SIOCOUTQ ioctl reports 0 unsent bytes after the data have been received by the other side. However, sometimes there is a delay in updating this "unsent bytes" counter, and the test fails even though the counter properly goes to 0 several milliseconds later.
The delay occurs in the kernel because the used buffer notification callback virtio_vsock_tx_done(), called upon receipt of the data by the other side, doesn't update the counter itself. It delegates that to a kernel thread (via vsock->tx_work). Sometimes that thread is delayed more than the test expects.
Change the test to poll SIOCOUTQ until it returns 0 or a timeout occurs.
Signed-off-by: Konstantin Shkolnyy <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Fixes: 18ee44ce97c1 ("test/vsock: add ioctl unsent bytes test") Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
|
Revision tags: v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3 |
|
| #
440c9d48 |
| 10-Feb-2025 |
Michal Luczaj <[email protected]> |
vsock/test: Add test for SO_LINGER null ptr deref
Explicitly close() a TCP_ESTABLISHED (connectible) socket with SO_LINGER enabled.
As for now, test does not verify if close() actually lingers. On
vsock/test: Add test for SO_LINGER null ptr deref
Explicitly close() a TCP_ESTABLISHED (connectible) socket with SO_LINGER enabled.
As for now, test does not verify if close() actually lingers. On an unpatched machine, may trigger a null pointer dereference.
Tested-by: Luigi Leonardi <[email protected]> Reviewed-by: Luigi Leonardi <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc2, v6.14-rc1 |
|
| #
4695f64e |
| 28-Jan-2025 |
Michal Luczaj <[email protected]> |
vsock/test: Add test for connect() retries
Deliberately fail a connect() attempt; expect error. Then verify that subsequent attempt (using the same socket) can still succeed, rather than fail outrig
vsock/test: Add test for connect() retries
Deliberately fail a connect() attempt; expect error. Then verify that subsequent attempt (using the same socket) can still succeed, rather than fail outright.
Reviewed-by: Stefano Garzarella <[email protected]> Reviewed-by: Luigi Leonardi <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
301a62df |
| 28-Jan-2025 |
Michal Luczaj <[email protected]> |
vsock/test: Add test for UAF due to socket unbinding
Fail the autobind, then trigger a transport reassign. Socket might get unbound from unbound_sockets, which then leads to a reference count underf
vsock/test: Add test for UAF due to socket unbinding
Fail the autobind, then trigger a transport reassign. Socket might get unbound from unbound_sockets, which then leads to a reference count underflow.
Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
852a00c4 |
| 28-Jan-2025 |
Michal Luczaj <[email protected]> |
vsock/test: Introduce vsock_bind()
Add a helper for socket()+bind(). Adapt callers.
Reviewed-by: Stefano Garzarella <[email protected]> Reviewed-by: Luigi Leonardi <[email protected]> Signed-of
vsock/test: Introduce vsock_bind()
Add a helper for socket()+bind(). Adapt callers.
Reviewed-by: Stefano Garzarella <[email protected]> Reviewed-by: Luigi Leonardi <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
|
Revision tags: v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4 |
|
| #
d127ac8b |
| 19-Dec-2024 |
Michal Luczaj <[email protected]> |
vsock/test: Add test for MSG_ZEROCOPY completion memory leak
Exercise the ENOMEM error path by attempting to hit net.core.optmem_max limit on send().
Test aims to create a memory leak, kmemleak sho
vsock/test: Add test for MSG_ZEROCOPY completion memory leak
Exercise the ENOMEM error path by attempting to hit net.core.optmem_max limit on send().
Test aims to create a memory leak, kmemleak should be employed.
Fixed by commit 60cf6206a1f5 ("virtio/vsock: Improve MSG_ZEROCOPY error handling").
Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
ec50efee |
| 19-Dec-2024 |
Michal Luczaj <[email protected]> |
vsock/test: Add test for sk_error_queue memory leak
Ask for MSG_ZEROCOPY completion notification, but do not recv() it. Test attempts to create a memory leak, kmemleak should be employed.
Fixed by
vsock/test: Add test for sk_error_queue memory leak
Ask for MSG_ZEROCOPY completion notification, but do not recv() it. Test attempts to create a memory leak, kmemleak should be employed.
Fixed by commit fbf7085b3ad1 ("vsock: Fix sk_error_queue memory leak").
Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
f66ef469 |
| 19-Dec-2024 |
Michal Luczaj <[email protected]> |
vsock/test: Add test for accept_queue memory leak
Attempt to enqueue a child after the queue was flushed, but before SOCK_DONE flag has been set.
Test tries to produce a memory leak, kmemleak shoul
vsock/test: Add test for accept_queue memory leak
Attempt to enqueue a child after the queue was flushed, but before SOCK_DONE flag has been set.
Test tries to produce a memory leak, kmemleak should be employed. Dealing with a race condition, test by its very nature may lead to a false negative.
Fixed by commit d7b0ff5a8667 ("virtio/vsock: Fix accept_queue memory leak").
Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
ef8bd18f |
| 19-Dec-2024 |
Michal Luczaj <[email protected]> |
vsock/test: Introduce option to select tests
Allow for selecting specific test IDs to be executed.
Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]>
vsock/test: Introduce option to select tests
Allow for selecting specific test IDs to be executed.
Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
f3af3ba1 |
| 19-Dec-2024 |
Michal Luczaj <[email protected]> |
vsock/test: Use NSEC_PER_SEC
Replace 1000000000ULL with NSEC_PER_SEC.
No functional change intended.
Reviewed-by: Luigi Leonardi <[email protected]> Reviewed-by: Stefano Garzarella <sgarzare@red
vsock/test: Use NSEC_PER_SEC
Replace 1000000000ULL with NSEC_PER_SEC.
No functional change intended.
Reviewed-by: Luigi Leonardi <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc3, v6.13-rc2 |
|
| #
86814d8f |
| 03-Dec-2024 |
Konstantin Shkolnyy <[email protected]> |
vsock/test: verify socket options after setting them
Replace setsockopt() calls with calls to functions that follow setsockopt() with getsockopt() and check that the returned value and its size are
vsock/test: verify socket options after setting them
Replace setsockopt() calls with calls to functions that follow setsockopt() with getsockopt() and check that the returned value and its size are the same as have been set. (Except in vsock_perf.)
Signed-off-by: Konstantin Shkolnyy <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
show more ...
|
| #
3f36ee29 |
| 03-Dec-2024 |
Konstantin Shkolnyy <[email protected]> |
vsock/test: fix parameter types in SO_VM_SOCKETS_* calls
Change parameters of SO_VM_SOCKETS_* to unsigned long long as documented in the vm_sockets.h, because the corresponding kernel code requires
vsock/test: fix parameter types in SO_VM_SOCKETS_* calls
Change parameters of SO_VM_SOCKETS_* to unsigned long long as documented in the vm_sockets.h, because the corresponding kernel code requires them to be at least 64-bit, no matter what architecture. Otherwise they are too small on 32-bit machines.
Fixes: 5c338112e48a ("test/vsock: rework message bounds test") Fixes: 685a21c314a8 ("test/vsock: add big message test") Fixes: 542e893fbadc ("vsock/test: two tests to check credit update logic") Fixes: 8abbffd27ced ("test/vsock: vsock_perf utility") Signed-off-by: Konstantin Shkolnyy <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
show more ...
|
| #
7ce1c092 |
| 03-Dec-2024 |
Konstantin Shkolnyy <[email protected]> |
vsock/test: fix failures due to wrong SO_RCVLOWAT parameter
This happens on 64-bit big-endian machines. SO_RCVLOWAT requires an int parameter. However, instead of int, the test uses unsigned long in
vsock/test: fix failures due to wrong SO_RCVLOWAT parameter
This happens on 64-bit big-endian machines. SO_RCVLOWAT requires an int parameter. However, instead of int, the test uses unsigned long in one place and size_t in another. Both are 8 bytes long on 64-bit machines. The kernel, having received the 8 bytes, doesn't test for the exact size of the parameter, it only cares that it's >= sizeof(int), and casts the 4 lower-addressed bytes to an int, which, on a big-endian machine, contains 0. 0 doesn't trigger an error, SO_RCVLOWAT returns with success and the socket stays with the default SO_RCVLOWAT = 1, which results in vsock_test failures, while vsock_perf doesn't even notice that it's failed to change it.
Fixes: b1346338fbae ("vsock_test: POLLIN + SO_RCVLOWAT test") Fixes: 542e893fbadc ("vsock/test: two tests to check credit update logic") Fixes: 8abbffd27ced ("test/vsock: vsock_perf utility") Signed-off-by: Konstantin Shkolnyy <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2 |
|
| #
18ee44ce |
| 30-Jul-2024 |
Luigi Leonardi <[email protected]> |
test/vsock: add ioctl unsent bytes test
Introduce two tests, one for SOCK_STREAM and one for SOCK_SEQPACKET, which use SIOCOUTQ ioctl to check that the number of unsent bytes is zero after deliverin
test/vsock: add ioctl unsent bytes test
Introduce two tests, one for SOCK_STREAM and one for SOCK_SEQPACKET, which use SIOCOUTQ ioctl to check that the number of unsent bytes is zero after delivering a packet.
vsock_connect and vsock_accept are no longer static: this is to create more generic tests, allowing code to be reused for SEQPACKET and STREAM.
Signed-off-by: Luigi Leonardi <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2 |
|
| #
e18c7092 |
| 23-Jan-2024 |
Arseniy Krasnov <[email protected]> |
vsock/test: add '--peer-port' input argument
Implement port for given CID as input argument instead of using hardcoded value '1234'. This allows to run different test instances on a single CID. Port
vsock/test: add '--peer-port' input argument
Implement port for given CID as input argument instead of using hardcoded value '1234'. This allows to run different test instances on a single CID. Port argument is not required parameter and if it is not set, then default value will be '1234' - thus we preserve previous behaviour.
Signed-off-by: Arseniy Krasnov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7, v6.7-rc6 |
|
| #
542e893f |
| 14-Dec-2023 |
Arseniy Krasnov <[email protected]> |
vsock/test: two tests to check credit update logic
Both tests are almost same, only differs in two 'if' conditions, so implemented in a single function. Tests check, that credit update message is se
vsock/test: two tests to check credit update logic
Both tests are almost same, only differs in two 'if' conditions, so implemented in a single function. Tests check, that credit update message is sent:
1) During setting SO_RCVLOWAT value of the socket. 2) When number of 'rx_bytes' become smaller than SO_RCVLOWAT value.
Signed-off-by: Arseniy Krasnov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc5, v6.7-rc4, v6.7-rc3 |
|
| #
f0863888 |
| 21-Nov-2023 |
Arseniy Krasnov <[email protected]> |
vsock/test: fix SEQPACKET message bounds test
Tune message length calculation to make this test work on machines where 'getpagesize()' returns >32KB. Now maximum message length is not hardcoded (on
vsock/test: fix SEQPACKET message bounds test
Tune message length calculation to make this test work on machines where 'getpagesize()' returns >32KB. Now maximum message length is not hardcoded (on machines above it was smaller than 'getpagesize()' return value, thus we get negative value and test fails), but calculated at runtime and always bigger than 'getpagesize()' result. Reproduced on aarch64 with 64KB page size.
Fixes: 5c338112e48a ("test/vsock: rework message bounds test") Signed-off-by: Arseniy Krasnov <[email protected]> Reported-by: Bogdan Marcynkov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc2, v6.7-rc1 |
|
| #
d80f63f6 |
| 03-Nov-2023 |
Filippo Storniolo <[email protected]> |
test/vsock: add dobule bind connect test
This add bind connect test which creates a listening server socket and tries to connect a client with a bound local port to it twice.
Co-developed-by: Luigi
test/vsock: add dobule bind connect test
This add bind connect test which creates a listening server socket and tries to connect a client with a bound local port to it twice.
Co-developed-by: Luigi Leonardi <[email protected]> Signed-off-by: Luigi Leonardi <[email protected]> Signed-off-by: Filippo Storniolo <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
|
Revision tags: v6.6, v6.6-rc7, v6.6-rc6 |
|
| #
bc36442e |
| 10-Oct-2023 |
Arseniy Krasnov <[email protected]> |
test/vsock: MSG_ZEROCOPY flag tests
This adds three tests for MSG_ZEROCOPY feature: 1) SOCK_STREAM tx with different buffers. 2) SOCK_SEQPACKET tx with different buffers. 3) SOCK_STREAM test to read
test/vsock: MSG_ZEROCOPY flag tests
This adds three tests for MSG_ZEROCOPY feature: 1) SOCK_STREAM tx with different buffers. 2) SOCK_SEQPACKET tx with different buffers. 3) SOCK_STREAM test to read empty error queue of the socket.
Patch also works as preparation for the next patches for tools in this patchset: vsock_perf and vsock_uring_test: 1) Adds several new functions to util.c - they will be also used by vsock_uring_test. 2) Adds two new functions for MSG_ZEROCOPY handling to a new source file - such source will be shared between vsock_test, vsock_perf and vsock_uring_test, thus avoiding code copy-pasting.
Signed-off-by: Arseniy Krasnov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2 |
|
| #
bc7bea45 |
| 15-Sep-2023 |
Stefano Garzarella <[email protected]> |
vsock/test: track bytes in sk_buff merging test for SOCK_SEQPACKET
The test was a bit complicated to read. Added variables to keep track of the bytes read and to be read in each step. Also some comm
vsock/test: track bytes in sk_buff merging test for SOCK_SEQPACKET
The test was a bit complicated to read. Added variables to keep track of the bytes read and to be read in each step. Also some comments.
The test is unchanged.
Signed-off-by: Stefano Garzarella <[email protected]> Reviewed-by: Arseniy Krasnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
| #
2a8548a9 |
| 15-Sep-2023 |
Stefano Garzarella <[email protected]> |
vsock/test: use send_buf() in vsock_test.c
We have a very common pattern used in vsock_test that we can now replace with the new send_buf().
This allows us to reuse the code we already had to check
vsock/test: use send_buf() in vsock_test.c
We have a very common pattern used in vsock_test that we can now replace with the new send_buf().
This allows us to reuse the code we already had to check the actual return value and wait for all the bytes to be sent with an appropriate timeout.
Signed-off-by: Stefano Garzarella <[email protected]> Reviewed-by: Arseniy Krasnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
| #
a0bcb835 |
| 15-Sep-2023 |
Stefano Garzarella <[email protected]> |
vsock/test: use recv_buf() in vsock_test.c
We have a very common pattern used in vsock_test that we can now replace with the new recv_buf().
This allows us to reuse the code we already had to check
vsock/test: use recv_buf() in vsock_test.c
We have a very common pattern used in vsock_test that we can now replace with the new recv_buf().
This allows us to reuse the code we already had to check the actual return value and wait for all bytes to be received with an appropriate timeout.
Signed-off-by: Stefano Garzarella <[email protected]> Reviewed-by: Arseniy Krasnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
| #
b698bd97 |
| 11-Sep-2023 |
Arseniy Krasnov <[email protected]> |
test/vsock: shutdowned socket test
This adds two tests for 'shutdown()' call. It checks that SIGPIPE is sent when MSG_NOSIGNAL is not set and vice versa. Both flags SHUT_WR and SHUT_RD are tested.
test/vsock: shutdowned socket test
This adds two tests for 'shutdown()' call. It checks that SIGPIPE is sent when MSG_NOSIGNAL is not set and vice versa. Both flags SHUT_WR and SHUT_RD are tested.
Signed-off-by: Arseniy Krasnov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc1, v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4 |
|
| #
8a0697f2 |
| 25-Jul-2023 |
Arseniy Krasnov <[email protected]> |
vsock/test: MSG_PEEK test for SOCK_SEQPACKET
This adds MSG_PEEK test for SOCK_SEQPACKET. It works in the same way as SOCK_STREAM test, except it also tests MSG_TRUNC flag.
Signed-off-by: Arseniy Kr
vsock/test: MSG_PEEK test for SOCK_SEQPACKET
This adds MSG_PEEK test for SOCK_SEQPACKET. It works in the same way as SOCK_STREAM test, except it also tests MSG_TRUNC flag.
Signed-off-by: Arseniy Krasnov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
show more ...
|
| #
587ed79f |
| 25-Jul-2023 |
Arseniy Krasnov <[email protected]> |
vsock/test: rework MSG_PEEK test for SOCK_STREAM
This new version makes test more complicated by adding empty read, partial read and data comparisons between MSG_PEEK and normal reads.
Signed-off-b
vsock/test: rework MSG_PEEK test for SOCK_STREAM
This new version makes test more complicated by adding empty read, partial read and data comparisons between MSG_PEEK and normal reads.
Signed-off-by: Arseniy Krasnov <[email protected]> Reviewed-by: Stefano Garzarella <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
show more ...
|