Skip to content
  • Andrea Arcangeli's avatar
    mm: thp: optimize compound_trans_huge · ca641514
    Andrea Arcangeli authored
    
    
    Currently we don't clobber page_tail->first_page during split_huge_page,
    so compound_trans_head can be set to compound_head without adverse
    effects, and this mostly optimizes away a smp_rmb.
    
    It looks worthwhile to keep around the implementation that doesn't relay
    on page_tail->first_page not to be clobbered, because it would be
    necessary if we'll decide to enforce page->private to zero at all times
    whenever PG_private is not set, also for anonymous pages.  For anonymous
    pages enforcing such an invariant doesn't matter as anonymous pages
    don't use page->private so we can get away with this microoptimization.
    
    Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
    Cc: Khalid Aziz <khalid.aziz@oracle.com>
    Cc: Pravin Shelar <pshelar@nicira.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Ben Hutchings <bhutchings@solarflare.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Johannes Weiner <jweiner@redhat.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ca641514