1. 10 11月, 2013 1 次提交
    • C
      Fix pc migration from qemu <= 1.5 · 04c7d8b8
      Cole Robinson 提交于
      The following commit introduced a migration incompatibility:
      
      commit 568f0690
      Author: David Gibson <david@gibson.dropbear.id.au>
      Date:   Thu Jun 6 18:48:49 2013 +1000
      
          pci: Replace pci_find_domain() with more general pci_root_bus_path()
      
      The issue is that i440fx savevm idstr went from 0000:00:00.0/I440FX to
      0000:00.0/I440FX. Unfortunately we are stuck with the breakage for
      1.6 machine types.
      
      Add a compat property to maintain the busted idstr for the 1.6 machine
      types, but revert to the old style format for 1.7+, and <= 1.5.
      
      Tested with migration from qemu 1.5, qemu 1.6, and qemu.git.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NCole Robinson <crobinso@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      04c7d8b8
  2. 14 10月, 2013 1 次提交
  3. 21 9月, 2013 1 次提交
  4. 02 9月, 2013 1 次提交
    • A
      spapr-pci: rework MSI/MSIX · f1c2dc7c
      Alexey Kardashevskiy 提交于
      On the sPAPR platform a guest allocates MSI/MSIX vectors via RTAS
      hypercalls which return global IRQ numbers to a guest so it only
      operates with those and never touches MSIMessage.
      
      Therefore MSIMessage handling is completely hidden in QEMU.
      
      Previously every sPAPR PCI host bridge implemented its own MSI window
      to catch msi_notify()/msix_notify() calls from QEMU devices (virtio-pci
      or vfio) and route them to the guest via qemu_pulse_irq().
      MSIMessage used to be encoded as:
      	.addr - address within the PHB MSI window;
      	.data - the device index on PHB plus vector number.
      The MSI MR write function translated this MSIMessage to a global IRQ
      number and called qemu_pulse_irq().
      
      However the total number of IRQs is not really big (at the moment it is
      1024 IRQs starting from 4096) and even 16bit data field of MSIMessage
      seems to be enough to store an IRQ number there.
      
      This simplifies MSI handling in sPAPR PHB. Specifically, this does:
      1. remove a MSI window from a PHB;
      2. add a single memory region for all MSIs to sPAPREnvironment
      and spapr_pci_msi_init() to initialize it;
      3. encode MSIMessage as:
          * .addr - a fixed address of SPAPR_PCI_MSI_WINDOW==0x40000000000ULL;
          * .data as an IRQ number.
      4. change IRQ allocator to align first IRQ number in a block for MSI.
      MSI uses lower bits to specify the vector number so the first IRQ has to
      be aligned. MSIX does not need any special allocator though.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Reviewed-by: NAnthony Liguori <aliguori@us.ibm.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f1c2dc7c
  5. 30 7月, 2013 1 次提交
  6. 29 7月, 2013 1 次提交
  7. 23 7月, 2013 1 次提交
  8. 04 7月, 2013 2 次提交
  9. 20 6月, 2013 2 次提交
  10. 09 4月, 2013 2 次提交