On Tue 07-12-21 17:26:32, Yang Shi wrote: > On Tue, Dec 7, 2021 at 5:23 PM Yang Shi <shy828301@xxxxxxxxx> wrote: > > > > On Tue, Dec 7, 2021 at 4:33 PM Nico Pache <npache@xxxxxxxxxx> wrote: > > > > > > > > > > > > On 12/7/21 19:26, Yang Shi wrote: [...] > > > > AFAICT, we have not reached agreement on how to fix it yet. I saw 3 > > > > proposals at least: > > > > > > > > 1. From Michal, allocate node data for all possible nodes. > > > > https://lore.kernel.org/all/Ya89aqij6nMwJrIZ@xxxxxxxxxxxxxx/T/#u > > > > > > > > 2. What this patch does. Proposed originally from > > > > https://lore.kernel.org/all/20211108202325.20304-1-amakhalov@xxxxxxxxxx/T/#u > > > > > > Correct me if im wrong, but isn't that a different caller? This patch fixes the > > > issue in expand_one_shrinker_info. > > > > Yes, different caller, but same approach. The cons with this approach > > And the same underlying problem. > > > is we have to fix all the places. It seems Michal and David are not > > fans for this approach IIRC. Yes, agreed. We definitely do not want to spread this node_offline oddity all over the place. There are two different way to approach this. Either we handle node_offline nodes at the page allocator level when setting the proper zonelist (ideally protect that by a static key for setups which have these nodes) or we allocate pgdat for all possible nodes. I would prefer the second because that is more robust (less likely to blow up when somebody does for_each_node(nid) something(NODE_DATA(nid)) The discussion is ongoing at the original thread where Alexey Makhalov reported a similar problem (the subthread is http://lkml.kernel.org/r/Ya89aqij6nMwJrIZ@xxxxxxxxxxxxxx) -- Michal Hocko SUSE Labs