Re: [RFC] mm: show message when updating min_free_kbytes in thp

Dave Hansen
2014-01-02T23:48:46Z

On 01/02/2014 03:36 PM, David Rientjes wrote:
> On Thu, 2 Jan 2014, Dave Hansen wrote:
>> Let's say enabling THP made my system behave badly. How do I get it
>> back to the state before I enabled THP? The user has to have gone and
>> recorded what their min_free_kbytes was before turning THP on in order
>> to get it back to where it was. Folks also have to either plan in
>> advance (archiving *ALL* the sysctl settings), somehow *know* somehow
>> that THP can affect min_free_kbytes, or just plain be clairvoyant.
>>
> How is this different from some initscript changing the value? We should
> either specify that min_free_kbytes changed from its default, which may
> change from kernel version to kernel version itself, in all cases or just
> leave it as it currently is. There's no reason to special-case thp in
> this way if there are other ways to change the value.

Ummm.... It's different because one is the kernel changing it and the
other is userspace. If I wonder how the heck this got set:

kernel.core_pattern = |/usr/share/apport/apport %p %s %c

I do:

$ grep -r /usr/share/apport/apport /etc/
/etc/init/apport.conf: /usr/share/apport/apportcheckresume || true
/etc/init/apport.conf: echo "|/usr/share/apport/apport %p %s %c" >
/proc/sys/kernel/core_pattern

There's usually a record of how it got set, somewhere, if it happened
from userspace. Printing messages like this in the kernel does the
same: it gives the sysadmin a _chance_ of finding out what happened.
Doing it silently (like it's done today) isn't very nice.

You're arguing that "if userspace can set it arbitrarily, then the
kernel should be able to do it silently too." That's nonsense.

It would be nice to have tracepoints explicitly for tracing who messed
with sysctl values, too.