Re: [RFC PATCH v2 3/5] padata: dispatch works on different nodes

From: Gang Li
Date: Wed Dec 27 2023 - 05:34:09 EST


Hi Tim,

According to queue_work_node, if there are no CPUs available on the
given node, it will schedule to any available CPU.

On 2023/12/18 14:46, Gang Li wrote:
On 2023/12/13 07:40, Tim Chen wrote:

      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

Hi, thank you for your reminder. My intention was to fully utilize all
memory bandwidth.

For memory nodes without CPUs, I also hope to be able to spread them on
different CPUs.