summaryrefslogtreecommitdiffstats
path: root/mm/swap.c
diff options
context:
space:
mode:
authorAndrea Arcangeli <aarcange@redhat.com>2014-01-22 00:48:52 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2014-01-22 01:19:43 +0100
commitca641514f4056deee1fb2eb356e2c99b98718ade (patch)
treec702724c845aa8510c9f658a18d66a3447f86ba4 /mm/swap.c
parentmm: hugetlbfs: move the put/get_page slab and hugetlbfs optimization in a fas... (diff)
downloadlinux-ca641514f4056deee1fb2eb356e2c99b98718ade.tar.xz
linux-ca641514f4056deee1fb2eb356e2c99b98718ade.zip
mm: thp: optimize compound_trans_huge
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: Andrea 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/swap.c')
0 files changed, 0 insertions, 0 deletions