Yep, yours works better. :) Thanks a lot Jens. On Sat, Apr 6, 2019 at 12:50 PM Jens Axboe <axboe@xxxxxxxxx> wrote: > > On 4/6/19 8:47 AM, John Pittman wrote: > > Hi Jens, I got some unexpected results with this patch this morning. > > When loading null_blk with no arguments, I got the invalid home_node > > value error message. I did some debug and found that the values > > seemed fine: > > > > + pr_err("g_home_node is %d", g_home_node); > > + pr_err("nr_online_nodes is %d", nr_online_nodes); > > + pr_err("NUMA_NO_NODE is %d", NUMA_NO_NODE); > > + > > + if (g_home_node >= nr_online_nodes) { > > + pr_err("null_blk: invalid home_node value\n"); > > + g_home_node = NUMA_NO_NODE; > > + } > > + > > if (g_queue_mode == NULL_Q_RQ) { > > pr_err("null_blk: legacy IO path no longer available\n"); > > return -EINVAL; > > > > [root@localhost linux]# modprobe null_blk > > [ 296.336473] g_home_node is -1 > > [ 296.336474] nr_online_nodes is 1 > > [ 296.336514] NUMA_NO_NODE is -1 > > [ 296.336558] null_blk: invalid home_node value > > [ 296.338825] null: module loaded > > > > [root@localhost linux]# numactl --hardware > > available: 1 nodes (0) > > node 0 cpus: 0 1 2 3 > > node 0 size: 828 MB > > node 0 free: 451 MB > > node distances: > > node 0 > > 0: 10 > > > > Fortunately, and also unexpectedly to me, I was able to fix the issue > > just by casting nr_online_nodes as an int. > > > > + if (g_home_node >= (int)nr_online_nodes) { > > + pr_err("null_blk: invalid home_node value\n"); > > + g_home_node = NUMA_NO_NODE; > > + } > > + > > > > Would you like me to send in a v2 for this? > > Well, I already added it... I'll just edit it. But I think we should > make it: > > if (g_home_node != NUMA_NO_NODE && g_home_node >= nr_online_nodes) > > instead. > > -- > Jens Axboe >