Re: [PATCH] oom killer (Core)

From: Thomas Gleixner
Date: Sat Dec 04 2004 - 16:03:43 EST


On Sat, 2004-12-04 at 19:33 +0100, Thomas Gleixner wrote:
>
> I added some debug output and it calls __alloc_pages a couple of times.
> All those calls get out from the first goto got_pg as expected.
>
> I will try to add some more debug later
>

Your assumption that reverting the

- might_sleep_if(wait);
+ if (wait)
+ cond_resched();

change does solve the problem is correct. Looking at the diffs its the
only change which can have any influence at this point.

Mats. I don't understand why this did not work for you. The change has
to be reverted to the original line "might_sleep_if(wait)" !

Scheduling in this init stage causes the breakage.
might_sleep_if() is a nop and only does a state check when compiled with
CONFIG_DEBUG_SPINLOCK_SLEEP=y, but it does neither sleep nor schedule.

It then works so far except that it kills the wrong process (sshd), but
I did expect that from the previous experience.

There is no multi kill or other strange things happening. I tested it
with hackbench and the real application _after_ adding my "whom to kill
patch" on top.

Looks much better now.

Can you agree to add the selection patch, which takes the multi child
forking process into account ? I don't explain again why it makes
sense :)

tglx


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