Message ID | cover.1613661472.git.charante@codeaurora.org (mailing list archive) |
---|---|
Headers | show |
Series | mm: balancing the node zones occupancy | expand |
On 18.02.21 18:24, Charan Teja Reddy wrote: > I would like to start discussion about balancing the occupancy of > memory zones in a node in the system whose imabalance may be caused by > migration of pages to other zones during hotremove and then hotadding > same memory. In this case there is a lot of free memory in newly hotadd > memory which can be filled up by the previous migrated pages(as part of > offline/hotremove) thus may free up some pressure in other zones of the > node. Why is this specific to memory hot(un)plug? I think the problem is more generic: Assume 1. Application 1 allocates a lot of memory and gets ZONE_MOVABLE. 2. Application 2 allocates a lot of memory and gets ZONE_NORMAL. 3. Application 1 quits. Same problem, no?
On 2/18/21 6:24 PM, Charan Teja Reddy wrote: > I would like to start discussion about balancing the occupancy of > memory zones in a node in the system whose imabalance may be caused by > migration of pages to other zones during hotremove and then hotadding > same memory. In this case there is a lot of free memory in newly hotadd > memory which can be filled up by the previous migrated pages(as part of > offline/hotremove) thus may free up some pressure in other zones of the > node. Can you share the use case for doing this? If it's to replace a failed RAM, then it's probably extremely rare, right. > We have the proof-of-concept code tried on the Snapdragon systems with > the system configuration, single memory node of just 2 zones, 6GB normal > zone and 2GB movable zone. And this Movable zone is such that hot-added > once and there after offline/online based on the need. Hm, snapdragon... so is this some kind of power saving thing? Anyway, shouln't auto NUMA balancing help here, and especially "Migrate Pages in lieu of discard" (CC'd Dave) as a generic mechanism, so we wouldn't need to have hotplug-specific actions?
Thanks David for the review comments!! On 2/18/2021 11:46 PM, David Hildenbrand wrote: >> I would like to start discussion about balancing the occupancy of >> memory zones in a node in the system whose imabalance may be caused by >> migration of pages to other zones during hotremove and then hotadding >> same memory. In this case there is a lot of free memory in newly hotadd >> memory which can be filled up by the previous migrated pages(as part of >> offline/hotremove) thus may free up some pressure in other zones of the >> node. > > Why is this specific to memory hot(un)plug? I think the problem is more > generic: > > Assume > > 1. Application 1 allocates a lot of memory and gets ZONE_MOVABLE. > 2. Application 2 allocates a lot of memory and gets ZONE_NORMAL. > 3. Application 1 quits. > > Same problem, no? Thanks for simplifying this problem. Yeah, this looks more generic problem. But for these type of problems, user/system administrator has clear view about the state of the system and thus may need to take some decisions to maintain the the node zones balancing e.g. like this change where migrate the eligible pages to other zones.
Thanks Vlastimil for the review comments!! On 2/19/2021 4:56 PM, Vlastimil Babka wrote: > Can you share the use case for doing this? If it's to replace a failed RAM, then > it's probably extremely rare, right. > >> We have the proof-of-concept code tried on the Snapdragon systems with >> the system configuration, single memory node of just 2 zones, 6GB normal >> zone and 2GB movable zone. And this Movable zone is such that hot-added >> once and there after offline/online based on the need. > Hm, snapdragon... so is this some kind of power saving thing? > You are correct. This is the power saving usecase which does the offline and online of the memory blocks in the system by the user. This is not a failed RAM. > Anyway, shouln't auto NUMA balancing help here, and especially "Migrate Pages in > lieu of discard" (CC'd Dave) as a generic mechanism, On the Snapdragon systems we have got only single memory node with Normal and movable zones. And my little understanding is that on most embedded systems we will just have single memory node. My limited understanding about this auto NUMA balancing is that there should be min. 2 nodes for this balancing to trigger. Please correct if I am wrong here. If I am correct then this approach is not suitable for us. Moreover the idea I would like to convey in this RFC patch is about __balancing the zones in a node but not across NUMA nodes__. > so we wouldn't need to have hotplug-specific actions? David has told a very simple view of this problem which is nothing todo with the hotplug specific actions. With just 2 zones(Normal and Movable) in a single node in the system, 1. Application 1 allocates a lot of memory and gets ZONE_MOVABLE. 2. Application 2 allocates a lot of memory and gets ZONE_NORMAL. 3. Application 1 quits. Then after step3, we can expect a lot free memory in the Movable zone but normal zone is under pressure. Applying the similar semantics of Auto numa balancing("Migrate pages in lieu of swap/discard"), we could migrate some eligible pages of Application 2 to Movable zone there by can relieve some pressure in Normal zone.