Skip to content

powerpc/mm/slice: improve slice speed and stack use

Nicholas Piggin linuxppc-dev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest10 patches 3 repliesIn review
  2. v110 patches 20 repliesApplied

Changes in v2 from the cover letter

- Fixed a couple of bugs and compile errors on 8xx.
- Accounted for all Christophe's review feedback hopefully.
- Got rid of unrelated "cleanup" hunks, and split one to its own patch.
- Dropped patch to dynamically limit bitmap operations. This may be revisited after Aneesh's 4TB patches.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10powerpc/mm/slice: Simplify and optimise slice context initialisationarch/powerpc/include/asm/slice.h arch/powerpc/mm/mmu_context_book3s64.c arch/powerpc/mm/mmu_context_nohash.c +1 more+23 -711 reply
2/10powerpc/mm/slice: tidy lpsizes and hpsizes update loopsarch/powerpc/mm/slice.c+12 -100 replies
3/10powerpc/mm/slice: pass pointers to struct slice_mask where possiblearch/powerpc/mm/slice.c+45 -390 replies
4/10powerpc/mm/slice: implement a slice mask cachearch/powerpc/include/asm/book3s/64/mmu.h arch/powerpc/include/asm/mmu-8xx.h arch/powerpc/mm/slice.c+98 -420 replies
5/10powerpc/mm/slice: implement slice_check_range_fitsarch/powerpc/mm/slice.c+34 -280 replies
6/10powerpc/mm/slice: Switch to 3-operand slice bitops helpersarch/powerpc/mm/slice.c+23 -150 replies
7/10powerpc/mm/slice: remove dead codearch/powerpc/mm/slice.c+0 -60 replies
8/10powerpc/mm/slice: Use const pointers to cached slice masks where possiblearch/powerpc/mm/slice.c+38 -410 replies
9/10powerpc/mm/slice: remove radix calls to the slice codearch/powerpc/include/asm/hugetlb.h arch/powerpc/mm/hugetlbpage.c arch/powerpc/mm/slice.c+12 -180 replies
10/10powerpc/mm/slice: use the dynamic high slice size to limit bitmap operationsarch/powerpc/mm/slice.c+45 -302 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 00/10] powerpc/mm/slice: improve slice speed and stack use

Overall on POWER8, this series increases vfork+exec+exit microbenchmark rate by 15.6%, and mmap+munmap rate by 81%. Slice code/data size is reduced by 1kB, and max stack overhead through slice_get_unmapped_area call goes rom 992 to 448 bytes. The cost is 288 bytes added to the mm_context_t per mm for the slice masks on Book3S.

Since v1:
- Fixed a couple of bugs and compile errors on 8xx.
- Accounted for all Christophe's review feedback hopefully.
- Got rid of unrelated "cleanup" hunks, and split one to its own patch.
- Dropped patch to dynamically limit bitmap operations. This may be revisited after Aneesh's 4TB patches.

Thanks,
Nick

Nicholas Piggin (10):
powerpc/mm/slice: Simplify and optimise slice context initialisation powerpc/mm/slice: tidy lpsizes and hpsizes update loops powerpc/mm/slice: pass pointers to struct slice_mask where possible powerpc/mm/slice: implement a slice mask cache powerpc/mm/slice: implement slice_check_range_fits powerpc/mm/slice: Switch to 3-operand slice bitops helpers powerpc/mm/slice: remove dead code
powerpc/mm/slice: Use const pointers to cached slice masks where
possible
powerpc/mm/slice: remove radix calls to the slice code powerpc/mm/slice: use the dynamic high slice size to limit bitmap
operations

 arch/powerpc/include/asm/book3s/64/mmu.h |  18 ++
 arch/powerpc/include/asm/hugetlb.h       |   7 +-
 arch/powerpc/include/asm/mmu-8xx.h       |  10 +
 arch/powerpc/include/asm/slice.h         |   8 +-
 arch/powerpc/mm/hugetlbpage.c            |   6 +-
 arch/powerpc/mm/mmu_context_book3s64.c   |   9 +-
 arch/powerpc/mm/mmu_context_nohash.c     |   5 +-
 arch/powerpc/mm/slice.c                  | 461 ++++++++++++++++---------------
 8 files changed, 277 insertions(+), 247 deletions(-)
Signature · 1 line
2.16.1