On Fri, 17 Mar 2017, Huang, Ying wrote: > From: Huang Ying <ying.huang@xxxxxxxxx> > > Now vzalloc() is used in swap code to allocate various data > structures, such as swap cache, swap slots cache, cluster info, etc. > Because the size may be too large on some system, so that normal > kzalloc() may fail. But using kzalloc() has some advantages, for > example, less memory fragmentation, less TLB pressure, etc. So change > the data structure allocation in swap code to try to use kzalloc() > firstly, and fallback to vzalloc() if kzalloc() failed. > I'm concerned about preferring kzalloc() with __GFP_RECLAIM since the page allocator will try to do memory compaction for high-order allocations when the vzalloc() would have succeeded immediately. Do we necessarily want to spend time doing memory compaction and direct reclaim for contiguous memory if it's not needed? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>