Messages in this thread |  | | Date | Fri, 25 May 2001 20:29:38 -0400 (EDT) | From | Ben LaHaise <> | Subject | Re: [with-PATCH-really] highmem deadlock removal, balancing & cleanup |
| |
On Fri, 25 May 2001, Linus Torvalds wrote:
> So I think I'll buy some experimentation. That HIGHMEM change is too ugly > to live, though, I'd really like to hear more about why something that > ugly is necessary.
Highmem systems currently manage to hang themselves quite completely upon running out of memory in the normal zone. One of the failure modes is looping in __alloc_pages from get_unused_buffer_head to map a dirty page. Another results in looping on allocation of a bounce page for writing a dirty highmem page back to disk.
Also, note that the current highmem design for bounce buffers is inherently unstable. Because all highmem pages that are currently in flight must have bounce buffers allocated for them, we require a huge amount of bounce buffers to guarentee progress while submitting io. The -ac kernels have a patch from Ingo that provides private pools for bounce buffers and buffer_heads. I went a step further and have a memory reservation patch that provides for memory pools being reserved against a particular zone. This is needed to prevent the starvation that irq allocations can cause.
Some of these cleanups are 2.5 fodder, but we really need something in 2.4 right now, so...
-ben
- 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/
|  |