Re: [PATCH v4] Weighted Interleave Auto-tuning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Joshua,

On 2/2/2025 11:12 PM, Joshua Hahn wrote:
Hi Honggyu,

On Sun, 2 Feb 2025 22:51:34 +0900 Honggyu Kim <honggyu.km@xxxxxxxxx> wrote:

On 2/2/25 01:53, Gregory Price wrote:
On Sat, Feb 01, 2025 at 11:49:31AM -0500, Gregory Price wrote:
    1. the auto mode set the weights as 10:5:1 for node{0-2}.
    2. node2 is offlined, then recalculation makes it as 2:1 for node{0,1}.

Point of clarification here:  a hot-unplug event won't cause
recalculation.

What actually causes re-weight is hot-plug reporting new capacity.

So do you mean re-weight is done only when a new node is onlined while
offline doesn't trigger re-weight?

I see node_set_perf_attrs() does recalculation by calling
mempolicy_set_node_perf(), then reduce_interleave_weights().

But I'm not sure if the re-weight is done via node_set_perf_attrs() only
when a new node is onlined.

Could you please explain where I can find it?

Just chiming in to add some clarification:
Your analysis above is correct; reduce_interleave_weights() is only
called in 2 spots: once when the mode is switched from manual --> auto,
and the other when new bandwidth data is available, which calls
node_set_perf_attrs() and so on. In all other scenarios, iw_table is
preserved, and all values inside remain the same without manual changes.

Yeah, this part is clear.

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.

By the way, do you test it using CXL hardware or using qemu?


So in this scenario, the weight will remain the same for node2.

If it's true, my scenario is wrong.

Thanks,
Honggyu


    3. the auto sysfs interface is set to 0 to make it manual mode.

Please let me know if this makes sense. Thank you for your review
as always, and have a great day!
Joshua

Thanks for your response.  Have a great day you too!

Regards,
Honggyu




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux