Re: [RFC PATCH v4 0/3] memcg weighted interleave mempolicy control

From: Huang, Ying
Date: Sun Nov 12 2023 - 20:33:41 EST


Gregory Price <gregory.price@xxxxxxxxxxxx> writes:

> On Fri, Nov 10, 2023 at 02:16:05PM +0800, Huang, Ying wrote:
>> Gregory Price <gourry.memverge@xxxxxxxxx> writes:
>>
>> > This patchset implements weighted interleave and adds a new cgroup
>> > sysfs entry: cgroup/memory.interleave_weights (excluded from root).
>> >
>> > The il_weight of a node is used by mempolicy to implement weighted
>> > interleave when `numactl --interleave=...` is invoked. By default
>> > il_weight for a node is always 1, which preserves the default round
>> > robin interleave behavior.
>>
>> IIUC, this makes it almost impossible to set the default weight of a
>> node from the node memory bandwidth information. This will make the
>> life of users a little harder.
>>
>> If so, how about use a new memory policy mode, for example
>> MPOL_WEIGHTED_INTERLEAVE, etc.
>>
>
> weights are also inherited from parent cgroups, so if you set them in
> parent slices you can automatically set update system settings.
>
> by default the parent slice weights will always be 1 until set
> otherwise. Once they're set, children inherit naturally.
>
> Maybe there's an argument here for including interleave_weights in the
> root cgroup.

Even if the interleave_weights is introduced in root cgroup, the initial
default weight need to be 1 to be back-compatible with the original
MPOL_INTERLEAVE.

If we don't reuse MPOL_INTERLEAVE, but use a new memory policy mode (say
MPOL_WEIGHTED_INTERLEAVE). The default values of the interleave weight
in root cgroup needn't to be 1. So, we can provide a more helpful
default interleave weight based on the node memory bandwidth information
(e.g., from HMAT, CDAT, etc). That will make users life much easier.
Do you agree?

--
Best Regards,
Huang, Ying