From: Andrea Arcangeli <aarcange@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Khalid Aziz <khalid.aziz@oracle.com>,
Pravin Shelar <pshelar@nicira.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ben Hutchings <bhutchings@solarflare.com>,
Christoph Lameter <cl@linux.com>,
Johannes Weiner <jweiner@redhat.com>,
Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
Andi Kleen <andi@firstfloor.org>,
Minchan Kim <minchan@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: [PATCH 0/8] mm: hugetlbfs: fix hugetlbfs optimization v3
Date: Wed, 20 Nov 2013 18:51:08 +0100 [thread overview]
Message-ID: <1384969876-6374-1-git-send-email-aarcange@redhat.com> (raw)
Changes since v2:
1) optimize away a few more locked ops in the get_page/put_page
hugetlbfs and slab paths (see 3/8 and 4/8).
3/8 is the least trivial addition to the series as we now are
running PageSlab and PageHeadHuge on random page structure without
holding any reference count on this. A smp_rmb() if any of the two
checks succeeds is what is supposed to make it safe doing so and
it's lighter weight than get_page_unless_zero (hence the supposed
optimization out of it). 3/8 makes no difference whatsoever to the
speed of the THP case. It's unclear if 3/8 is worth it but it seems
every bit is affecting performance for directio over hugetlbfs with
>8GB/sec storage devices so I thought of trying it. 4/8 is quite
self explanatory and it removes some smp_rmb which is not needed
with the current layout of the struct page.
2) two nice cleanups from Andrew
3) Removed the PageHeadHuge export as it's not needed right now
Andrea Arcangeli (6):
mm: hugetlbfs: fix hugetlbfs optimization
mm: hugetlb: use get_page_foll in follow_hugetlb_page
mm: hugetlbfs: move the put/get_page slab and hugetlbfs optimization
in a faster path
mm: thp: optimize compound_trans_huge
mm: tail page refcounting optimization for slab and hugetlbfs
mm/hugetlb.c: defer PageHeadHuge() symbol export
Andrew Morton (2):
mm/hugetlb.c: simplify PageHeadHuge() and PageHuge()
mm/swap.c: reorganize put_compound_page()
include/linux/huge_mm.h | 23 ++++
include/linux/mm.h | 32 +++++-
mm/hugetlb.c | 20 +++-
mm/internal.h | 3 +-
mm/swap.c | 284 +++++++++++++++++++++++++++++-------------------
5 files changed, 240 insertions(+), 122 deletions(-)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2013-11-20 17:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-20 17:51 Andrea Arcangeli [this message]
2013-11-20 17:51 ` [PATCH 1/8] mm: hugetlbfs: fix hugetlbfs optimization Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 2/8] mm: hugetlb: use get_page_foll in follow_hugetlb_page Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 3/8] mm: hugetlbfs: move the put/get_page slab and hugetlbfs optimization in a faster path Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 4/8] mm: thp: optimize compound_trans_huge Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 5/8] mm: tail page refcounting optimization for slab and hugetlbfs Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 6/8] mm/hugetlb.c: simplify PageHeadHuge() and PageHuge() Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 7/8] mm/swap.c: reorganize put_compound_page() Andrea Arcangeli
2013-11-20 17:51 ` [PATCH 8/8] mm/hugetlb.c: defer PageHeadHuge() symbol export Andrea Arcangeli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1384969876-6374-1-git-send-email-aarcange@redhat.com \
--to=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=bhutchings@solarflare.com \
--cc=cl@linux.com \
--cc=gregkh@linuxfoundation.org \
--cc=jweiner@redhat.com \
--cc=khalid.aziz@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=minchan@kernel.org \
--cc=pshelar@nicira.com \
--cc=riel@redhat.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).