Skip to content
  1. Sep 15, 2015
  2. Sep 10, 2015
  3. Sep 04, 2015
    • Mark Rutland's avatar
      Handle KVM_EXIT_SYSTEM_EVENT on any VCPU · 0161ed77
      Mark Rutland authored
      
      
      When VCPU #0 exits (e.g. due to KVM_EXIT_SYSTEM_EVENT), it sends
      SIGKVMEXIT to all other VCPUs, waits for them to exit, then tears down
      any remaining context. The signalling of SIGKVMEXIT is critical to
      forcing VCPUs to shut down in response to a system event (e.g. PSCI
      SYSTEM_OFF).
      
      VCPUs other that VCPU #0 simply exit in kvm_cpu_thread without forcing
      other CPUs to shut down. Thus if a system event is taken on a VCPU other
      than VCPU #0, the remaining CPUs are left online. This results in KVM
      tool not exiting as expected when a system event is taken on a VCPU
      other than VCPU #0 (as may happen if the guest panics).
      
      Fix this by tearing down all CPUs upon a system event, regardless of the
      CPU on which the event occurred. While this means the VCPU thread will
      signal itself, and VCPU #0 will signal all other VCPU threads a second
      time, these are harmless.
      
      Signed-off-by: Mark Rutland's avatarMark Rutland <mark.rutland@arm.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Suzuki Poulose <suzuki.poulose@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      0161ed77
  4. Aug 07, 2015
  5. Aug 06, 2015
  6. Jul 22, 2015
  7. Jul 20, 2015
  8. Jul 08, 2015
  9. Jun 29, 2015
  10. Jun 22, 2015
    • Andre Przywara's avatar
      kvmtool: don't use PCI config space IRQ line field · e9922aaf
      Andre Przywara authored
      
      
      In PCI config space there is an interrupt line field (offset 0x3f),
      which is used to initially communicate the IRQ line number from
      firmware to the OS. _Hardware_ should never use this information,
      as the OS is free to write any information in there.
      But kvmtool uses this number when it triggers IRQs in the guest,
      which fails starting with Linux 3.19-rc1, where the PCI layer starts
      writing the virtual IRQ number in there.
      
      Fix that by storing the IRQ number in a separate field in
      struct virtio_pci, which is independent from the PCI config space
      and cannot be influenced by the guest.
      This fixes ARM/ARM64 guests using PCI with newer kernels.
      
      Signed-off-by: Andre Przywara's avatarAndre Przywara <andre.przywara@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      e9922aaf
  11. Jun 19, 2015
  12. Jun 17, 2015
  13. Jun 16, 2015
Loading