On Fri, 23 Jan 2026 at 15:39, Mukesh Kumar Chaurasiya <[email protected]> wrote: > > Adding support for the generic irq entry/exit handling for PowerPC. The > goal is to bring PowerPC in line with other architectures that already > use the common irq entry infrastructure, reducing duplicated code and > making it easier to share future changes in entry/exit paths. > > This is slightly tested of ppc64le and ppc32. > > The performance benchmarks are below: > > perf bench syscall usec/op (-ve is improvement) > > | Syscall | Base | test | change % | > | ------- | ----------- | ----------- | -------- | > | basic | 0.093543 | 0.093023 | -0.56 | > | execve | 446.557781 | 450.107172 | +0.79 | > | fork | 1142.204391 | 1156.377214 | +1.24 | > | getpgid | 0.097666 | 0.092677 | -5.11 | > > perf bench syscall ops/sec (+ve is improvement) > > | Syscall | Base | New | change % | > | ------- | -------- | -------- | -------- | > | basic | 10690548 | 10750140 | +0.56 | > | execve | 2239 | 2221 | -0.80 | > | fork | 875 | 864 | -1.26 | > | getpgid | 10239026 | 10790324 | +5.38 | > > > IPI latency benchmark (-ve is improvement) > > | Metric | Base (ns) | New (ns) | % Change | > | -------------- | ------------- | ------------- | -------- | > | Dry run | 583136.56 | 584136.35 | 0.17% | > | Self IPI | 4167393.42 | 4149093.90 | -0.44% | > | Normal IPI | 61769347.82 | 61753728.39 | -0.03% | > | Broadcast IPI | 2235584825.02 | 2227521401.45 | -0.36% | > | Broadcast lock | 2164964433.31 | 2125658641.76 | -1.82% | > > > Thats very close to performance earlier with arch specific handling. > > Tests done: > - Build and boot on ppc64le pseries. > - Build and boot on ppc64le powernv8 powernv9 powernv10. > - Build and boot on ppc32. > - Performance benchmark done with perf syscall basic on pseries. >
Passes the irq_test_cases KUnit suite on (qemu) powerpc(64), powerpcle, and powerpc32 targets. ./tools/testing/kunit/kunit.py run --arch powerpc irq_test_cases ./tools/testing/kunit/kunit.py run --arch powerpcle irq_test_cases ./tools/testing/kunit/kunit.py run --arch powerpc32 irq_test_cases Tested-by: David Gow <[email protected]> Cheers, -- David > Changelog: > V3 -> V4 > - Fixed the issue in older gcc version where linker couldn't find > mem functions > - Merged IRQ enable and syscall enable into a single patch > - Cleanup for unused functions done in separate patch. > - Some other cosmetic changes > V3: > https://lore.kernel.org/all/[email protected]/ > > V2 -> V3 > - #ifdef CONFIG_GENERIC_IRQ_ENTRY removed from unnecessary places > - Some functions made __always_inline > - pt_regs padding changed to match 16byte interrupt stack alignment > - And some cosmetic changes from reviews from earlier patch > V2: > https://lore.kernel.org/all/[email protected]/ > > V1 -> V2 > - Fix an issue where context tracking was showing warnings for > incorrect context > V1: > https://lore.kernel.org/all/[email protected]/ > > RFC -> PATCH V1 > - Fix for ppc32 spitting out kuap lock warnings. > - ppc64le powernv8 crash fix. > - Review comments incorporated from previous RFC. > RFC > https://lore.kernel.org/all/[email protected]/ > > Mukesh Kumar Chaurasiya (8): > powerpc: rename arch_irq_disabled_regs > powerpc: Prepare to build with generic entry/exit framework > powerpc: introduce arch_enter_from_user_mode > powerpc: Introduce syscall exit arch functions > powerpc: add exit_flags field in pt_regs > powerpc: Prepare for IRQ entry exit > powerpc: Enable GENERIC_ENTRY feature > powerpc: Remove unused functions > > arch/powerpc/Kconfig | 1 + > arch/powerpc/include/asm/entry-common.h | 533 ++++++++++++++++++++++++ > arch/powerpc/include/asm/hw_irq.h | 4 +- > arch/powerpc/include/asm/interrupt.h | 386 +++-------------- > arch/powerpc/include/asm/kasan.h | 15 +- > arch/powerpc/include/asm/ptrace.h | 6 +- > arch/powerpc/include/asm/signal.h | 1 - > arch/powerpc/include/asm/stacktrace.h | 6 + > arch/powerpc/include/asm/syscall.h | 5 + > arch/powerpc/include/asm/thread_info.h | 1 + > arch/powerpc/include/uapi/asm/ptrace.h | 14 +- > arch/powerpc/kernel/interrupt.c | 254 ++--------- > arch/powerpc/kernel/ptrace/ptrace.c | 142 +------ > arch/powerpc/kernel/signal.c | 25 +- > arch/powerpc/kernel/syscall.c | 119 +----- > arch/powerpc/kernel/traps.c | 2 +- > arch/powerpc/kernel/watchdog.c | 2 +- > arch/powerpc/perf/core-book3s.c | 2 +- > 18 files changed, 690 insertions(+), 828 deletions(-) > create mode 100644 arch/powerpc/include/asm/entry-common.h > > -- > 2.52.0 > > -- > You received this message because you are subscribed to the Google Groups > "kasan-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/kasan-dev/20260123073916.956498-1-mkchauras%40linux.ibm.com.
smime.p7s
Description: S/MIME Cryptographic Signature
