Re: [RFC 2/9] Use NOMEMALLOC reclaim to allow reclaim ifPF_MEMALLOC is set

From: Nikita Danilov
Date: Thu Aug 23 2007 - 06:12:46 EST


Peter Zijlstra writes:

[...]

> My idea is to extend kswapd, run cpus_per_node instances of kswapd per
> node for each of GFP_KERNEL, GFP_NOFS, GFP_NOIO. (basically 3 kswapds
> per cpu)
>
> whenever we would hit direct reclaim, add ourselves to a special
> waitqueue corresponding to the type of GFP and kick all the
> corresponding kswapds.

There are two standard objections to this:

- direct reclaim was introduced to reduce memory allocation latency,
and going to scheduler kills this. But more importantly,

- it might so happen that _all_ per-cpu kswapd instances are
blocked, e.g., waiting for IO on indirect blocks, or queue
congestion. In that case whole system stops waiting for IO to
complete. In the direct reclaim case, other threads can continue
zone scanning.

Nikita.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/