> > list_for_each_entry(pw, &works, pw_list) > - queue_work(system_unbound_wq, &pw->pw_work); > + if (job->numa_aware) > + queue_work_node((++nid % num_node_state(N_MEMORY)), The nid may fall on a NUMA node with only memory but no CPU. In that case you may still put the work on the unbound queue. You could end up on one CPU node for work from all memory nodes without CPU. Is this what you want? Or you would like to spread them between CPU nodes? Tim > + system_unbound_wq, &pw->pw_work); > + else > + queue_work(system_unbound_wq, &pw->pw_work); > > /* Use the current thread, which saves starting a workqueue worker. */ > padata_work_init(&my_work, padata_mt_helper, &ps, PADATA_WORK_ONSTACK);