On Tue, 28 Sep 2021 20:23:17 +0800 Liangcai Fan <liangcaifan19@xxxxxxxxx> wrote: > The 'min_free_kbytes' and 'user_min_free_kbytes' maybe inconsistent > after a few times of memory hotplug. What does "inconsistent" mean here? Please describe the problem in more detail, perhaps with examples. > When 'new_min_free_kbytes' is not larger than 'user_min_free_kbytes', > set 'min_free_kbytes' with 'user_min_free_kbytes' rather than leave > it as the 'new_min_free_kbytes' calculated for the last time. > > Signed-off-by: Liangcai Fan <liangcaifan19@xxxxxxxxx> > Cc: Chunyan Zhang <zhang.lyra@xxxxxxxxx> > --- > mm/page_alloc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index b37435c..ddf9dc1 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -8467,6 +8467,12 @@ int __meminit init_per_zone_wmark_min(void) > if (min_free_kbytes > 262144) > min_free_kbytes = 262144; > } else { > + /* > + * Set 'min_free_kbytes' with 'user_min_free_kbytes' rather than > + * leave it as the 'new_min_free_kbytes' calculated for the last > + * time. > + */ This comment explains what the code is doing, which is almost always obvious from reading the code! A better comment will describe *why* the code is doing whatever is does. "why, not what", please. > + min_free_kbytes = user_min_free_kbytes; > 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); > }