On Tue, Mar 17, 2026 at 9:20 AM Jinjie Ruan <[email protected]> wrote:
> After converting arm64 to Generic Entry framework, the compiler no longer > inlines el0_svc_common() into its caller do_el0_svc(). This introduces > a small but measurable overhead in the critical system call path. > > Manually forcing el0_svc_common() to be inlined restores the > performance. Benchmarking with perf bench syscall basic on a > Kunpeng 920 platform (based on v6.19-rc1) shows a ~1% performance > uplift. > > Inlining this function reduces function prologue/epilogue overhead > and allows for better compiler optimization in the hot system call > dispatch path. > > | Metric | W/O this patch | With this patch | Change | > | ---------- | -------------- | --------------- | --------- | > | Total time | 2.195 [sec] | 2.171 [sec] | ↓1.1% | > | usecs/op | 0.219575 | 0.217192 | ↓1.1% | > | ops/sec | 4,554,260 | 4,604,225 | ↑1.1% | > > Reviewed-by: Kevin Brodsky <[email protected]> > Signed-off-by: Jinjie Ruan <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Yours, Linus Walleij

