Messages in this thread | | | Date | Thu, 28 Jan 2010 00:16:36 +0000 | From | Alan Cox <> | Subject | Re: [PATCH v3] oom-kill: add lowmem usage aware oom kill handling |
| |
> Now, /proc/<pid>/oom_score and /proc/<pid>/oom_adj are used by servers.
And embedded, and some desktops (including some neat experimental hacks where windows slowly get to be bigger bigger oom targes the longer they've been non-focussed)
> For my customers, I don't like oom black magic. I'd like to recommend to > use memcg, of course ;) But lowmem oom cannot be handled by memcg, well. > So I started from this.
I can't help feeling this is the wrong approach. IFF we are running out of low memory pages then killing stuff for that reason is wrong to begin with except in extreme cases and those extreme cases are probably also cases the kill won't help.
If we have a movable user page (even an mlocked one) then if there is space in other parts of memory (ie the OOM is due to a single zone problem) we should *never* be killing in the first place, we should be moving the page. The mlock case is a bit hairy but the non mlock case is exactly the same sequence of operations as a page out and page in somewhere else skipping the widdling on the disk bit in the middle.
There are cases we can't do that - eg if the kernel has it pinned for DMA, but in that case OOM isn't going to recover the page either - at least not until the DMA or whatever unpins it (at which point you could just move it).
Am I missing something fundamental here ?
Alan
| |