Le 14/12/2025 à 14:02, Mukesh Kumar Chaurasiya a écrit :
From: Mukesh Kumar Chaurasiya <[email protected]> Convert the PowerPC syscall entry and exit paths to use the generic entry/exit framework by selecting GENERIC_ENTRY and integrating with the common syscall handling routines. This change transitions PowerPC away from its custom syscall entry and exit code to use the generic helpers such as: - syscall_enter_from_user_mode() - syscall_exit_to_user_mode() As part of this migration: - The architecture now selects GENERIC_ENTRY in Kconfig. - Old tracing, seccomp, and audit handling in ptrace.c is removed in favor of generic entry infrastructure. - interrupt.c and syscall.c are simplified to delegate context management and user exit handling to the generic entry path. - The new pt_regs field `exit_flags` introduced earlier is now used to carry per-syscall exit state flags (e.g. _TIF_RESTOREALL). This aligns PowerPC with the common entry code used by other architectures and reduces duplicated logic around syscall tracing, context tracking, and signal handling. The performance benchmarks from perf bench basic syscall are below: perf bench syscall usec/op | Test | With Patch | Without Patch | % Change | | --------------- | ---------- | ------------- | -------- | | getppid usec/op | 0.207795 | 0.210373 | -1.22% | | getpgid usec/op | 0.206282 | 0.211676 | -2.55% | | fork usec/op | 833.986 | 814.809 | +2.35% | | execve usec/op | 360.939 | 365.168 | -1.16% | perf bench syscall ops/sec | Test | With Patch | Without Patch | % Change | | --------------- | ---------- | ------------- | -------- | | getppid ops/sec | 48,12,433 | 47,53,459 | +1.24% | | getpgid ops/sec | 48,47,744 | 47,24,192 | +2.61% | | fork ops/sec | 1,199 | 1,227 | -2.28% | | execve ops/sec | 2,770 | 2,738 | +1.16% |
I get about 2% degradation on powerpc 8xx, and it is quite stable over time when repeating the test.
'perf bench syscall all' on powerpc 8xx (usec per op): | Test | With Patch | Without Patch | % Change | | --------------- | ---------- | ------------- | -------- | | getppid usec/op | 2.63 | 2.63 | ~ 0% | | getpgid usec/op | 2.26 | 2.22 | +2,80% | | fork usec/op | 15300 | 15000 | +2,00% | | execve usec/op | 45700 | 45200 | +1.10% | Christophe
