diff --git a/src/runtime/virtcontainers/qemu.go b/src/runtime/virtcontainers/qemu.go index 31865b3b50..3d21f953b4 100644 --- a/src/runtime/virtcontainers/qemu.go +++ b/src/runtime/virtcontainers/qemu.go @@ -199,10 +199,7 @@ func (q *qemu) qemuPath() (string, error) { } if p == "" { - p, err = q.arch.qemuPath() - if err != nil { - return "", err - } + p = q.arch.qemuPath() } if _, err = os.Stat(p); os.IsNotExist(err) { diff --git a/src/runtime/virtcontainers/qemu_amd64.go b/src/runtime/virtcontainers/qemu_amd64.go index 92c056de60..b8e49683c4 100644 --- a/src/runtime/virtcontainers/qemu_amd64.go +++ b/src/runtime/virtcontainers/qemu_amd64.go @@ -116,8 +116,8 @@ func newQemuArch(config HypervisorConfig) (qemuArch, error) { q := &qemuAmd64{ qemuArchBase: qemuArchBase{ qemuMachine: *mp, + qemuExePath: qemuPaths[machineType], memoryOffset: config.MemOffset, - qemuPaths: qemuPaths, kernelParamsNonDebug: kernelParamsNonDebug, kernelParamsDebug: kernelParamsDebug, kernelParams: kernelParams, diff --git a/src/runtime/virtcontainers/qemu_arch_base.go b/src/runtime/virtcontainers/qemu_arch_base.go index 40fadc7c4c..ba2ab10385 100644 --- a/src/runtime/virtcontainers/qemu_arch_base.go +++ b/src/runtime/virtcontainers/qemu_arch_base.go @@ -41,7 +41,7 @@ type qemuArch interface { machine() govmmQemu.Machine // qemuPath returns the path to the QEMU binary - qemuPath() (string, error) + qemuPath() string // kernelParameters returns the kernel parameters // if debug is true then kernel debug parameters are included @@ -137,13 +137,13 @@ type qemuArch interface { type qemuArchBase struct { qemuMachine govmmQemu.Machine + qemuExePath string memoryOffset uint32 nestedRun bool vhost bool disableNvdimm bool dax bool networkIndex int - qemuPaths map[string]string kernelParamsNonDebug []Param kernelParamsDebug []Param kernelParams []Param @@ -242,13 +242,8 @@ func (q *qemuArchBase) machine() govmmQemu.Machine { return q.qemuMachine } -func (q *qemuArchBase) qemuPath() (string, error) { - p, ok := q.qemuPaths[q.qemuMachine.Type] - if !ok { - return "", fmt.Errorf("Unknown machine type: %s", q.qemuMachine.Type) - } - - return p, nil +func (q *qemuArchBase) qemuPath() string { + return q.qemuExePath } func (q *qemuArchBase) kernelParameters(debug bool) []Param { diff --git a/src/runtime/virtcontainers/qemu_arch_base_test.go b/src/runtime/virtcontainers/qemu_arch_base_test.go index 417a32b2a4..36da03bb7f 100644 --- a/src/runtime/virtcontainers/qemu_arch_base_test.go +++ b/src/runtime/virtcontainers/qemu_arch_base_test.go @@ -53,8 +53,8 @@ var qemuArchBaseKernelParams = []Param{ func newQemuArchBase() *qemuArchBase { return &qemuArchBase{ qemuMachine: qemuArchBaseMachine, + qemuExePath: qemuArchBaseQemuPaths[qemuArchBaseMachine.Type], nestedRun: false, - qemuPaths: qemuArchBaseQemuPaths, kernelParamsNonDebug: qemuArchBaseKernelParamsNonDebug, kernelParamsDebug: qemuArchBaseKernelParamsDebug, kernelParams: qemuArchBaseKernelParams, @@ -89,17 +89,8 @@ func TestQemuArchBaseQemuPath(t *testing.T) { assert := assert.New(t) qemuArchBase := newQemuArchBase() - p, err := qemuArchBase.qemuPath() - assert.NoError(err) + p := qemuArchBase.qemuPath() assert.Equal(p, qemuArchBaseQemuPath) - - paths := map[string]string{ - "bad": qemuArchBaseQemuPath, - } - qemuArchBase.qemuPaths = paths - p, err = qemuArchBase.qemuPath() - assert.Error(err) - assert.Equal("", p) } func TestQemuArchBaseKernelParameters(t *testing.T) { diff --git a/src/runtime/virtcontainers/qemu_arm64.go b/src/runtime/virtcontainers/qemu_arm64.go index eaec0087cb..dba48a3ecd 100644 --- a/src/runtime/virtcontainers/qemu_arm64.go +++ b/src/runtime/virtcontainers/qemu_arm64.go @@ -30,10 +30,6 @@ const qmpMigrationWaitTimeout = 10 * time.Second var defaultQemuMachineOptions = "usb=off,accel=kvm,gic-version=" + getGuestGICVersion() -var qemuPaths = map[string]string{ - QemuVirt: defaultQemuPath, -} - var kernelParams = []Param{ {"console", "hvc0"}, {"console", "hvc1"}, @@ -136,8 +132,8 @@ func newQemuArch(config HypervisorConfig) (qemuArch, error) { q := &qemuArm64{ qemuArchBase{ qemuMachine: supportedQemuMachine, + qemuExePath: defaultQemuPath, memoryOffset: config.MemOffset, - qemuPaths: qemuPaths, kernelParamsNonDebug: kernelParamsNonDebug, kernelParamsDebug: kernelParamsDebug, kernelParams: kernelParams, diff --git a/src/runtime/virtcontainers/qemu_ppc64le.go b/src/runtime/virtcontainers/qemu_ppc64le.go index b6b22f0712..e19340da28 100644 --- a/src/runtime/virtcontainers/qemu_ppc64le.go +++ b/src/runtime/virtcontainers/qemu_ppc64le.go @@ -27,10 +27,6 @@ const defaultQemuMachineOptions = "accel=kvm,usb=off" const qmpMigrationWaitTimeout = 5 * time.Second -var qemuPaths = map[string]string{ - QemuPseries: defaultQemuPath, -} - var kernelParams = []Param{ {"rcupdate.rcu_expedited", "1"}, {"reboot", "k"}, @@ -68,8 +64,8 @@ func newQemuArch(config HypervisorConfig) (qemuArch, error) { q := &qemuPPC64le{ qemuArchBase{ qemuMachine: supportedQemuMachine, + qemuExePath: defaultQemuPath, memoryOffset: config.MemOffset, - qemuPaths: qemuPaths, kernelParamsNonDebug: kernelParamsNonDebug, kernelParamsDebug: kernelParamsDebug, kernelParams: kernelParams, diff --git a/src/runtime/virtcontainers/qemu_s390x.go b/src/runtime/virtcontainers/qemu_s390x.go index 4ad12a5e69..beaad5eae4 100644 --- a/src/runtime/virtcontainers/qemu_s390x.go +++ b/src/runtime/virtcontainers/qemu_s390x.go @@ -29,10 +29,6 @@ const virtioSerialCCW = "virtio-serial-ccw" const qmpMigrationWaitTimeout = 5 * time.Second -var qemuPaths = map[string]string{ - QemuCCWVirtio: defaultQemuPath, -} - // Verify needed parameters var kernelParams = []Param{ {"console", "ttysclp0"}, @@ -66,8 +62,8 @@ func newQemuArch(config HypervisorConfig) (qemuArch, error) { q := &qemuS390x{ qemuArchBase{ qemuMachine: supportedQemuMachine, + qemuExePath: defaultQemuPath, memoryOffset: config.MemOffset, - qemuPaths: qemuPaths, kernelParamsNonDebug: kernelParamsNonDebug, kernelParamsDebug: kernelParamsDebug, kernelParams: kernelParams, diff --git a/src/runtime/virtcontainers/qemu_test.go b/src/runtime/virtcontainers/qemu_test.go index f1fe9924e6..e6c254031a 100644 --- a/src/runtime/virtcontainers/qemu_test.go +++ b/src/runtime/virtcontainers/qemu_test.go @@ -346,9 +346,7 @@ func TestQemuQemuPath(t *testing.T) { Type: "pc", Options: "", }, - qemuPaths: map[string]string{ - "pc": expectedPath, - }, + qemuExePath: expectedPath, } q := &qemu{ @@ -372,13 +370,6 @@ func TestQemuQemuPath(t *testing.T) { path, err = q.qemuPath() assert.NoError(err) assert.Equal(path, expectedPath) - - // bad machine type, arch should fail - qkvm.qemuMachine.Type = "rgb" - q.arch = qkvm - path, err = q.qemuPath() - assert.Error(err) - assert.Equal(path, "") } func TestHotplugUnsupportedDeviceType(t *testing.T) {