On Mon, 20 Mar 2017, Huang, Ying wrote: > From: Huang Ying <ying.hu...@intel.com> > > 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 use kvzalloc() which > will try kzalloc() firstly, and fallback to vzalloc() if kzalloc() > failed. >
As questioned in -v1 of this patch, what is the benefit of directly compacting and reclaiming memory for high-order pages by first preferring kmalloc() if this does not require contiguous memory?