[PATCH 0/7] Kill PF_MEMALLOC abuse

From: KOSAKI Motohiro
Date: Tue Nov 17 2009 - 02:16:16 EST



PF_MEMALLOC have following effects.
(1) Ignore zone watermark
(2) Don't call reclaim although allocation failure, instead return ENOMEM
(3) Don't invoke OOM Killer
(4) Don't retry internally in page alloc

Some subsystem paid attention (1) only, and start to use PF_MEMALLOC abuse.
But, the fact is, PF_MEMALLOC is the promise of "I have lots freeable memory.
if I allocate few memory, I can return more much meory to the system!".
Non MM subsystem must not use PF_MEMALLOC. Memory reclaim
need few memory, anyone must not prevent it. Otherwise the system cause
mysterious hang-up and/or OOM Killer invokation.

if many subsystem will be able to use emergency memory without any
usage rule, it isn't for emergency. it can become empty easily.

Plus, characteristics (2)-(4) mean PF_MEMALLOC don't fit to general
high priority memory allocation.

Thus, We kill all PF_MEMALLOC usage in no MM subsystem.



--
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/