Thread (39 messages) flat view 39 messages, 8 authors, 1d ago

Re: [PATCH v5 0/8] Generic IRQ entry/exit support for powerpc

From: Mukesh Kumar Chaurasiya <hidden>
Date: 2026-09-08 11:22:54
Also in: lkml

On Thu, Jul 30, 2026 at 01:24:46PM +0200, Jirka Hladky wrote:
On Thu, Jul 30, 2026 at 11:36 AM Mukesh Kumar Chaurasiya
[off-list ref] wrote:
quoted
On Mon, Jul 27, 2026 at 11:41:07AM +0200, Jirka Hladky wrote:
quoted
Hi Mukesh, Shrikanth, Madhavan,

I'm seeing a ~19% throughput regression on ppc64le (POWER10) in
syscall-heavy workloads between kernel 7.1 and 7.2-rc4, which I've
narrowed down to the GENERIC_ENTRY enablement for powerpc (commit
bee25f97ad24 "powerpc: Enable GENERIC_ENTRY feature").

The regression manifests specifically when SELinux is enabled. Regression
disappears with selinux=0. With SELinux disabled, 7.2 is actually
slightly *faster* than 7.1.

Test: stress-ng --kill 1 -t 23 (single-thread kill() syscall loop)
Machine: IBM,9080-HEX POWER10, 8 vCPUs (1 core SMT-8), 64 GiB

Results (bogo-ops/sec, higher is better):

Kernel   Enforcing   Permissive   Disabled    SELinux tax
------   ---------   ----------   --------    -----------
7.1      69,107      70,248       93,566      -26.1%
7.2-rc4  56,247      59,075       99,240      -43.3%
Delta    -18.6%      -15.9%       +6.1%

Key observations:
- SELinux permissive ~ enforcing on both kernels (overhead is in the
  code path, not policy evaluation)
- SELinux disabled: 7.2 is 6% faster than 7.1 -- the generic entry
  path itself is not slower for the base syscall
- The SELinux "tax" nearly doubles from 26% to 43% between 7.1->7.2
- No changes to security/selinux/avc.c between v7.1 and v7.2-rc4

The kill() hot path (sys_kill -> check_kill_permission -> security_task_kill
-> selinux_task_kill -> avc_has_perm -> avc_lookup) wraps every AVC lookup
in rcu_read_lock()/rcu_read_unlock(). On ppc64le with PREEMPT_RCU, each
pair requires lwsync/isync barriers. I suspect the generic entry path
changes something in how context tracking, tracing, or RCU interacts
with the syscall fast path that amplifies the per-call RCU cost.

Note: this is on top of a separate ~36% regression from 6.12->7.1 caused
by HAVE_PREEMPT_DYNAMIC_KEY enabling CONFIG_PREEMPT_RCU on ppc64le
(commit 6ad7751537e8), which I reported separately on the v4 thread.

Thank you
Jirka
[...]
Hey Jirka,

Thanks for reporting this.
I'll take a look.

Thanks,
Mukesh
Thank you, Mukesh! I'm happy to run additional tests on the POWER10 machine
if you have patches to try or specific experiments you'd like me to do.

Jirka
Hey Jirka,

Sry about the delayed response, i got occupied with functional issues.
Anyways, I don't seem to reproduce it with default fedora policy. Can
you share the details of policy which you are using?

Regards,
Mukesh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help