Messages in this thread |  | | Date | Fri, 7 Sep 2001 09:52:31 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: __GFP_HIGH ignored? |
| |
On Sun, 2 Sep 2001, Daniel Phillips wrote: > > __GFP_HIGH is apparently ignored now. Its intended function is performed > instead by PF_MEMALLOC. Should we take it out?
No. We may have a use for it in the future, especially as PF_MEMALLOC really means something completely different.
I stronly suspect that the current PF_MEMALLOC handling is much too strict: instead of trating a PF_MEMALLOC as a atomic high-priority thing, we could treat it as something like
/* * recursive call? Make sure to strip out anything * that could cause deadlocks and further recursion.. */ if (current->flags & PF_MEMALLOC) { gfp_mask &= ~(__GFP_HIGHIO | __GFP_FS); page_launder(gfp_mask); page = RMQUEUE(..) if (page) return page; goto repeat; }
(Yeah, not exactly like the above, but you get the idea - allow a very limited form of recursion, and allow a PF_MEMALLOC to always use the reserves - together they should make us better at handling the current issues with bounce buffers, for example).
It may be that we'll never need __GFP_HIGH, but let's keep it - it does have semantics that make some amount of sense.
Linus
- 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/
|  |