vendor: Vendor github.com/intel/govmm

Vendor package for pulling in changes related to support
for iothreads with virtio-scsi.

Shortlog for govmm:

9130f37 scsi: Allow scsi controller to associate with an IO thread.
a54de18 iothread: Add ability to configure iothreads

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
This commit is contained in:
Archana Shinde 2018-03-29 10:44:38 -07:00
parent c4f922dc2c
commit 09c5bbd2dc
3 changed files with 26 additions and 3 deletions

4
Gopkg.lock generated
View File

@ -86,7 +86,7 @@
[[projects]]
name = "github.com/intel/govmm"
packages = ["qemu"]
revision = "82c67ab9b21e8cd0042b6c2d3be2d3705a511603"
revision = "1509acf1862ae5154c5c096f9318bd3eb434d816"
[[projects]]
name = "github.com/kata-containers/agent"
@ -250,6 +250,6 @@
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "bb2ac1696f8e90526e492a6d54362549094fa844c17fbd06c727198bff6667ef"
inputs-digest = "f7c3a1b7f5cb5f891a3badcb7323f3b5fc0fa79f69dd6532ec2e2be2baafaf98"
solver-name = "gps-cdcl"
solver-version = 1

View File

@ -56,7 +56,7 @@
[[constraint]]
name = "github.com/intel/govmm"
revision = "82c67ab9b21e8cd0042b6c2d3be2d3705a511603"
revision = "1509acf1862ae5154c5c096f9318bd3eb434d816"
[[constraint]]
name = "github.com/kata-containers/agent"

View File

@ -841,6 +841,9 @@ type SCSIController struct {
// DisableModern prevents qemu from relying on fast MMIO.
DisableModern bool
// IOThread is the IO thread on which IO will be handled
IOThread string
}
// Valid returns true if the SCSIController structure is valid and complete.
@ -867,6 +870,9 @@ func (scsiCon SCSIController) QemuParams(config *Config) []string {
if scsiCon.DisableModern {
devParams = append(devParams, fmt.Sprintf("disable-modern=true"))
}
if scsiCon.IOThread != "" {
devParams = append(devParams, fmt.Sprintf("iothread=%s", scsiCon.IOThread))
}
qemuParams = append(qemuParams, "-device")
qemuParams = append(qemuParams, strings.Join(devParams, ","))
@ -1159,6 +1165,11 @@ type Knobs struct {
Realtime bool
}
// IOThread allows IO to be performed on a separate thread.
type IOThread struct {
ID string
}
// Config is the qemu configuration structure.
// It allows for passing custom settings and parameters to the qemu API.
type Config struct {
@ -1213,6 +1224,8 @@ type Config struct {
// fds is a list of open file descriptors to be passed to the spawned qemu process
fds []*os.File
IOThreads []IOThread
qemuParams []string
}
@ -1481,6 +1494,15 @@ func (config *Config) appendBios() {
}
}
func (config *Config) appendIOThreads() {
for _, t := range config.IOThreads {
if t.ID != "" {
config.qemuParams = append(config.qemuParams, "-object")
config.qemuParams = append(config.qemuParams, fmt.Sprintf("iothread,id=%s", t.ID))
}
}
}
// LaunchQemu can be used to launch a new qemu instance.
//
// The Config parameter contains a set of qemu parameters and settings.
@ -1504,6 +1526,7 @@ func LaunchQemu(config Config, logger QMPLog) (string, error) {
config.appendKnobs()
config.appendKernel()
config.appendBios()
config.appendIOThreads()
if err := config.appendCPUs(); err != nil {
return "", err