Messages in this thread | | | Subject | Re: [PATCH] oom killer (Core) | From | Thomas Gleixner <> | Date | Sat, 04 Dec 2004 22:02:03 +0100 |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |