* [PATCH net-next v3 0/3] Fix netdevim to correctly mark NAPI IDs
@ 2025-04-18 1:37 Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 1/3] netdevsim: Mark NAPI ID on skb in nsim_rcv Joe Damato
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Joe Damato @ 2025-04-18 1:37 UTC (permalink / raw)
To: netdev
Cc: kuba, pabeni, shaw.leon, Joe Damato, Alexei Starovoitov,
Andrew Lunn,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_),
Daniel Borkmann, David S. Miller, Eric Dumazet,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK, Shuah Khan
Greetings:
Welcome to v3.
This series fixes netdevsim to correctly set the NAPI ID on the skb.
This is helpful for writing tests around features that use
SO_INCOMING_NAPI_ID.
In addition to the netdevsim fix in patch 1, patches 2 & 3 do some self
test refactoring and add a test for NAPI IDs. The test itself (patch 4)
introduces a C helper because apparently python doesn't have
socket.SO_INCOMING_NAPI_ID.
Thanks,
Joe
v3:
- Dropped patch 3 from v2 as it is no longer necessary.
- Patch 3 from this series (which was patch 4 in the v2)
- Sorted .gitignore alphabetically
- added cfg.remote_deploy so the test supports real remote machines
- Dropped the NetNSEnter as it is unnecessary
- Fixed a string interpolation issue that Paolo hit with his Python
version
v2: https://lore.kernel.org/netdev/20250417013301.39228-1-jdamato@fastly.com/
- No longer an RFC
- Minor whitespace change in patch 1 (no functional change).
- Patches 2-4 new in v2
rfcv1: https://lore.kernel.org/netdev/20250329000030.39543-1-jdamato@fastly.com/
Joe Damato (3):
netdevsim: Mark NAPI ID on skb in nsim_rcv
selftests: drv-net: Factor out ksft C helpers
selftests: drv-net: Test that NAPI ID is non-zero
drivers/net/netdevsim/netdev.c | 2 +
.../testing/selftests/drivers/net/.gitignore | 1 +
tools/testing/selftests/drivers/net/Makefile | 6 +-
tools/testing/selftests/drivers/net/ksft.h | 56 +++++++++++++
.../testing/selftests/drivers/net/napi_id.py | 24 ++++++
.../selftests/drivers/net/napi_id_helper.c | 83 +++++++++++++++++++
.../selftests/drivers/net/xdp_helper.c | 49 +----------
7 files changed, 173 insertions(+), 48 deletions(-)
create mode 100644 tools/testing/selftests/drivers/net/ksft.h
create mode 100755 tools/testing/selftests/drivers/net/napi_id.py
create mode 100644 tools/testing/selftests/drivers/net/napi_id_helper.c
base-commit: 22ab6b9467c1822291a1175a0eb825b7ec057ef9
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next v3 1/3] netdevsim: Mark NAPI ID on skb in nsim_rcv
2025-04-18 1:37 [PATCH net-next v3 0/3] Fix netdevim to correctly mark NAPI IDs Joe Damato
@ 2025-04-18 1:37 ` Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 2/3] selftests: drv-net: Factor out ksft C helpers Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero Joe Damato
2 siblings, 0 replies; 8+ messages in thread
From: Joe Damato @ 2025-04-18 1:37 UTC (permalink / raw)
To: netdev
Cc: kuba, pabeni, shaw.leon, Joe Damato, Andrew Lunn, David S. Miller,
Eric Dumazet, open list
Previously, nsim_rcv was not marking the NAPI ID on the skb, leading to
applications seeing a napi ID of 0 when using SO_INCOMING_NAPI_ID.
To add to the userland confusion, netlink appears to correctly report
the NAPI IDs for netdevsim queues but the resulting file descriptor from
a call to accept() was reporting a NAPI ID of 0.
Signed-off-by: Joe Damato <jdamato@fastly.com>
---
drivers/net/netdevsim/netdev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index 0e0321a7ddd7..2aa999345fe1 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -29,6 +29,7 @@
#include <net/pkt_cls.h>
#include <net/rtnetlink.h>
#include <net/udp_tunnel.h>
+#include <net/busy_poll.h>
#include "netdevsim.h"
@@ -357,6 +358,7 @@ static int nsim_rcv(struct nsim_rq *rq, int budget)
break;
skb = skb_dequeue(&rq->skb_queue);
+ skb_mark_napi_id(skb, &rq->napi);
netif_receive_skb(skb);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next v3 2/3] selftests: drv-net: Factor out ksft C helpers
2025-04-18 1:37 [PATCH net-next v3 0/3] Fix netdevim to correctly mark NAPI IDs Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 1/3] netdevsim: Mark NAPI ID on skb in nsim_rcv Joe Damato
@ 2025-04-18 1:37 ` Joe Damato
2025-04-23 23:15 ` Jakub Kicinski
2025-04-18 1:37 ` [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero Joe Damato
2 siblings, 1 reply; 8+ messages in thread
From: Joe Damato @ 2025-04-18 1:37 UTC (permalink / raw)
To: netdev
Cc: kuba, pabeni, shaw.leon, Joe Damato, Andrew Lunn, David S. Miller,
Eric Dumazet, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
Factor ksft C helpers to a header so they can be used by other C-based
tests.
Signed-off-by: Joe Damato <jdamato@fastly.com>
---
tools/testing/selftests/drivers/net/ksft.h | 56 +++++++++++++++++++
.../selftests/drivers/net/xdp_helper.c | 49 +---------------
2 files changed, 58 insertions(+), 47 deletions(-)
create mode 100644 tools/testing/selftests/drivers/net/ksft.h
diff --git a/tools/testing/selftests/drivers/net/ksft.h b/tools/testing/selftests/drivers/net/ksft.h
new file mode 100644
index 000000000000..3fd084006a16
--- /dev/null
+++ b/tools/testing/selftests/drivers/net/ksft.h
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#if !defined(__KSFT_H__)
+#define __KSFT_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+static void ksft_ready(void)
+{
+ const char msg[7] = "ready\n";
+ char *env_str;
+ int fd;
+
+ env_str = getenv("KSFT_READY_FD");
+ if (env_str) {
+ fd = atoi(env_str);
+ if (!fd) {
+ fprintf(stderr, "invalid KSFT_READY_FD = '%s'\n",
+ env_str);
+ return;
+ }
+ } else {
+ fd = STDOUT_FILENO;
+ }
+
+ write(fd, msg, sizeof(msg));
+ if (fd != STDOUT_FILENO)
+ close(fd);
+}
+
+static void ksft_wait(void)
+{
+ char *env_str;
+ char byte;
+ int fd;
+
+ env_str = getenv("KSFT_WAIT_FD");
+ if (env_str) {
+ fd = atoi(env_str);
+ if (!fd) {
+ fprintf(stderr, "invalid KSFT_WAIT_FD = '%s'\n",
+ env_str);
+ return;
+ }
+ } else {
+ /* Not running in KSFT env, wait for input from STDIN instead */
+ fd = STDIN_FILENO;
+ }
+
+ read(fd, &byte, sizeof(byte));
+ if (fd != STDIN_FILENO)
+ close(fd);
+}
+
+#endif
diff --git a/tools/testing/selftests/drivers/net/xdp_helper.c b/tools/testing/selftests/drivers/net/xdp_helper.c
index aeed25914104..d5bb8ac33efa 100644
--- a/tools/testing/selftests/drivers/net/xdp_helper.c
+++ b/tools/testing/selftests/drivers/net/xdp_helper.c
@@ -11,56 +11,11 @@
#include <net/if.h>
#include <inttypes.h>
+#include "ksft.h"
+
#define UMEM_SZ (1U << 16)
#define NUM_DESC (UMEM_SZ / 2048)
-/* Move this to a common header when reused! */
-static void ksft_ready(void)
-{
- const char msg[7] = "ready\n";
- char *env_str;
- int fd;
-
- env_str = getenv("KSFT_READY_FD");
- if (env_str) {
- fd = atoi(env_str);
- if (!fd) {
- fprintf(stderr, "invalid KSFT_READY_FD = '%s'\n",
- env_str);
- return;
- }
- } else {
- fd = STDOUT_FILENO;
- }
-
- write(fd, msg, sizeof(msg));
- if (fd != STDOUT_FILENO)
- close(fd);
-}
-
-static void ksft_wait(void)
-{
- char *env_str;
- char byte;
- int fd;
-
- env_str = getenv("KSFT_WAIT_FD");
- if (env_str) {
- fd = atoi(env_str);
- if (!fd) {
- fprintf(stderr, "invalid KSFT_WAIT_FD = '%s'\n",
- env_str);
- return;
- }
- } else {
- /* Not running in KSFT env, wait for input from STDIN instead */
- fd = STDIN_FILENO;
- }
-
- read(fd, &byte, sizeof(byte));
- if (fd != STDIN_FILENO)
- close(fd);
-}
/* this is a simple helper program that creates an XDP socket and does the
* minimum necessary to get bind() to succeed.
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero
2025-04-18 1:37 [PATCH net-next v3 0/3] Fix netdevim to correctly mark NAPI IDs Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 1/3] netdevsim: Mark NAPI ID on skb in nsim_rcv Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 2/3] selftests: drv-net: Factor out ksft C helpers Joe Damato
@ 2025-04-18 1:37 ` Joe Damato
2025-04-23 23:16 ` Jakub Kicinski
2 siblings, 1 reply; 8+ messages in thread
From: Joe Damato @ 2025-04-18 1:37 UTC (permalink / raw)
To: netdev
Cc: kuba, pabeni, shaw.leon, Joe Damato, Andrew Lunn, David S. Miller,
Eric Dumazet, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
Test that the SO_INCOMING_NAPI_ID of a network file descriptor is
non-zero. This ensures that either the core networking stack or, in some
cases like netdevsim, the driver correctly sets the NAPI ID.
Signed-off-by: Joe Damato <jdamato@fastly.com>
---
.../testing/selftests/drivers/net/.gitignore | 1 +
tools/testing/selftests/drivers/net/Makefile | 6 +-
.../testing/selftests/drivers/net/napi_id.py | 24 ++++++
.../selftests/drivers/net/napi_id_helper.c | 83 +++++++++++++++++++
4 files changed, 113 insertions(+), 1 deletion(-)
create mode 100755 tools/testing/selftests/drivers/net/napi_id.py
create mode 100644 tools/testing/selftests/drivers/net/napi_id_helper.c
diff --git a/tools/testing/selftests/drivers/net/.gitignore b/tools/testing/selftests/drivers/net/.gitignore
index ec746f374e85..72d2124fd513 100644
--- a/tools/testing/selftests/drivers/net/.gitignore
+++ b/tools/testing/selftests/drivers/net/.gitignore
@@ -1,2 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only
+napi_id_helper
xdp_helper
diff --git a/tools/testing/selftests/drivers/net/Makefile b/tools/testing/selftests/drivers/net/Makefile
index 0c95bd944d56..47247c2ef948 100644
--- a/tools/testing/selftests/drivers/net/Makefile
+++ b/tools/testing/selftests/drivers/net/Makefile
@@ -6,9 +6,13 @@ TEST_INCLUDES := $(wildcard lib/py/*.py) \
../../net/net_helper.sh \
../../net/lib.sh \
-TEST_GEN_FILES := xdp_helper
+TEST_GEN_FILES := \
+ napi_id_helper \
+ xdp_helper \
+# end of TEST_GEN_FILES
TEST_PROGS := \
+ napi_id.py \
netcons_basic.sh \
netcons_fragmented_msg.sh \
netcons_overflow.sh \
diff --git a/tools/testing/selftests/drivers/net/napi_id.py b/tools/testing/selftests/drivers/net/napi_id.py
new file mode 100755
index 000000000000..54e51633a70a
--- /dev/null
+++ b/tools/testing/selftests/drivers/net/napi_id.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0
+
+from lib.py import ksft_run, ksft_exit
+from lib.py import ksft_eq, NetDrvEpEnv
+from lib.py import bkg, cmd, rand_port, NetNSEnter
+
+def test_napi_id(cfg) -> None:
+ port = rand_port()
+ bin_remote = cfg.remote.deploy(cfg.test_dir / "napi_id_helper")
+ listen_cmd = f"{bin_remote} {cfg.addr_v['4']} {port}"
+
+ with bkg(listen_cmd, ksft_wait=3) as server:
+ cmd(f"echo a | socat - TCP:{cfg.addr_v['4']}:{port}", host=cfg.remote, shell=True)
+
+ ksft_eq(0, server.ret)
+
+def main() -> None:
+ with NetDrvEpEnv(__file__) as cfg:
+ ksft_run([test_napi_id], args=(cfg,))
+ ksft_exit()
+
+if __name__ == "__main__":
+ main()
diff --git a/tools/testing/selftests/drivers/net/napi_id_helper.c b/tools/testing/selftests/drivers/net/napi_id_helper.c
new file mode 100644
index 000000000000..7e8e7d373b61
--- /dev/null
+++ b/tools/testing/selftests/drivers/net/napi_id_helper.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <arpa/inet.h>
+#include <sys/socket.h>
+
+#include "ksft.h"
+
+int main(int argc, char *argv[])
+{
+ struct sockaddr_in address;
+ unsigned int napi_id;
+ unsigned int port;
+ socklen_t optlen;
+ char buf[1024];
+ int opt = 1;
+ int server;
+ int client;
+ int ret;
+
+ server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ if (server < 0) {
+ perror("socket creation failed");
+ if (errno == EAFNOSUPPORT)
+ return -1;
+ return 1;
+ }
+
+ port = atoi(argv[2]);
+
+ if (setsockopt(server, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) {
+ perror("setsockopt");
+ return 1;
+ }
+
+ address.sin_family = AF_INET;
+ inet_pton(AF_INET, argv[1], &address.sin_addr);
+ address.sin_port = htons(port);
+
+ if (bind(server, (struct sockaddr *)&address, sizeof(address)) < 0) {
+ perror("bind failed");
+ return 1;
+ }
+
+ if (listen(server, 1) < 0) {
+ perror("listen");
+ return 1;
+ }
+
+ ksft_ready();
+
+ client = accept(server, NULL, 0);
+ if (client < 0) {
+ perror("accept");
+ return 1;
+ }
+
+ optlen = sizeof(napi_id);
+ ret = getsockopt(client, SOL_SOCKET, SO_INCOMING_NAPI_ID, &napi_id,
+ &optlen);
+ if (ret != 0) {
+ perror("getsockopt");
+ return 1;
+ }
+
+ read(client, buf, 1024);
+
+ ksft_wait();
+
+ if (napi_id == 0) {
+ fprintf(stderr, "napi ID is 0\n");
+ return 1;
+ }
+
+ close(client);
+ close(server);
+
+ return 0;
+}
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 2/3] selftests: drv-net: Factor out ksft C helpers
2025-04-18 1:37 ` [PATCH net-next v3 2/3] selftests: drv-net: Factor out ksft C helpers Joe Damato
@ 2025-04-23 23:15 ` Jakub Kicinski
0 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2025-04-23 23:15 UTC (permalink / raw)
To: Joe Damato
Cc: netdev, pabeni, shaw.leon, Andrew Lunn, David S. Miller,
Eric Dumazet, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
On Fri, 18 Apr 2025 01:37:04 +0000 Joe Damato wrote:
> +#if !defined(__KSFT_H__)
> +#define __KSFT_H__
If you have to respin maybe __NET_KSFT_H__ ?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero
2025-04-18 1:37 ` [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero Joe Damato
@ 2025-04-23 23:16 ` Jakub Kicinski
2025-04-24 0:06 ` Joe Damato
0 siblings, 1 reply; 8+ messages in thread
From: Jakub Kicinski @ 2025-04-23 23:16 UTC (permalink / raw)
To: Joe Damato
Cc: netdev, pabeni, shaw.leon, Andrew Lunn, David S. Miller,
Eric Dumazet, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
On Fri, 18 Apr 2025 01:37:05 +0000 Joe Damato wrote:
> + bin_remote = cfg.remote.deploy(cfg.test_dir / "napi_id_helper")
> + listen_cmd = f"{bin_remote} {cfg.addr_v['4']} {port}"
> +
> + with bkg(listen_cmd, ksft_wait=3) as server:
Sorry, not sure how I misread v2 but you are running the helper locally.
So you don't have to deploy it to the remote machine :(
BTW does removing the ksft_wait() from the binary work? Or does it
cause trouble? Don't think we need to wait for anything in this case.
With the XSK test we had to wait for the test to do the inspection
before we unbound. Here once we get the connection we can just exit, no?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero
2025-04-23 23:16 ` Jakub Kicinski
@ 2025-04-24 0:06 ` Joe Damato
2025-04-24 0:25 ` Jakub Kicinski
0 siblings, 1 reply; 8+ messages in thread
From: Joe Damato @ 2025-04-24 0:06 UTC (permalink / raw)
To: Jakub Kicinski
Cc: netdev, pabeni, shaw.leon, Andrew Lunn, David S. Miller,
Eric Dumazet, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
On Wed, Apr 23, 2025 at 04:16:12PM -0700, Jakub Kicinski wrote:
> On Fri, 18 Apr 2025 01:37:05 +0000 Joe Damato wrote:
> > + bin_remote = cfg.remote.deploy(cfg.test_dir / "napi_id_helper")
> > + listen_cmd = f"{bin_remote} {cfg.addr_v['4']} {port}"
> > +
> > + with bkg(listen_cmd, ksft_wait=3) as server:
>
> Sorry, not sure how I misread v2 but you are running the helper locally.
> So you don't have to deploy it to the remote machine :(
OK I can remove that and fix the macro guard for the v4.
> BTW does removing the ksft_wait() from the binary work? Or does it
> cause trouble? Don't think we need to wait for anything in this case.
> With the XSK test we had to wait for the test to do the inspection
> before we unbound. Here once we get the connection we can just exit, no?
I agree that we can just exit, but removing the wait breaks ksft
utils:
# Exception| Traceback (most recent call last):
# Exception| File "/home/jdamato/code/net-next/tools/testing/selftests/net/lib/py/ksft.py", line 223, in ksft_run
# Exception| case(*args)
# Exception| File "/home/jdamato/code/net-next/./tools/testing/selftests/drivers/net/napi_id.py", line 13, in test_napi_id
# Exception| with bkg(listen_cmd, ksft_wait=3) as server:
# Exception| File "/home/jdamato/code/net-next/tools/testing/selftests/net/lib/py/utils.py", line 130, in __exit__
# Exception| return self.process(terminate=self.terminate, fail=self.check_fail)
# Exception| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Exception| File "/home/jdamato/code/net-next/tools/testing/selftests/net/lib/py/utils.py", line 78, in process
# Exception| os.write(self.ksft_term_fd, b"1")
# Exception| BrokenPipeError: [Errno 32] Broken pipe
LMK how you'd like me to proceed ?
I'm thinking:
- Leave ksft_wait()
- macro guard
- don't deploy helper to remote machine
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero
2025-04-24 0:06 ` Joe Damato
@ 2025-04-24 0:25 ` Jakub Kicinski
0 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2025-04-24 0:25 UTC (permalink / raw)
To: Joe Damato
Cc: netdev, pabeni, shaw.leon, Andrew Lunn, David S. Miller,
Eric Dumazet, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Jesper Dangaard Brouer, John Fastabend, open list,
open list:KERNEL SELFTEST FRAMEWORK,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
On Wed, 23 Apr 2025 17:06:05 -0700 Joe Damato wrote:
> # Exception| Traceback (most recent call last):
> # Exception| File "/home/jdamato/code/net-next/tools/testing/selftests/net/lib/py/ksft.py", line 223, in ksft_run
> # Exception| case(*args)
> # Exception| File "/home/jdamato/code/net-next/./tools/testing/selftests/drivers/net/napi_id.py", line 13, in test_napi_id
> # Exception| with bkg(listen_cmd, ksft_wait=3) as server:
> # Exception| File "/home/jdamato/code/net-next/tools/testing/selftests/net/lib/py/utils.py", line 130, in __exit__
> # Exception| return self.process(terminate=self.terminate, fail=self.check_fail)
> # Exception| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> # Exception| File "/home/jdamato/code/net-next/tools/testing/selftests/net/lib/py/utils.py", line 78, in process
> # Exception| os.write(self.ksft_term_fd, b"1")
> # Exception| BrokenPipeError: [Errno 32] Broken pipe
Thanks for testing! Makes sense, I don't think it's worth complicating
the Python side to handle the "ready but no wait" case if it doesnt
work as is.
> LMK how you'd like me to proceed ?
>
> I'm thinking:
> - Leave ksft_wait()
> - macro guard
> - don't deploy helper to remote machine
SG!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-04-24 0:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-18 1:37 [PATCH net-next v3 0/3] Fix netdevim to correctly mark NAPI IDs Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 1/3] netdevsim: Mark NAPI ID on skb in nsim_rcv Joe Damato
2025-04-18 1:37 ` [PATCH net-next v3 2/3] selftests: drv-net: Factor out ksft C helpers Joe Damato
2025-04-23 23:15 ` Jakub Kicinski
2025-04-18 1:37 ` [PATCH net-next v3 3/3] selftests: drv-net: Test that NAPI ID is non-zero Joe Damato
2025-04-23 23:16 ` Jakub Kicinski
2025-04-24 0:06 ` Joe Damato
2025-04-24 0:25 ` Jakub Kicinski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).