Re: [PATCH v3] sched/numa: add per-process numa_balancing

From: Gang Li
Date: Thu Jan 06 2022 - 03:08:48 EST


Hi,
Any comments please?

;)

On 2021/12/6 10:45, Gang Li wrote:
This patch add a new api PR_NUMA_BALANCING in prctl.

A large number of page faults will cause performance loss when numa
balancing is performing. Thus those processes which care about worst-case
performance need numa balancing disabled. Others, on the contrary, allow a
temporary performance loss in exchange for higher average performance, so
enable numa balancing is better for them.

Numa balancing can only be controlled globally by
/proc/sys/kernel/numa_balancing. Due to the above case, we want to
disable/enable numa_balancing per-process instead.

Add numa_balancing under mm_struct. Then use it in task_tick_fair.

Set per-process numa balancing:
prctl(PR_NUMA_BALANCING, PR_SET_NUMAB_DISABLE); //disable
prctl(PR_NUMA_BALANCING, PR_SET_NUMAB_ENABLE); //enable
prctl(PR_NUMA_BALANCING, PR_SET_NUMAB_DEFAULT); //follow global
Get numa_balancing state:
prctl(PR_NUMA_BALANCING, PR_GET_NUMAB, &ret);
cat /proc/<pid>/status | grep NumaB_enabled

Cc: linux-api@xxxxxxxxxxxxxxx
Signed-off-by: Gang Li <ligang.bdlg@xxxxxxxxxxxxx>
---

Changes in v3:
- Fix compile error.

Changes in v2:
- Now PR_NUMA_BALANCING support three states: enabled, disabled, default.
enabled and disabled will ignore global setting, and default will follow
global setting.
--
Thanks
Gang Li