Reserved memory for highmem bouncing

Marcelo Tosatti (marcelo@conectiva.com.br)
Wed, 28 Feb 2001 02:02:16 -0300 (BRT)


Hi Ingo,

I have a question about the highmem page IO deadlock fix which is in
2.4.2-ac. (the emergency memory thing)

The old create_bounce code used to set PF_MEMALLOC on the task flags and
call wakeup_bdflush(1) in case GFP_BUFFER page allocation failed. That was
broken because flush_dirty_buffers() could try to flush a buffer pointing
to highmem page, which would end up in create_bounce again, but with
PF_MEMALLOC.

Have you tried to make flush_dirty_buffers() only flush buffers pointing
to lowmem pages in case the caller wants it to do so?

This way you can call flush_dirty_buffers() with the guarantee you're
going to free useful (lowmem) memory. This also throttles high mem writes
giving priority to low mem ones.

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