[RFC V2 0/8] Generic IRQ entry/exit support for powerpc

Samir Alamshaha Mulani Samir.Mulani at ibm.com
Wed Sep 24 19:04:55 AEST 2025


On 09/09/25 2:32 am, Mukesh Kumar Chaurasiya 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 on ppc64le.
>
> The performance benchmarks from perf bench basic syscall are below:
>
> | Metric     | W/O Generic Framework | With Generic Framework | Improvement |
> | ---------- | --------------------- | ---------------------- | ----------- |
> | Total time | 0.885 [sec]           | 0.880 [sec]            | ~0.56%      |
> | usecs/op   | 0.088518              | 0.088005               | ~0.58%      |
> | ops/sec    | 1,12,97,086           | 1,13,62,977            | ~0.58%      |
>
> Thats close to 0.6% improvement with this.
>
> Changelog:
> V1 -> V2: Support added for irq with generic framework.
>
> 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 IRQ generic entry/exit path.
>    powerpc: Enable Generic Entry/Exit for syscalls.
>
>   arch/powerpc/Kconfig                    |   2 +
>   arch/powerpc/include/asm/entry-common.h | 550 ++++++++++++++++++++++++
>   arch/powerpc/include/asm/hw_irq.h       |   4 +-
>   arch/powerpc/include/asm/interrupt.h    | 393 +++--------------
>   arch/powerpc/include/asm/ptrace.h       |   2 +
>   arch/powerpc/include/asm/stacktrace.h   |   8 +
>   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/asm-offsets.c       |   1 +
>   arch/powerpc/kernel/interrupt.c         | 251 ++---------
>   arch/powerpc/kernel/interrupt_64.S      |   2 -
>   arch/powerpc/kernel/ptrace/ptrace.c     | 142 +-----
>   arch/powerpc/kernel/signal.c            |   8 +
>   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, 698 insertions(+), 810 deletions(-)
>   create mode 100644 arch/powerpc/include/asm/entry-common.h
>
Hi,


I have reviewed and tested the generic IRQ entry/exist patch series. 
Below are my observations:


Test Coverage
     •    Successfully ran LTP (specially syscall) and entire LTP test 
suite, without observing any regressions or issues related to the 
implementation.


System Configuration
     •    CPUs: 640
     •    Kernel: v6.17.0-rc6+
     •    Processor mode: Shared (uncapped)


Performance Evaluation
     •    Conducted benchmarking using perf bench syscall basic -l.
     •    No functional regressions observed, and results were 
consistent with expectations.


The performance benchmarks from perf bench basic syscall are below:

Loops = 100,000 | Metric | W/O Generic Framework | With Generic 
Framework | Improvement | 
|----------|-----------------------:|-----------------------:|------------:| 
| usecs/op | 0.124562 | 0.124253 | ~0.25% | | ops/sec | 8,028,471 | 
8,048,158 | ~0.25% | Loops = 1,000,000 | Metric | W/O Generic Framework 
| With Generic Framework | Improvement | 
|----------|-----------------------:|-----------------------:|------------:| 
| usecs/op | 0.125389 | 0.124374 | ~0.81% | | ops/sec | 7,977,511 | 
8,040,330 | ~0.79% | Loops = 10,000,000 | Metric | W/O Generic Framework 
| With Generic Framework | Improvement | 
|----------|-----------------------:|-----------------------:|------------:| 
| usecs/op | 0.124626 | 0.123928 | ~0.56% | | ops/sec | 8,024,058 | 
8,069,182 | ~0.56% | **Overall (aggregated across all runs)** | Metric | 
W/O Generic Framework | With Generic Framework | Improvement | | 
---------- | 
---------------------:|-----------------------:|------------:| | Total 
time | 1.384 [sec] | 1.376 [sec] | ~0.58% | | usecs/op | 0.124694 | 
0.123971 | ~0.58% | | ops/sec | 8,019,904 | 8,066,393 | ~0.58% |

Here with this benchmarking we can see the improvement close to 0.6%.

Overall, the patch series works as intended in my testing.


Please add below tag for the patch set.


Tested-by: Samir M <samir at linux.vnet.ibm.com>

Thank You !!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20250924/1c22ea8c/attachment.htm>


More information about the Linuxppc-dev mailing list