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 - 2025 Red Hat, Inc.