On Wed, 17 Nov 2010, Christoph Hellwig wrote: > As Dave mentioned XFS also needs GFP_NOFS allocations in the low-level > vmap machinery, which is shared with vmalloc. > Ok, so vm_map_ram() probably needs to be modified to allow gfp_t to be passed in after the pte wrappers are in place that can be used to avoid the hard-wired GFP_KERNEL in arch code (Ricardo is working on that, I believe?); once that's done, it's trivial to pass the gfp_t for xfs to lower-level vmalloc code to allocate the necessary vmap_block, vmap_area, and radix tree data structures from the slab allocator (they are all order-0, at least). I think the ultimate solution will be able to allow GFP_NOFS to be passed into things like vm_map_ram() and __vmalloc() and then try to avoid new additions and fix up the callers later, if possible, for the eventual removal of all gfp_t formals from the vmalloc layer. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>