t/io_uring: properly detect numa nodes for passthrough mode
authorJens Axboe <axboe@kernel.dk>
Sat, 3 Sep 2022 17:01:19 +0000 (11:01 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 3 Sep 2022 17:01:19 +0000 (11:01 -0600)
We need to use a different path for the char nodes. With this, my
setup correctly detects the nodes for all devices:

submitter=0, tid=4746, file=/dev/ng0n1, node=6
submitter=1, tid=4747, file=/dev/ng1n1, node=6
submitter=2, tid=4748, file=/dev/ng2n1, node=6
submitter=3, tid=4749, file=/dev/ng3n1, node=6
submitter=4, tid=4750, file=/dev/ng4n1, node=4
submitter=5, tid=4751, file=/dev/ng5n1, node=4
submitter=6, tid=4752, file=/dev/ng6n1, node=4
submitter=7, tid=4753, file=/dev/ng7n1, node=4
submitter=8, tid=4754, file=/dev/ng8n1, node=4
submitter=9, tid=4755, file=/dev/ng9n1, node=4
submitter=10, tid=4756, file=/dev/ng10n1, node=4
submitter=12, tid=4758, file=/dev/ng12n1, node=10
submitter=11, tid=4757, file=/dev/ng11n1, node=4
submitter=13, tid=4759, file=/dev/ng13n1, node=10
[...]

Signed-off-by: Jens Axboe <axboe@kernel.dk>
t/io_uring.c

index 9d580b5af11b529af3233298547f8ed051ae88d7..3bce9e7e983a48ccaa35b088f39e2ade48d06290 100644 (file)
@@ -856,7 +856,10 @@ static int detect_node(struct submitter *s, const char *name)
        char str[128];
        int ret, fd, node;
 
-       sprintf(str, "/sys/block/%s/device/numa_node", base);
+       if (pt)
+               sprintf(str, "/sys/class/nvme-generic/%s/device/numa_node", base);
+       else
+               sprintf(str, "/sys/block/%s/device/numa_node", base);
        fd = open(str, O_RDONLY);
        if (fd < 0)
                return -1;