Messages in this thread | | | Date | Thu, 12 Apr 2001 16:43:10 +0100 (BST) | From | Hugh Dickins <> | Subject | Re: scheduler went mad? |
| |
On Thu, 12 Apr 2001 Valdis.Kletnieks@vt.edu wrote: > I've seen the same scenario about 2-3 times a week. kswapd and one or > more processes all CPU bound, totalling to 100%. I've had 'esdplay' hung > on several occasions, and 2-3 times it's been xscreensaver (3.29) hung. > The 'hung' processes are consistently immune to kill -9, even as root, which > indicates to me that they're hung inside a kernel call or something. [snip] > __alloc_pages: 4-order allocation failed. > __alloc_pages: 3-order allocation failed. [snip] > In page_alloc.c, __alloc_pages() has a 'goto try_again;' which will > cause it to loop around and try to get more memory. I'm wondering if [snip] > I'm running the 2.4.3 kernel
2.4.3-pre6 quietly made a very significant change there: it used to say "if (!order) goto try_again;" and now just says "goto try_again;". Which seems very sensible since __GFP_WAIT is set, but I do wonder if it was a safe change. We have mechanisms for freeing pages (order 0), but whether any higher orders come out of that is a matter of chance.
(But of course, this may not be related to your problem, and your "N-order allocation failed" messages must have been from other instances than stuck in this loop.)
Hugh
- 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/
| |