From 68f307180602e10548e3bcc0442a26ea35db9b75 Mon Sep 17 00:00:00 2001 From: Julio Montes Date: Tue, 6 Mar 2018 11:55:15 -0600 Subject: [PATCH] qemu: add DisableModern to SCSIController DisableModern prevents qemu from relying on fast MMIO. Signed-off-by: Julio Montes --- qemu/qemu.go | 6 ++++++ qemu/qemu_test.go | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/qemu/qemu.go b/qemu/qemu.go index 7ef751b96ada..218507808d8d 100644 --- a/qemu/qemu.go +++ b/qemu/qemu.go @@ -838,6 +838,9 @@ type SCSIController struct { // Addr is the PCI address offset, this is optional Addr string + + // DisableModern prevents qemu from relying on fast MMIO. + DisableModern bool } // Valid returns true if the SCSIController structure is valid and complete. @@ -861,6 +864,9 @@ func (scsiCon SCSIController) QemuParams(config *Config) []string { if scsiCon.Addr != "" { devParams = append(devParams, fmt.Sprintf("addr=%s", scsiCon.Addr)) } + if scsiCon.DisableModern { + devParams = append(devParams, fmt.Sprintf("disable-modern=true")) + } qemuParams = append(qemuParams, "-device") qemuParams = append(qemuParams, strings.Join(devParams, ",")) diff --git a/qemu/qemu_test.go b/qemu/qemu_test.go index cc00a82fc104..bcbdb2ec13ef 100644 --- a/qemu/qemu_test.go +++ b/qemu/qemu_test.go @@ -346,7 +346,7 @@ func TestVSOCKValid(t *testing.T) { } var deviceSCSIControllerStr = "-device virtio-scsi-pci,id=foo" -var deviceSCSIControllerBusAddrStr = "-device virtio-scsi-pci,id=foo,bus=pci.0,addr=00:04.0" +var deviceSCSIControllerBusAddrStr = "-device virtio-scsi-pci,id=foo,bus=pci.0,addr=00:04.0,disable-modern=true" func TestAppendDeviceSCSIController(t *testing.T) { scsiCon := SCSIController{ @@ -356,6 +356,7 @@ func TestAppendDeviceSCSIController(t *testing.T) { scsiCon.Bus = "pci.0" scsiCon.Addr = "00:04.0" + scsiCon.DisableModern = true testAppend(scsiCon, deviceSCSIControllerBusAddrStr, t) }