• Alexander Duyck's avatar
    mm/page_reporting: rotate reported pages to the tail of the list · 02cf8719
    Alexander Duyck authored
    Rather than walking over the same pages again and again to get to the
    pages that have yet to be reported we can save ourselves a significant
    amount of time by simply rotating the list so that when we have a full
    list of reported pages the head of the list is pointing to the next
    non-reported page.  Doing this should save us some significant time when
    processing each free list.
    
    This doesn't gain us much in the standard case as all of the non-reported
    pages should be near the top of the list already.  However in the case of
    page shuffling this results in a noticeable improvement.  Below are the
    will-it-scale page_fault1 w/ THP numbers for 16 tasks with and without
    this patch.
    
    Without:
    tasks   processes       processes_idle  threads         threads_idle
    16      8093776.25      0.17            5393242.00      38.20
    
    With:
    tasks   processes       processes_idle  threads         threads_idle
    16      8283274.75      0.17            5594261.00      38.15
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarMel Gorman <mgorman@techsingularity.net>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Luiz Capitulino <lcapitulino@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Nitesh Narayan Lal <nitesh@redhat.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Pankaj Gupta <pagupta@redhat.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Wei Wang <wei.w.wang@intel.com>
    Cc: Yang Zhang <yang.zhang.wz@gmail.com>
    Cc: wei qi <weiqi4@huawei.com>
    Link: http://lkml.kernel.org/r/20200211224708.29318.16862.stgit@localhost.localdomainSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    02cf8719
page_reporting.c 8.96 KB