** Description changed: + [ Impact ] + + Commit 352ccf890a3e (KVM: s390: improve interrupt cpu for wakeup) + addresses a performance optimization in the KVM subsystem + for the s390 architecture, specifically concerning the selection + of target virtual CPUs (vCPUs) for floating interrupt delivery. + The modification changes the heuristic algorithm used to determine + which vCPU should be awakened when a floating interrupt arrives, + shifting from an idle-CPU-preference strategy to a + last-sleep-CPU-preference strategy. + This algorithmic change yields significant performance improvements + by reducing inter-processor interrupt overhead + and improving cache locality. + + [ Fix ] + + Backport 352ccf890a3e (KVM: s390: improve interrupt cpu for wakeup) + from mainline. + + [ Test Plan ] + + To test the patch it is possible to run I/O-intensive workloads + (fio, uperf) with varying vCPU configurations, on a s390x machine, + to ensure interrupt delivery remains correct without errors, + timeouts, or kernel warnings. Moreover, during I/O-intensive workloads + a performance improvement should be visible. + + [ Regression Potential] + + The patch modifies interrupt delivery heuristics within s390 KVM + but does not change core interrupt handling logic + or data structures significantly. + The primary risk is suboptimal vCPU selection in workload patterns + that differ from the tested scenarios (fio, uperf), potentially + causing performance regressions rather than functional failures. + + --- + 352ccf890a3e91f58bc32503f9afdc161bc2c34a ------------------------- - KVM: s390: improve interrupt cpu for wakeup + KVM: s390: improve interrupt cpu for wakeup - Turns out that picking an idle CPU for floating interrupts has some - negative side effects. The guest will keep the IO workload on its CPU - and rather use an IPI from the interrupt CPU instead of moving workload. - For example a guest with 2 vCPUs and 1 fio process might run that fio on - vcpu1. If after diag500 both vCPUs are idle then vcpu0 is woken up. The - guest will then do an IPI from vcpu0 to vcpu1. + Turns out that picking an idle CPU for floating interrupts has some + negative side effects. The guest will keep the IO workload on its CPU + and rather use an IPI from the interrupt CPU instead of moving workload. + For example a guest with 2 vCPUs and 1 fio process might run that fio on + vcpu1. If after diag500 both vCPUs are idle then vcpu0 is woken up. The + guest will then do an IPI from vcpu0 to vcpu1. - So lets change the heuristics and prefer the last CPU that went to - sleep. This one is likely still in halt polling and can be woken up - quickly. + So lets change the heuristics and prefer the last CPU that went to + sleep. This one is likely still in halt polling and can be woken up + quickly. - This patch shows significant improvements in terms of bandwidth or - cpu consumption for fio and uperf workloads and seems to be a net - win. + This patch shows significant improvements in terms of bandwidth or + cpu consumption for fio and uperf workloads and seems to be a net + win. - Link: https://lore.kernel.org/linux-s390/[email protected]/ - Reviewed-by: Christoph Schlameu? <[email protected]> - Signed-off-by: Christian Borntraeger <[email protected]> + Link: https://lore.kernel.org/linux-s390/[email protected]/ + Reviewed-by: Christoph Schlameu? <[email protected]> + Signed-off-by: Christian Borntraeger <[email protected]>
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2132317 Title: [UBUNTU 24.04] KVM: s390: improve interrupt cpu for wakeup To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/2132317/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
