linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/5] rewriting SLB miss handler in C
@ 2018-08-20  9:41 Nicholas Piggin
  2018-08-20  9:41 ` [RFC PATCH 1/5] powerpc/64s/hash: convert SLB miss handlers to C Nicholas Piggin
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Nicholas Piggin @ 2018-08-20  9:41 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Nicholas Piggin, Aneesh Kumar K . V

I'd like to rewrite the SLB miss handlers in C for maintainability
and ability to more easily extend the code.

I have not benchmarked it yet but obviously setting up the stack
and going to C code rather than carefully hand optimised assembly
is likely to slow down SLB misses by a reasonable amount. So I've
started looked at a few basic optimisations we can make to justify
this change. There is still more that can be done, but SLB misses
have been reduced significantly, and with more tuning and optimization
I think we could bring it down quite a bit more.

I'm trying to get the first patch solid, and it is the big change so
would really appreciate review and commets on that. Other patches are
not quite polished but comments would still be welcome on those (keep
in mind they are obviously not all polished).

Thanks,
Nick

Nicholas Piggin (5):
  powerpc/64s/hash: convert SLB miss handlers to C
  powerpc/64s/hash: remove user SLB data from the paca
  powerpc/64s/hash: remove the first vmalloc segment from the bolted SLB
  powerpc/64s/hash: Add SLB allocation bitmaps
  powerpc/64s/hash: Add a SLB preload cache

 arch/powerpc/include/asm/asm-prototypes.h     |   2 +
 arch/powerpc/include/asm/book3s/64/mmu-hash.h |   3 +-
 arch/powerpc/include/asm/paca.h               |  19 +-
 arch/powerpc/include/asm/thread_info.h        |   4 +
 arch/powerpc/kernel/asm-offsets.c             |   9 -
 arch/powerpc/kernel/exceptions-64s.S          | 200 ++-------
 arch/powerpc/kernel/paca.c                    |  21 -
 arch/powerpc/kernel/process.c                 |   6 +
 arch/powerpc/mm/Makefile                      |   2 +-
 arch/powerpc/mm/hash_utils_64.c               |  46 +--
 arch/powerpc/mm/mmu_context.c                 |   3 +-
 arch/powerpc/mm/mmu_context_book3s64.c        |  10 +-
 arch/powerpc/mm/slb.c                         | 382 +++++++++++-------
 arch/powerpc/mm/slb_low.S                     | 338 ----------------
 arch/powerpc/mm/slice.c                       |  29 +-
 arch/powerpc/xmon/xmon.c                      |   2 +-
 16 files changed, 328 insertions(+), 748 deletions(-)
 delete mode 100644 arch/powerpc/mm/slb_low.S

-- 
2.17.0

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

end of thread, other threads:[~2018-08-22 10:11 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-20  9:41 [RFC PATCH 0/5] rewriting SLB miss handler in C Nicholas Piggin
2018-08-20  9:41 ` [RFC PATCH 1/5] powerpc/64s/hash: convert SLB miss handlers to C Nicholas Piggin
2018-08-20 10:08   ` Nicholas Piggin
2018-08-21  6:46   ` Michael Ellerman
2018-08-22  3:17     ` Nicholas Piggin
2018-08-22 10:11       ` Michael Ellerman
2018-08-20  9:41 ` [RFC PATCH 2/5] powerpc/64s/hash: remove user SLB data from the paca Nicholas Piggin
2018-08-20  9:41 ` [RFC PATCH 3/5] powerpc/64s/hash: remove the first vmalloc segment from the bolted SLB Nicholas Piggin
2018-08-20  9:41 ` [RFC PATCH 4/5] powerpc/64s/hash: Add SLB allocation bitmaps Nicholas Piggin
2018-08-20  9:42 ` [RFC PATCH 5/5] powerpc/64s/hash: Add a SLB preload cache Nicholas Piggin

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