This patchset introduces SIOCINQ ioctl support for vsock, indicating the length of unread bytes.
Similar with SIOCOUTQ ioctl, the information is transport-dependent. The first patch introduces a new callback, unread_bytes, in vsock transport, and adds ioctl support in AF_VSOCK. The second patch implements the SIOCINQ ioctl for all virtio-based transports. The last one adds two test cases to check the functionality. The changes have been tested, and the results are as expected. Signed-off-by: Xuewei Niu <niuxuewei....@antgroup.com> -- v1->v2: https://lore.kernel.org/lkml/20250519070649.3063874-1-niuxuewei....@antgroup.com/ - Use net-next tree. - Reuse `rx_bytes` to count unread bytes. - Wrap ioctl syscall with an int pointer argument to implement a retry mechanism. Xuewei Niu (3): vsock: Add support for SIOCINQ ioctl vsock/virtio: Add SIOCINQ support for all virtio based transports test/vsock: Add ioctl SIOCINQ tests drivers/vhost/vsock.c | 1 + include/linux/virtio_vsock.h | 1 + include/net/af_vsock.h | 2 + net/vmw_vsock/af_vsock.c | 22 +++++++ net/vmw_vsock/virtio_transport.c | 1 + net/vmw_vsock/virtio_transport_common.c | 13 ++++ net/vmw_vsock/vsock_loopback.c | 1 + tools/testing/vsock/util.c | 36 ++++++++--- tools/testing/vsock/util.h | 2 + tools/testing/vsock/vsock_test.c | 83 ++++++++++++++++++++++++- 10 files changed, 152 insertions(+), 10 deletions(-) -- 2.34.1