Re: [v5] mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected by khugepaged

From: Mike Kravetz
Date: Wed Sep 30 2020 - 18:05:31 EST


On 9/30/20 1:47 PM, Vijay Balakrishna wrote:
> On 9/30/2020 11:20 AM, Mike Kravetz wrote:
>> On 9/29/20 9:49 AM, Vijay Balakrishna wrote:
>>
>> Sorry for jumping in so late. Should we use this as an opportunity to
>> also fix up the messages logged when (re)calculating mfk? They are wrong
>> and could be quite confusing.
>
>
> Sure. Please share your thoughts regarding appropriate message. Here is what I'm thinking
>
> pr_warn("min_free_kbytes is not updated to %d because current value %d is preferred\n", new_min_free_kbytes, min_free_kbytes);
>
> If above message is reasonable I can post a new revision (v6).

Just considering the below example,

>> For example consider the following sequence
>> of operations and corresponding log messages produced.
>>
>> Freshly booted VM with 2 nodes and 8GB memory:
>> # cat /proc/sys/vm/min_free_kbytes
>> 90112
>> # echo 90000 > /proc/sys/vm/min_free_kbytes
>> # cat /proc/sys/vm/min_free_kbytes
>> 90000
>> # echo 0 > /sys/devices/system/node/node1/memory56/online
>> [ 135.099947] Offlined Pages 32768
>> [ 135.102362] min_free_kbytes is not updated to 11241 because user defined value 90000 is preferred

I am not sure if there is any value in printing the above line. Especially
in this context as it becomes obsolete with the printing of the next line.

>> [ 135.109070] khugepaged: raising min_free_kbytes from 90000 to 90112 to help t
>> ransparent hugepage allocations

IMO, the above line is the only one that should be output as a result of the
recalculation.

I guess that brings up the question of 'should we continue to track the user
defined value if we overwrite it?". If we quit tracking it may help with the
next message.

>> # cat /proc/sys/vm/min_free_kbytes
>> 90112
>> # echo 1 > /sys/devices/system/node/node1/memory56/online
>> [ 231.656075] min_free_kbytes is not updated to 11334 because user defined value 90000 is preferred

I do not see any value in this line of output. Neither value (11334 or 90000)
is actually of use. We did not recalculate/change mfk. Perhaps no output is
necessary in this case?

>> # cat /proc/sys/vm/min_free_kbytes
>> 90112

All this may be out of scope for this patch and done with a update. However,
I think it is something that should be considered.
--
Mike Kravetz