[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5b9a3776-8661-423a-853f-87fa8b9a7633@sk.com>
Date: Wed, 5 Feb 2025 11:26:06 +0900
From: Honggyu Kim <honggyu.kim@...com>
To: Gregory Price <gourry@...rry.net>
Cc: kernel_team@...ynix.com, Joshua Hahn <joshua.hahnjy@...il.com>,
ying.huang@...ux.alibaba.com, rafael@...nel.org, lenb@...nel.org,
gregkh@...uxfoundation.org, akpm@...ux-foundation.org, rakie.kim@...com,
dan.j.williams@...el.com, Jonathan.Cameron@...wei.com, dave.jiang@...el.com,
horen.chuang@...ux.dev, hannes@...xchg.org, linux-kernel@...r.kernel.org,
linux-acpi@...r.kernel.org, linux-mm@...ck.org, kernel-team@...a.com,
42.hyeyoo@...il.com, Honggyu Kim <honggyu.km@...il.com>
Subject: Re: [PATCH v4] Weighted Interleave Auto-tuning
Hi Gregory,
On 2/4/2025 12:38 AM, Gregory Price wrote:
> On Mon, Feb 03, 2025 at 09:44:29PM +0900, Honggyu Kim wrote:
>> Hi Joshua,
>>
>>> A node offlining (or even onlining with no new bandwidth information)
>>> will just mean that the node inherits whatever value is stored in
>>> iw_table at that moment, whether that contains the default values
>>> created on init or the last values that it had taken.
>>
>> It looks the call sequence is as follows.
>>
>> cxl_region_perf_attrs_callback()
>> -> cxl_region_update_coordinates()
>> -> node_set_perf_attrs()
>> -> mempolicy_set_node_perf()
>> -> reduce_interleave_weights()
>>
>> I haven't searched all the paths of cxl_region_perf_attrs_callback() via
>> cxlr->memory_notifier.notifier_call callback pointer, but maybe this
>> function is not called when a node is offlined, then I get node
>> offlining doesn't trigger re-weight calculation.
>
> This function is called any time a memory block status changes.
>
> static int cxl_region_perf_attrs_callback(struct notifier_block *nb,
> unsigned long action, void *arg)
> {
> ...
> if (nid == NUMA_NO_NODE || action != MEM_ONLINE)
> return NOTIFY_DONE;
> ...
> }
Ah, that's clear now.
>
> But it doesn't do anything if it's not a call to online a memory block,
> so the cached performance data in mempolicy won't change when blocks
> are taken offline.
>
> So the time the scenario you are proposing can arrise is when the device
> does not provide performance information (missing CDAT).
>
>
> If a user sets manual mode - they're on the hook to manage everything.
>
> This is system-wide setting - not a per-task setting. We've yet to see
> any strong use-case for individual task weights. If there is a use case
> for a task not being subject to system-wide weight changes then it's a
> use case for task-local weights.
>
> ~Gregory
Thanks for the explanation. Then except for the nitpicks that I left,
I'm fine with this.
Thanks,
Honggyu
Powered by blists - more mailing lists