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 <pa...@linux.ibm.com>
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 Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1951109

Title:
  [UBUNTU 20.04] kvm: floating interrupts may get stuck

Status in linux package in Ubuntu:
  New

Bug description:
  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 <pa...@linux.ibm.com>
  Component:     kernel

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1951109/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to