On Thu 17-09-20 11:28:06, Michal Hocko wrote: > On Wed 16-09-20 23:39:39, Vijay Balakrishna wrote: > > set_recommended_min_free_kbytes need to honor min_free_kbytes set by the > > user. Post start-of-day THP enable or memory hotplug operations can > > lose user specified min_free_kbytes, in particular when it is higher than > > calculated recommended value. > > I was about to recommend a more detailed explanation when I have > realized that this patch is not really needed after all. Unless I am > missing something. > > init_per_zone_wmark_min ignores the newly calculated min_free_kbytes if > it is lower than user_min_free_kbytes. So calculated min_free_kbytes >= > user_min_free_kbytes. > > Except for value clamping when the value is reduced and this likely > needs fixing. But set_recommended_min_free_kbytes should be fine. Something like diff --git a/mm/page_alloc.c b/mm/page_alloc.c index fab5e97dc9ca..69731b19d9bf 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7875,9 +7875,9 @@ int __meminit init_per_zone_wmark_min(void) if (new_min_free_kbytes > user_min_free_kbytes) { min_free_kbytes = new_min_free_kbytes; if (min_free_kbytes < 128) - min_free_kbytes = 128; + min_free_kbytes = max(128, user_min_free_kbytes); if (min_free_kbytes > 262144) - min_free_kbytes = 262144; + min_free_kbytes = max(262144, user_min_free_kbytes); } else { pr_warn("min_free_kbytes is not updated to %d because user defined value %d is preferred\n", new_min_free_kbytes, user_min_free_kbytes); -- Michal Hocko SUSE Labs