We are hopefully going to get rid of OBD_ALLOC_LARGE() as well, though. It's simple enough to write a function: void *obd_zalloc(size_t size) { if (size > 4 * PAGE_CACHE_SIZE) return vzalloc(size); else return kmalloc(size, GFP_NOFS); } Except, huh? Shouldn't we be using GFP_NOFS for the vzalloc() side? There was some discussion of that GFP_NOFS was a bit buggy back in 2010 (http://marc.info/?l=linux-mm&m=128942194520631&w=4) but the current lustre code doesn't try to pass GFP_NOFS. Then it's simple enough to change OBD_FREE_LARGE() to kvfree(). Also it's weird that only the lustre people have thought of this trick to allocate big chunks of RAM and no one else has. What would happen if we just change vmalloc() so it worked this way for everyone? regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html