net/vmw_vsock/af_vsock.c | 22 +++++++++++ net/vmw_vsock/hyperv_transport.c | 17 +++++++-- tools/testing/vsock/util.c | 30 ++++++++++----- tools/testing/vsock/util.h | 1 + tools/testing/vsock/vsock_test.c | 79 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 137 insertions(+), 12 deletions(-)
Introduce SIOCINQ ioctl support for vsock, indicating the length of unread
bytes.
Similar with SIOCOUTQ ioctl, the information is transport-dependent.
The first patch adds SIOCINQ ioctl support in AF_VSOCK.
Thanks to @dexuan, the second patch is to fix the issue where hyper-v
`hvs_stream_has_data()` doesn't return the readable bytes.
The third patch wraps the ioctl into `ioctl_int()`, which implements a
retry mechanism to prevent immediate failure.
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.nxw@antgroup.com>
--
v1->v2:
https://lore.kernel.org/lkml/20250519070649.3063874-1-niuxuewei.nxw@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.
v2->v3:
https://lore.kernel.org/netdev/20250613031152.1076725-1-niuxuewei.nxw@antgroup.com/
- Update commit messages following the guidelines
- Remove `unread_bytes` callback and reuse `vsock_stream_has_data()`
- Move the tests to the end of array
- Split the refactoring patch
- Include <sys/ioctl.h> in the util.c
v3->v4:
https://lore.kernel.org/netdev/20250617045347.1233128-1-niuxuewei.nxw@antgroup.com/
- Hyper-v `hvs_stream_has_data()` returns the readable bytes
- Skip testing the null value for `actual` (int pointer)
- Rename `ioctl_int()` to `vsock_ioctl_int()`
- Fix a typo and a format issue in comments
- Remove the `RECEIVED` barrier.
- The return type of `vsock_ioctl_int()` has been changed to bool
v4->v5:
https://lore.kernel.org/netdev/20250630075727.210462-1-niuxuewei.nxw@antgroup.com/
- Put the hyper-v fix before the SIOCINQ ioctl implementation.
- Remove my SOB from the hyper-v fix patch.
- Move the `need_refill` initialization into the `case 1` block.
- Remove the `actual` argument from `vsock_ioctl_int()`.
- Replace `TIOCINQ` with `SIOCINQ`.
---
Xuewei Niu (4):
hv_sock: Return the readable bytes in hvs_stream_has_data()
vsock: Add support for SIOCINQ ioctl
test/vsock: Add retry mechanism to ioctl wrapper
test/vsock: Add ioctl SIOCINQ tests
net/vmw_vsock/af_vsock.c | 22 +++++++++++
net/vmw_vsock/hyperv_transport.c | 17 +++++++--
tools/testing/vsock/util.c | 30 ++++++++++-----
tools/testing/vsock/util.h | 1 +
tools/testing/vsock/vsock_test.c | 79 ++++++++++++++++++++++++++++++++++++++++
5 files changed, 137 insertions(+), 12 deletions(-)
---
base-commit: 5f712c3877f99d5b5e4d011955c6467ae0e535a6
change-id: 20250703-siocinq-9e2907939806
Best regards,
--
Xuewei Niu <niuxuewei.nxw@antgroup.com>
On Sun, Jul 06, 2025 at 12:36:28PM +0800, Xuewei Niu wrote:
>Introduce SIOCINQ ioctl support for vsock, indicating the length of unread
>bytes.
>
>Similar with SIOCOUTQ ioctl, the information is transport-dependent.
>
>The first patch adds SIOCINQ ioctl support in AF_VSOCK.
>
>Thanks to @dexuan, the second patch is to fix the issue where hyper-v
>`hvs_stream_has_data()` doesn't return the readable bytes.
>
>The third patch wraps the ioctl into `ioctl_int()`, which implements a
>retry mechanism to prevent immediate failure.
>
>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.nxw@antgroup.com>
>
>--
>
>v1->v2:
>https://lore.kernel.org/lkml/20250519070649.3063874-1-niuxuewei.nxw@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.
>
>v2->v3:
>https://lore.kernel.org/netdev/20250613031152.1076725-1-niuxuewei.nxw@antgroup.com/
>- Update commit messages following the guidelines
>- Remove `unread_bytes` callback and reuse `vsock_stream_has_data()`
>- Move the tests to the end of array
>- Split the refactoring patch
>- Include <sys/ioctl.h> in the util.c
>
>v3->v4:
>https://lore.kernel.org/netdev/20250617045347.1233128-1-niuxuewei.nxw@antgroup.com/
>- Hyper-v `hvs_stream_has_data()` returns the readable bytes
>- Skip testing the null value for `actual` (int pointer)
>- Rename `ioctl_int()` to `vsock_ioctl_int()`
>- Fix a typo and a format issue in comments
>- Remove the `RECEIVED` barrier.
>- The return type of `vsock_ioctl_int()` has been changed to bool
>
>v4->v5:
>https://lore.kernel.org/netdev/20250630075727.210462-1-niuxuewei.nxw@antgroup.com/
>- Put the hyper-v fix before the SIOCINQ ioctl implementation.
>- Remove my SOB from the hyper-v fix patch.
Has I mentioned, that was not the issue, but the wrong Author.
There are also other issue, not sure how you're sending them, but I
guess there are some issues with you `git format-patch` configuration:
$ ./scripts/checkpatch.pl -g net-next..HEAD --codespell
-----------------------------------------------------------------------------------
Commit ed36075e04ec ("hv_sock: Return the readable bytes in hvs_stream_has_data()")
-----------------------------------------------------------------------------------
WARNING: 'multpile' may be misspelled - perhaps 'multiple'?
#23:
Note: there may be multpile incoming hv_sock packets pending in the
^^^^^^^^
ERROR: Missing Signed-off-by: line by nominal patch author 'Xuewei Niu <niuxuewei97@gmail.com>'
total: 1 errors, 1 warnings, 0 checks, 29 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
Commit ed36075e04ec ("hv_sock: Return the readable bytes in hvs_stream_has_data()") has style problems, please review.
------------------------------------------------------------
Commit 4e5c39e373fa ("vsock: Add support for SIOCINQ ioctl")
------------------------------------------------------------
WARNING: From:/Signed-off-by: email address mismatch: 'From: Xuewei Niu <niuxuewei97@gmail.com>' != 'Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>'
total: 0 errors, 1 warnings, 0 checks, 28 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
Commit 4e5c39e373fa ("vsock: Add support for SIOCINQ ioctl") has style problems, please review.
------------------------------------------------------------------------
Commit 3eb323b2d9f4 ("test/vsock: Add retry mechanism to ioctl wrapper")
------------------------------------------------------------------------
WARNING: From:/Signed-off-by: email address mismatch: 'From: Xuewei Niu <niuxuewei97@gmail.com>' != 'Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>'
total: 0 errors, 1 warnings, 62 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
Commit 3eb323b2d9f4 ("test/vsock: Add retry mechanism to ioctl wrapper") has style problems, please review.
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
>- Move the `need_refill` initialization into the `case 1` block.
>- Remove the `actual` argument from `vsock_ioctl_int()`.
>- Replace `TIOCINQ` with `SIOCINQ`.
>
>---
>Xuewei Niu (4):
> hv_sock: Return the readable bytes in hvs_stream_has_data()
> vsock: Add support for SIOCINQ ioctl
> test/vsock: Add retry mechanism to ioctl wrapper
> test/vsock: Add ioctl SIOCINQ tests
>
> net/vmw_vsock/af_vsock.c | 22 +++++++++++
> net/vmw_vsock/hyperv_transport.c | 17 +++++++--
> tools/testing/vsock/util.c | 30 ++++++++++-----
> tools/testing/vsock/util.h | 1 +
> tools/testing/vsock/vsock_test.c | 79 ++++++++++++++++++++++++++++++++++++++++
> 5 files changed, 137 insertions(+), 12 deletions(-)
>---
>base-commit: 5f712c3877f99d5b5e4d011955c6467ae0e535a6
>change-id: 20250703-siocinq-9e2907939806
>
>Best regards,
>--
>Xuewei Niu <niuxuewei.nxw@antgroup.com>
>
On 2025/7/7 21:44, Stefano Garzarella wrote:
> On Sun, Jul 06, 2025 at 12:36:28PM +0800, Xuewei Niu wrote:
>> Introduce SIOCINQ ioctl support for vsock, indicating the length of unread
>> bytes.
>>
>> Similar with SIOCOUTQ ioctl, the information is transport-dependent.
>>
>> The first patch adds SIOCINQ ioctl support in AF_VSOCK.
>>
>> Thanks to @dexuan, the second patch is to fix the issue where hyper-v
>> `hvs_stream_has_data()` doesn't return the readable bytes.
>>
>> The third patch wraps the ioctl into `ioctl_int()`, which implements a
>> retry mechanism to prevent immediate failure.
>>
>> 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.nxw@antgroup.com>
>>
>> --
>>
>> v1->v2:
>> https://lore.kernel.org/lkml/20250519070649.3063874-1-niuxuewei.nxw@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.
>>
>> v2->v3:
>> https://lore.kernel.org/netdev/20250613031152.1076725-1-niuxuewei.nxw@antgroup.com/
>> - Update commit messages following the guidelines
>> - Remove `unread_bytes` callback and reuse `vsock_stream_has_data()`
>> - Move the tests to the end of array
>> - Split the refactoring patch
>> - Include <sys/ioctl.h> in the util.c
>>
>> v3->v4:
>> https://lore.kernel.org/netdev/20250617045347.1233128-1-niuxuewei.nxw@antgroup.com/
>> - Hyper-v `hvs_stream_has_data()` returns the readable bytes
>> - Skip testing the null value for `actual` (int pointer)
>> - Rename `ioctl_int()` to `vsock_ioctl_int()`
>> - Fix a typo and a format issue in comments
>> - Remove the `RECEIVED` barrier.
>> - The return type of `vsock_ioctl_int()` has been changed to bool
>>
>> v4->v5:
>> https://lore.kernel.org/netdev/20250630075727.210462-1-niuxuewei.nxw@antgroup.com/
>> - Put the hyper-v fix before the SIOCINQ ioctl implementation.
>> - Remove my SOB from the hyper-v fix patch.
>
> Has I mentioned, that was not the issue, but the wrong Author.
I see it now. I'll update the author in v6.
> There are also other issue, not sure how you're sending them, but I guess there are some issues with you `git format-patch` configuration:
I was using my personal email. I have changed to the right email now.
Hope everything goes fine with the next version.
Thanks,
Xuewei
>
> $ ./scripts/checkpatch.pl -g net-next..HEAD --codespell
> -----------------------------------------------------------------------------------
> Commit ed36075e04ec ("hv_sock: Return the readable bytes in hvs_stream_has_data()")
> -----------------------------------------------------------------------------------
> WARNING: 'multpile' may be misspelled - perhaps 'multiple'?
> #23:
> Note: there may be multpile incoming hv_sock packets pending in the
> ^^^^^^^^
>
> ERROR: Missing Signed-off-by: line by nominal patch author 'Xuewei Niu <niuxuewei97@gmail.com>'
>
> total: 1 errors, 1 warnings, 0 checks, 29 lines checked
>
> NOTE: For some of the reported defects, checkpatch may be able to
> mechanically convert to the typical style using --fix or --fix-inplace.
>
> Commit ed36075e04ec ("hv_sock: Return the readable bytes in hvs_stream_has_data()") has style problems, please review.
> ------------------------------------------------------------
> Commit 4e5c39e373fa ("vsock: Add support for SIOCINQ ioctl")
> ------------------------------------------------------------
> WARNING: From:/Signed-off-by: email address mismatch: 'From: Xuewei Niu <niuxuewei97@gmail.com>' != 'Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>'
>
> total: 0 errors, 1 warnings, 0 checks, 28 lines checked
>
> NOTE: For some of the reported defects, checkpatch may be able to
> mechanically convert to the typical style using --fix or --fix-inplace.
>
> Commit 4e5c39e373fa ("vsock: Add support for SIOCINQ ioctl") has style problems, please review.
> ------------------------------------------------------------------------
> Commit 3eb323b2d9f4 ("test/vsock: Add retry mechanism to ioctl wrapper")
> ------------------------------------------------------------------------
> WARNING: From:/Signed-off-by: email address mismatch: 'From: Xuewei Niu <niuxuewei97@gmail.com>' != 'Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>'
>
> total: 0 errors, 1 warnings, 62 lines checked
>
> NOTE: For some of the reported defects, checkpatch may be able to
> mechanically convert to the typical style using --fix or --fix-inplace.
>
> Commit 3eb323b2d9f4 ("test/vsock: Add retry mechanism to ioctl wrapper") has style problems, please review.
>
> NOTE: If any of the errors are false positives, please report
> them to the maintainer, see CHECKPATCH in MAINTAINERS.
>
>> - Move the `need_refill` initialization into the `case 1` block.
>> - Remove the `actual` argument from `vsock_ioctl_int()`.
>> - Replace `TIOCINQ` with `SIOCINQ`.
>>
>> ---
>> Xuewei Niu (4):
>> hv_sock: Return the readable bytes in hvs_stream_has_data()
>> vsock: Add support for SIOCINQ ioctl
>> test/vsock: Add retry mechanism to ioctl wrapper
>> test/vsock: Add ioctl SIOCINQ tests
>>
>> net/vmw_vsock/af_vsock.c | 22 +++++++++++
>> net/vmw_vsock/hyperv_transport.c | 17 +++++++--
>> tools/testing/vsock/util.c | 30 ++++++++++-----
>> tools/testing/vsock/util.h | 1 +
>> tools/testing/vsock/vsock_test.c | 79 ++++++++++++++++++++++++++++++++++++++++
>> 5 files changed, 137 insertions(+), 12 deletions(-)
>> ---
>> base-commit: 5f712c3877f99d5b5e4d011955c6467ae0e535a6
>> change-id: 20250703-siocinq-9e2907939806
>>
>> Best regards,
>> --
>> Xuewei Niu <niuxuewei.nxw@antgroup.com>
>>
© 2016 - 2026 Red Hat, Inc.