Messages in this thread | | | Date | Wed, 23 Jun 2004 15:31:46 -0700 | From | William Lee Irwin III <> | Subject | Re: [oom]: [0/4] fix OOM deadlock running OAST |
| |
William Lee Irwin III <wli@holomorphy.com> wrote: >> While running OAST to test 2.6's maximum client capacity, the kernel >> deadlocked instead of properly OOM'ing. The obvious cause was the >> line if (nr_swap_pages > 0) in out_of_memory(), which fails to account >> for pinned allocations. This can't simply be removed.
On Wed, Jun 23, 2004 at 03:16:59PM -0700, Andrew Morton wrote: > It all seems like rather a lot of fuss. > It should be the case that zone->all_unreclaimable is set by the time this > happens. Did you consider feeding that into the oom-killing decision > instead?
The vast majority of all this are the couhters for reporting, which have no effect on functionality. The actual functional effect is achieved by two aspects: (a) passing __GFP_WIRED to __alloc_pages() and (b) passing __GFP_WIRED to out_of_memory(), which informs it not to perform the test if (nr_swap_pages > 0). I also made the small addition of removing wired pagecache from the LRU lists, which is performance, not correctness.
I'll resend with all reporting/counters and LRU bits ripped out if needed.
-- wli - 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/
| |