• Tim Chen's avatar
    mm/swap: allocate swap slots in batches · 36005bae
    Tim Chen authored
    Currently, the swap slots are allocated one page at a time, causing
    contention to the swap_info lock protecting the swap partition on every
    page being swapped.
    
    This patch adds new functions get_swap_pages and scan_swap_map_slots to
    request multiple swap slots at once.  This will reduces the lock
    contention on the swap_info lock.  Also scan_swap_map_slots can operate
    more efficiently as swap slots often occurs in clusters close to each
    other on a swap device and it is quicker to allocate them together.
    
    Link: http://lkml.kernel.org/r/9fec2845544371f62c3763d43510045e33d286a6.1484082593.git.tim.c.chen@linux.intel.comSigned-off-by: default avatarTim Chen <tim.c.chen@linux.intel.com>
    Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
    Cc: Aaron Lu <aaron.lu@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Hillf Danton <hillf.zj@alibaba-inc.com>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Jonathan Corbet <corbet@lwn.net> escreveu:
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Shaohua Li <shli@kernel.org>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    36005bae
swapfile.c 83.2 KB