diff --git a/qemu/qemu.go b/qemu/qemu.go index 6022fe470a..33b4489c3c 100644 --- a/qemu/qemu.go +++ b/qemu/qemu.go @@ -1182,6 +1182,9 @@ type Knobs struct { // Only active when Realtime is set to true Mlock bool + // Stopped will not start guest CPU at startup + Stopped bool + // Realtime will enable realtime QEMU Realtime bool } @@ -1521,6 +1524,10 @@ func (config *Config) appendKnobs() { config.qemuParams = append(config.qemuParams, "mlock=off") } } + + if config.Knobs.Stopped == true { + config.qemuParams = append(config.qemuParams, "-S") + } } func (config *Config) appendBios() { diff --git a/qemu/qemu_test.go b/qemu/qemu_test.go index 09c6523771..8e805dc7e2 100644 --- a/qemu/qemu_test.go +++ b/qemu/qemu_test.go @@ -388,7 +388,7 @@ func TestAppendEmptyDevice(t *testing.T) { } func TestAppendKnobsAllTrue(t *testing.T) { - var knobsString = "-no-user-config -nodefaults -nographic -daemonize -realtime mlock=on" + var knobsString = "-no-user-config -nodefaults -nographic -daemonize -realtime mlock=on -S" knobs := Knobs{ NoUserConfig: true, NoDefaults: true, @@ -399,6 +399,7 @@ func TestAppendKnobsAllTrue(t *testing.T) { FileBackedMemShared: true, Realtime: true, Mlock: true, + Stopped: true, } testAppend(knobs, knobsString, t) @@ -415,6 +416,7 @@ func TestAppendKnobsAllFalse(t *testing.T) { FileBackedMemShared: false, Realtime: false, Mlock: false, + Stopped: false, } testAppend(knobs, knobsString, t)