• Mel Gorman's avatar
    mm: pagevec: defer deciding which LRU to add a page to until pagevec drain time · 13f7f789
    Mel Gorman authored
    mark_page_accessed() cannot activate an inactive page that is located on
    an inactive LRU pagevec.  Hints from filesystems may be ignored as a
    result.  In preparation for fixing that problem, this patch removes the
    per-LRU pagevecs and leaves just one pagevec.  The final LRU the page is
    added to is deferred until the pagevec is drained.
    
    This means that fewer pagevecs are available and potentially there is
    greater contention on the LRU lock.  However, this only applies in the
    case where there is an almost perfect mix of file, anon, active and
    inactive pages being added to the LRU.  In practice I expect that we are
    adding stream of pages of a particular time and that the changes in
    contention will barely be measurable.
    Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
    Acked-by: default avatarRik van Riel <riel@redhat.com>
    Cc: Jan Kara <jack@suse.cz>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Cc: Alexey Lyahkov <alexey.lyashkov@gmail.com>
    Cc: Andrew Perepechko <anserper@ya.ru>
    Cc: Robin Dong <sanbai@taobao.com>
    Cc: Theodore Tso <tytso@mit.edu>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Bernd Schubert <bernd.schubert@fastmail.fm>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    13f7f789
swap.c 23.5 KB