On Tue, Jan 02, 2024 at 03:41:08PM +0800, Huang, Ying wrote: > Think about the default weight value via HMAT/CDAT again. It may be not > a good idea to use "1" as default even for now. > > For example, > > - The memory bandwidth of DRAM is 100GB, whose default weight is "1". > > - We hot-plug CXL.mem A with memory bandwidth 20GB. So, we change the > weight of DRAM to 5, and use "1" as the weight of CXL.mem A. > > - We hot-plug CXL.mem B with memory bandwidth 10GB. So, we change the > weight of DRAM to 10, the weight of CXL.mem A to 2, and use "1" as the > weight of CXL.mem B. > > That is, if we use "1" as default weight, we need to change weights of > nodes frequently because we haven't a "base" weight. The best candidate > base weight is the weight of DRAM node. For example, if we set the > default weight of DRAM node to be "16" and use that as the base weight, > we don't need to change it in most cases. The weight of other nodes can > be set according to the ratio of its memory bandwidth to that of DRAM. > > This makes it easy to set the default weight via HMAT/CDAT too. > > What do you think about that? > Giving this more thought. Hotplug should be an incredibly rare event. I don't think swapping defaults "frequently" is a real problem we should handle. It's expected that dynamic capacity devices will not cause a node to hotplug, but instead cause a node to grow/shrink. Seems perfectly fine to rebalance weights in response to rare events. ~Gregory