Messages in this thread | | | From | Gang Li <> | Subject | Re: Re: Re: Re: Re: [PATCH v1] sched/numa: add per-process numa_balancing | Date | Tue, 9 Nov 2021 21:58:34 +0800 |
| |
On 11/9/21 8:12 PM, Mel Gorman wrote: > > That would be a policy decision on how existing tasks should be tuned > if NUMA balancing is enabled at runtime after being disabled at boot > (or some arbitrary time in the past). Introducing the prctl does mean > that there is a semantic change for the runtime enabling/disabling > of NUMA balancing because previously, enabling global balancing affects > existing tasks and with prctl, it affects only future tasks. It could > be handled in the sysctl to some exist > > 0. Disable for all but prctl specifications > 1. Enable for all tasks unless disabled by prctl > 2. Ignore all existing tasks, enable for future tasks > > While this is more legwork, it makes more sense as an interface than > prctl(PR_NUMA_BALANCING,PR_SET_NUMA_BALANCING,1) failing if global > NUMA balancing is disabled. >
Why prctl(PR_NUMA_BALANCING,PR_SET_NUMA_BALANCING,1) must work while global numa_balancing is disabled? No offense, I think that is a bit redundant. And it's complicated to implement.
It's hard for me to understand the whole vision of your idea. I'm very sorry. Can you explain your full thoughts more specifically?
----------------------------------------------------
Also in case of misunderstanding, let me re-explain my patch using circuit diagram.
Before my patch, there is only one switch to control numa_balancing.
______process1_ ...____/ __|______process2_|__... |______process3_|
| global numa_balancing
After my patch, we can selectively disable numa_balancing for processes. And global switch has a high priority.
__/ __process1_ ...____/ __|__/ __process2_|__... |__/ __process3_|
| | global per-process
Why global numa_balancing has high priority? There are two reasons: 1. numa_balancing is useful to most processes, so there is no need to consider how to enable numa_balancing for a few processes while disabling it globally. 2. It is easy to implement. The more we think, the more complex the code becomes.
| |