Currently instances with disk_type=scsi are broken, because the SCSI controller uses a PCI slot not accounted for in the PCI assignment logic. We reserve a throw-away slot just for that.
This is a temporary workaround and will be reverted during the upcoming refactoring. Signed-off-by: Apollon Oikonomopoulos <[email protected]> --- lib/hypervisor/hv_kvm.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py index b6eda5b..7f51430 100644 --- a/lib/hypervisor/hv_kvm.py +++ b/lib/hypervisor/hv_kvm.py @@ -1377,6 +1377,10 @@ class KVMHypervisor(hv_base.BaseHypervisor): _ = _GetFreeSlot(pci_reservations, reserve=True) kvm_cmd.extend(["-soundhw", soundhw]) + if hvp[constants.HV_DISK_TYPE] == constants.HT_DISK_SCSI: + # XXX: The SCSI controller requires another PCI slot. + _ = _GetFreeSlot(pci_reservations, reserve=True) + # Add id to ballon and place to the first available slot (3 or 4) addr = _GetFreeSlot(pci_reservations, reserve=True) pci_info = ",bus=pci.0,addr=%s" % hex(addr) -- 1.9.0
