The root cause of the problem is that s390x kernels are built with kernel preemption enabled (CONFIG_PREEMPTION=y). On s390 that forces CONFIG_GENERIC_LOCKBREAK=y.
GENERIC_LOCKBREAK=y forces a generic, non-optimized, implementation of a spinlock, instead of using the optimized arch_spin_lock_wait() (which is now basically dead code). What actually runs therefore is a simple compare-and-swap on a single shared word across all logical CPUs. Before 7dadeaa6e851e (“sched: Further restrict the preemption modes”), which landed in v7.0-rc1, s390x was built with CONFIG_PREEMPT_VOLUNTARY, therefore CONFIG_PREEMPTION=n and therefore with CONFIG_GENERIC_LOCKBREAK=n. Commit 7dadeaa6e851e forces architectures having CONFIG_ARCH_HAS_PREEMPT_LAZY=y to select CONFIG_PREEMPT_LAZY=y which selects CONFIG_PREEMPTION=y, which selects CONFIG_GENERIC_LOCKBREAK=y. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2154748 Title: [Ubuntu 26.04] Severe Performance Degradation on kernel 7.0.0-15 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/2154748/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
