Public bug reported:
Description: kvm: floating interrupts may get stuck
Symptom: Most prominently guest stuck in IPL.
Problem: When trying to pick an idle cpu to process the
interrupts we can end up messing up, and picking,
for example a stopped vcpu, because we first look
up an index form the kvm->arch.idle_mask and then
use it to obtain a cpu using kvm_get_vcpu() The
trouble is, we made kvm->arch.idle_mask to be
indexed with cpu_id, while kvm_get_vcpu() expects
a vcpu_idx. Hereby vcpu_id is an identifier that
comes from userspace, while vcpu_idx'es are given
away at vcpu creation FCFS. In practice QEMU does
currently the creation of vcpus so that the two
end up having the same value. That is why we did
not notice this problem for years.
Reproduction: Make sure you cpu_id's and cpu_idx'es aren't the
same, and try to IPL a guest.
Solution: Make kvm->arch.idle_mask cpu_idx based.
Upstream-ID: a3e03bc1368c1bc16e19b001fc96dc7430573cc8
Date: 2021-09-09
Author: Halil Pasic <[email protected]>
Component: kernel
** Affects: linux (Ubuntu)
Importance: Undecided
Assignee: Skipper Bug Screeners (skipper-screen-team)
Status: New
** Tags: architecture-s39064 bugnameltc-195431 severity-high
targetmilestone-inin---
** Tags added: architecture-s39064 bugnameltc-195431 severity-high
targetmilestone-inin---
** Changed in: ubuntu
Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)
** Package changed: ubuntu => linux (Ubuntu)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1951109
Title:
[UBUNTU 20.04] kvm: floating interrupts may get stuck
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1951109/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs