Re: [PATCH] mm, compaction: Indicate when compaction is manually triggered by sysctl

From: David Rientjes
Date: Sun May 10 2020 - 21:25:02 EST


On Fri, 8 May 2020, Guilherme Piccoli wrote:

> On Fri, May 8, 2020 at 3:31 PM David Rientjes <rientjes@xxxxxxxxxx> wrote:
> > It doesn't make sense because it's only being done here for the entire
> > system, there are also per-node sysfs triggers so you could do something
> > like iterate over the nodemask of all nodes with memory and trigger
> > compaction manually and then nothing is emitted to the kernel log.
> >
> > There is new statsfs support that Red Hat is proposing that can be used
> > for things like this. It currently only supports KVM statistics but
> > adding MM statistics is something that would be a natural extension and
> > avoids polluting both the kernel log and /proc/vmstat.
>
> Thanks for the review. Is this what you're talking about [0] ? Very interesting!
>

Exactly.

> Also, I agree about the per-node compaction, it's a good point. But at
> the same time, having the information on the number of manual
> compaction triggered is interesting, at least for some users. What if
> we add that as a per-node stat in zoneinfo?
>

The kernel log is not preferred for this (or drop_caches, really) because
the amount of info can causing important information to be lost. We don't
really gain anything by printing that someone manually triggered
compaction; they could just write to the kernel log themselves if they
really wanted to. The reverse is not true: we can't suppress your kernel
message with this patch.

Instead, a statsfs-like approach could be used to indicate when this has
happened and there is no chance of losing events because it got scrolled
off the kernel log. It has the added benefit of not requiring the entire
log to be parsed for such events.