Re: [PATCH v4 3/7] padata: dispatch works on different nodes

From: Gang Li
Date: Fri Jan 19 2024 - 09:57:11 EST




On 2024/1/19 07:04, Tim Chen wrote:
On Thu, 2024-01-18 at 20:39 +0800, Gang Li wrote:
When a group of tasks that access different nodes are scheduled on the
same node, they may encounter bandwidth bottlenecks and access latency.

Thus, numa_aware flag is introduced here, allowing tasks to be
distributed across different nodes to fully utilize the advantage of
multi-node systems.

Signed-off-by: Gang Li <gang.li@xxxxxxxxx>
Tested-by: David Rientjes <rientjes@xxxxxxxxxx>
---
include/linux/padata.h | 3 +++
kernel/padata.c | 14 ++++++++++++--
mm/mm_init.c | 1 +
3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/include/linux/padata.h b/include/linux/padata.h
index 495b16b6b4d7..f79ccd50e7f4 100644
--- a/include/linux/padata.h
+++ b/include/linux/padata.h
@@ -137,6 +137,8 @@ struct padata_shell {
* appropriate for one worker thread to do at once.
* @max_threads: Max threads to use for the job, actual number may be less
* depending on task size and minimum chunk size.
+ * @numa_aware: Dispatch jobs to different nodes. If a node only has memory but
+ * no CPU, dispatch its jobs to a random CPU.

Suggest:
Distribute jobs to different nodes with CPU in a round robin fashion.


Good idea.
Thanks.

*/
struct padata_mt_job {