mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-30 09:13:29 +00:00
vsock_module: add 'vhost_vsock' kernel module in kata-check
Since we prefer vsock over virtio serial port, we add 'vhost_vsock' in kernel mosules list. But vhost_vsock.ko shouldn't be the definitely required kernel modules, afterall, we could also use virtio serial port. if kata-env shows SupportsVSocks as false, users could run kata-check to manually load vhost_vsock.ko and get detailed info(errors) Fixes: #1512 Signed-off-by: Penny Zheng <penny.zheng@arm.com>
This commit is contained in:
parent
f21d5a37fe
commit
9b23d4f143
@ -35,6 +35,9 @@ type kernelModule struct {
|
|||||||
|
|
||||||
// maps parameter names to values
|
// maps parameter names to values
|
||||||
parameters map[string]string
|
parameters map[string]string
|
||||||
|
|
||||||
|
// if it is definitely required
|
||||||
|
required bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type vmContainerCapableDetails struct {
|
type vmContainerCapableDetails struct {
|
||||||
@ -124,8 +127,11 @@ func haveKernelModule(module string) bool {
|
|||||||
// Now, check if the module is unloaded, but available.
|
// Now, check if the module is unloaded, but available.
|
||||||
// And modprobe it if so.
|
// And modprobe it if so.
|
||||||
cmd := exec.Command(modProbeCmd, module)
|
cmd := exec.Command(modProbeCmd, module)
|
||||||
err := cmd.Run()
|
if output, err := cmd.CombinedOutput(); err != nil {
|
||||||
return err == nil
|
kataLog.WithField("module", module).WithError(err).Warnf("modprobe insert module failed: %s", string(output))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// checkCPU checks all required CPU attributes modules and returns a count of
|
// checkCPU checks all required CPU attributes modules and returns a count of
|
||||||
@ -200,7 +206,9 @@ func checkKernelModules(modules map[string]kernelModule, handler kernelParamHand
|
|||||||
|
|
||||||
if !haveKernelModule(module) {
|
if !haveKernelModule(module) {
|
||||||
kataLog.WithFields(fields).Error("kernel property not found")
|
kataLog.WithFields(fields).Error("kernel property not found")
|
||||||
|
if details.required {
|
||||||
count++
|
count++
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ const (
|
|||||||
msgKernelVM = "Kernel-based Virtual Machine"
|
msgKernelVM = "Kernel-based Virtual Machine"
|
||||||
msgKernelVirtio = "Host kernel accelerator for virtio"
|
msgKernelVirtio = "Host kernel accelerator for virtio"
|
||||||
msgKernelVirtioNet = "Host kernel accelerator for virtio network"
|
msgKernelVirtioNet = "Host kernel accelerator for virtio network"
|
||||||
|
msgKernelVirtioVhostVsock = "Host Support for Linux VM Sockets"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CPU types
|
// CPU types
|
||||||
@ -76,16 +77,24 @@ func setCPUtype() error {
|
|||||||
archRequiredKernelModules = map[string]kernelModule{
|
archRequiredKernelModules = map[string]kernelModule{
|
||||||
"kvm": {
|
"kvm": {
|
||||||
desc: msgKernelVM,
|
desc: msgKernelVM,
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"kvm_intel": {
|
"kvm_intel": {
|
||||||
desc: "Intel KVM",
|
desc: "Intel KVM",
|
||||||
parameters: kvmIntelParams,
|
parameters: kvmIntelParams,
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"vhost": {
|
"vhost": {
|
||||||
desc: msgKernelVirtio,
|
desc: msgKernelVirtio,
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"vhost_net": {
|
"vhost_net": {
|
||||||
desc: msgKernelVirtioNet,
|
desc: msgKernelVirtioNet,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
"vhost_vsock": {
|
||||||
|
desc: msgKernelVirtioVhostVsock,
|
||||||
|
required: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
} else if cpuType == cpuTypeAMD {
|
} else if cpuType == cpuTypeAMD {
|
||||||
@ -100,15 +109,23 @@ func setCPUtype() error {
|
|||||||
archRequiredKernelModules = map[string]kernelModule{
|
archRequiredKernelModules = map[string]kernelModule{
|
||||||
"kvm": {
|
"kvm": {
|
||||||
desc: msgKernelVM,
|
desc: msgKernelVM,
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"kvm_amd": {
|
"kvm_amd": {
|
||||||
desc: "AMD KVM",
|
desc: "AMD KVM",
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"vhost": {
|
"vhost": {
|
||||||
desc: msgKernelVirtio,
|
desc: msgKernelVirtio,
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"vhost_net": {
|
"vhost_net": {
|
||||||
desc: msgKernelVirtioNet,
|
desc: msgKernelVirtioNet,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
"vhost_vsock": {
|
||||||
|
desc: msgKernelVirtioVhostVsock,
|
||||||
|
required: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,12 +31,19 @@ var archRequiredCPUAttribs = map[string]string{}
|
|||||||
var archRequiredKernelModules = map[string]kernelModule{
|
var archRequiredKernelModules = map[string]kernelModule{
|
||||||
"kvm": {
|
"kvm": {
|
||||||
desc: "Kernel-based Virtual Machine",
|
desc: "Kernel-based Virtual Machine",
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"vhost": {
|
"vhost": {
|
||||||
desc: "Host kernel accelerator for virtio",
|
desc: "Host kernel accelerator for virtio",
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"vhost_net": {
|
"vhost_net": {
|
||||||
desc: "Host kernel accelerator for virtio network",
|
desc: "Host kernel accelerator for virtio network",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
"vhost_vsock": {
|
||||||
|
desc: "Host Support for Linux VM Sockets",
|
||||||
|
required: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,9 +43,15 @@ var archRequiredCPUAttribs = map[string]string{}
|
|||||||
var archRequiredKernelModules = map[string]kernelModule{
|
var archRequiredKernelModules = map[string]kernelModule{
|
||||||
"kvm": {
|
"kvm": {
|
||||||
desc: "Kernel-based Virtual Machine",
|
desc: "Kernel-based Virtual Machine",
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
"kvm_hv": {
|
"kvm_hv": {
|
||||||
desc: "Kernel-based Virtual Machine hardware virtualization",
|
desc: "Kernel-based Virtual Machine hardware virtualization",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
"vhost_vsock": {
|
||||||
|
desc: "Host Support for Linux VM Sockets",
|
||||||
|
required: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,6 +34,11 @@ var archRequiredCPUAttribs = map[string]string{}
|
|||||||
var archRequiredKernelModules = map[string]kernelModule{
|
var archRequiredKernelModules = map[string]kernelModule{
|
||||||
"kvm": {
|
"kvm": {
|
||||||
desc: "Kernel-based Virtual Machine",
|
desc: "Kernel-based Virtual Machine",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
"vhost_vsock": {
|
||||||
|
desc: "Host Support for Linux VM Sockets",
|
||||||
|
required: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user