linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] mm, hugetlb: fixes and fault scalability
@ 2014-01-31 17:36 Davidlohr Bueso
  2014-01-31 17:36 ` [PATCH v2 1/6] mm, hugetlb: unify region structure handling Davidlohr Bueso
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Davidlohr Bueso @ 2014-01-31 17:36 UTC (permalink / raw)
  To: akpm, iamjoonsoo.kim
  Cc: riel, mgorman, mhocko, aneesh.kumar, kamezawa.hiroyu, hughd,
	david, js1304, liwanp, n-horiguchi, dhillf, rientjes, davidlohr,
	aswin, scott.norton, linux-mm, linux-kernel

Changes from v1 (http://lkml.org/lkml/2014/1/26/219), based on feedback 
from Naoya Horiguchi:
- Dropped cleanup patches 6 & 7.

- Re did patch 3, fixing some potential use after free for new
  regions.

- Cleaned up patch 5.

- Added review tags.

This patchset resumes the work to improve the whole hugepage fault
scalability path. Previous efforts can be found here:

https://lkml.org/lkml/2013/7/26/299
https://lkml.org/lkml/2013/12/18/50

The latest attempt to address the big-fat hugetlb instantiation mutex by
removing the need for it altogether ended up having too much of an overhead
to consider and allow scalability. The discussion can be found at:
https://lkml.org/lkml/2014/1/3/244

This patchset is divided in three parts, where the first seven patches,
from Joonsoo, have been included and reviewed in previous patchsets. The 
last patch is the actual performance one.

Part 1. (1-3) Introduce new protection method for region tracking 
        data structure, instead of the hugetlb_instantiation_mutex. There
        is race condition when we map the hugetlbfs file to two different
        processes. To prevent it, we need to new protection method like
        as this patchset.

Part 2. (4-5) clean-up.

        These make code really simple, so these are worth to go into
        mainline separately.

Part 3 (6) Use a table of mutexes instead of a unique one, and allow
        faults to be handled in parallel. Benefits and caveats to this
        approach are in the patch.

All changes have passed the libhugetblfs test cases.
This patchset applies on top of Linus' current tree (3.13-e7651b81).

  mm, hugetlb: unify region structure handling
  mm, hugetlb: improve, cleanup resv_map parameters
  mm, hugetlb: fix race in region tracking
  mm, hugetlb: remove resv_map_put
  mm, hugetlb: use vma_resv_map() map types
  mm, hugetlb: improve page-fault scalability

 fs/hugetlbfs/inode.c    |  17 ++-
 include/linux/hugetlb.h |  10 ++
 mm/hugetlb.c            | 286 ++++++++++++++++++++++++++++++------------------
 3 files changed, 204 insertions(+), 109 deletions(-)

-- 
1.8.1.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-02-03  6:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-31 17:36 [PATCH v2 0/6] mm, hugetlb: fixes and fault scalability Davidlohr Bueso
2014-01-31 17:36 ` [PATCH v2 1/6] mm, hugetlb: unify region structure handling Davidlohr Bueso
2014-01-31 17:36 ` [PATCH v2 2/6] mm, hugetlb: improve, cleanup resv_map parameters Davidlohr Bueso
2014-01-31 17:36 ` [PATCH v2 3/6] mm, hugetlb: fix race in region tracking Davidlohr Bueso
2014-01-31 17:36 ` [PATCH v2 4/6] mm, hugetlb: remove resv_map_put Davidlohr Bueso
2014-01-31 17:36 ` [PATCH v2 5/6] mm, hugetlb: use vma_resv_map() map types Davidlohr Bueso
2014-01-31 17:36 ` [PATCH v2 6/6] mm, hugetlb: improve page-fault scalability Davidlohr Bueso
2014-01-31 21:01   ` Andrew Morton
2014-01-31 21:52     ` Davidlohr Bueso
2014-02-03  6:41   ` Joonsoo Kim

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).