Thread (8 messages) 8 messages, 5 authors, 2017-03-08

Re: [LSF/MM TOPIC] wmark based pro-active compaction

From: Vlastimil Babka <hidden>
Date: 2017-01-06 08:57:09

On 01/05/2017 11:27 AM, Michal Hocko wrote:
On Thu 05-01-17 10:53:59, Vlastimil Babka wrote:
quoted
quoted
quoted
Therefore I believe we need a watermark based pro-active compaction
which would keep the background compaction busy as long as we have
less pages of the configured order.
Again, configured by what, admin? I would rather try to avoid tunables
here, if possible. While THP is quite well known example with stable
order, the pressure for other orders is rather implementation specific
(drivers, SLAB/SLUB) and may change with kernel versions (e.g. virtually
mapped stacks, although that example is about non-costly order). Would
the admin be expected to study the implementation to know which orders
are needed, or react to page allocation failure reports? Neither sounds
nice.
That is a good question but I expect that there are more users than THP
which use stable orders. E.g. networking stack tends to depend on the
packet size. A tracepoint with some histogram output would tell us what
is the requested orders distribution.
Maybe, but there might be also multiple users of the same order but
different "importance"...
quoted
quoted
quoted
kcompactd should wake up
periodically, I think, and check for the status so that we can catch
the fragmentation before we get low on memory.
The interface could look something like:
/proc/sys/vm/compact_wmark
time_period order count
IMHO it would be better if the system could auto-tune this, e.g. by
counting high-order alloc failures/needs for direct compaction per order
between wakeups, and trying to bring them to zero.
auto-tunning is usually preferable I am just wondering how the admin can
tell what is still the system load price he is willing to pay. I suspect
we will see growing number of opportunistic high order requests over
time and  auto tunning shouldn't try to accomodate with it without
any bounds.There is still some cost/benefit to be evaluated from the
system level point of view which I am afraid is hard to achive from the
kcompactd POV.
That's why I mentioned that importance should be judged somehow.
Opportunistic requests should be recognizable by their gfp flags, so
hopefully there's a way. I wouldn't mind some general tunable(s) to
express how much effort to give to "important" allocations and
opportunistic ones, but rather not in such implementation-detail form as
"time_period order count".

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help