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