mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-16 15:07:46 +00:00
runtime: add appendBridges for arm64
since generic func genericAppendBridges and genericBridges is also applied for machine type QemuVirt, we use it as implementation for appendBridges and bridges on aarch64. since const defaultPCBridgeBus is used in generic func genericAppendBridges for pc machine, we should define it once in generic file, instead of redefining it in different arch-specific files. Fixes: #1200 Signed-off-by: Penny Zheng <penny.zheng@arm.com>
This commit is contained in:
parent
e93fb0b3a0
commit
3ec56eaf9f
@ -24,8 +24,6 @@ const defaultQemuMachineType = QemuPC
|
|||||||
|
|
||||||
const defaultQemuMachineOptions = "accel=kvm,kernel_irqchip,nvdimm"
|
const defaultQemuMachineOptions = "accel=kvm,kernel_irqchip,nvdimm"
|
||||||
|
|
||||||
const defaultPCBridgeBus = "pci.0"
|
|
||||||
|
|
||||||
var qemuPaths = map[string]string{
|
var qemuPaths = map[string]string{
|
||||||
QemuPCLite: "/usr/bin/qemu-lite-system-x86_64",
|
QemuPCLite: "/usr/bin/qemu-lite-system-x86_64",
|
||||||
QemuPC: defaultQemuPath,
|
QemuPC: defaultQemuPath,
|
||||||
|
@ -116,12 +116,13 @@ type qemuArchBase struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
defaultCores uint32 = 1
|
defaultCores uint32 = 1
|
||||||
defaultThreads uint32 = 1
|
defaultThreads uint32 = 1
|
||||||
defaultCPUModel = "host"
|
defaultCPUModel = "host"
|
||||||
defaultBridgeBus = "pcie.0"
|
defaultBridgeBus = "pcie.0"
|
||||||
maxDevIDSize = 31
|
defaultPCBridgeBus = "pci.0"
|
||||||
defaultMsize9p = 8192
|
maxDevIDSize = 31
|
||||||
|
defaultMsize9p = 8192
|
||||||
)
|
)
|
||||||
|
|
||||||
// This is the PCI start address assigned to the first bridge that
|
// This is the PCI start address assigned to the first bridge that
|
||||||
|
@ -11,6 +11,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
govmmQemu "github.com/intel/govmm/qemu"
|
govmmQemu "github.com/intel/govmm/qemu"
|
||||||
|
"github.com/kata-containers/runtime/virtcontainers/types"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -25,9 +26,6 @@ const defaultQemuMachineType = QemuVirt
|
|||||||
|
|
||||||
var defaultQemuMachineOptions = "usb=off,accel=kvm,gic-version=" + getGuestGICVersion()
|
var defaultQemuMachineOptions = "usb=off,accel=kvm,gic-version=" + getGuestGICVersion()
|
||||||
|
|
||||||
// Not used
|
|
||||||
const defaultPCBridgeBus = ""
|
|
||||||
|
|
||||||
var qemuPaths = map[string]string{
|
var qemuPaths = map[string]string{
|
||||||
QemuVirt: defaultQemuPath,
|
QemuVirt: defaultQemuPath,
|
||||||
}
|
}
|
||||||
@ -153,3 +151,12 @@ func newQemuArch(config HypervisorConfig) qemuArch {
|
|||||||
|
|
||||||
return q
|
return q
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (q *qemuArm64) bridges(number uint32) []types.PCIBridge {
|
||||||
|
return genericBridges(number, q.machineType)
|
||||||
|
}
|
||||||
|
|
||||||
|
// appendBridges appends to devices the given bridges
|
||||||
|
func (q *qemuArm64) appendBridges(devices []govmmQemu.Device, bridges []types.PCIBridge) []govmmQemu.Device {
|
||||||
|
return genericAppendBridges(devices, bridges, q.machineType)
|
||||||
|
}
|
||||||
|
@ -98,3 +98,30 @@ func TestMaxQemuVCPUs(t *testing.T) {
|
|||||||
assert.Equal(d.expectedResult, vCPUs)
|
assert.Equal(d.expectedResult, vCPUs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestQemuArm64AppendBridges(t *testing.T) {
|
||||||
|
var devices []govmmQemu.Device
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
arm64 := newTestQemu(QemuVirt)
|
||||||
|
|
||||||
|
bridges := arm64.bridges(1)
|
||||||
|
assert.Len(bridges, 1)
|
||||||
|
|
||||||
|
devices = []govmmQemu.Device{}
|
||||||
|
devices = arm64.appendBridges(devices, bridges)
|
||||||
|
assert.Len(devices, 1)
|
||||||
|
|
||||||
|
expectedOut := []govmmQemu.Device{
|
||||||
|
govmmQemu.BridgeDevice{
|
||||||
|
Type: govmmQemu.PCIEBridge,
|
||||||
|
Bus: defaultBridgeBus,
|
||||||
|
ID: bridges[0].ID,
|
||||||
|
Chassis: 1,
|
||||||
|
SHPC: true,
|
||||||
|
Addr: "2",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal(expectedOut, devices)
|
||||||
|
}
|
||||||
|
@ -27,8 +27,6 @@ const defaultQemuMachineType = QemuPseries
|
|||||||
|
|
||||||
const defaultQemuMachineOptions = "accel=kvm,usb=off"
|
const defaultQemuMachineOptions = "accel=kvm,usb=off"
|
||||||
|
|
||||||
const defaultPCBridgeBus = "pci.0"
|
|
||||||
|
|
||||||
const defaultMemMaxPPC64le = 32256 // Restrict MemMax to 32Gb on PPC64le
|
const defaultMemMaxPPC64le = 32256 // Restrict MemMax to 32Gb on PPC64le
|
||||||
|
|
||||||
var qemuPaths = map[string]string{
|
var qemuPaths = map[string]string{
|
||||||
|
@ -23,8 +23,6 @@ const defaultQemuMachineType = QemuCCWVirtio
|
|||||||
|
|
||||||
const defaultQemuMachineOptions = "accel=kvm"
|
const defaultQemuMachineOptions = "accel=kvm"
|
||||||
|
|
||||||
const defaultPCBridgeBus = "pci.0"
|
|
||||||
|
|
||||||
const VirtioSerialCCW = "virtio-serial-ccw"
|
const VirtioSerialCCW = "virtio-serial-ccw"
|
||||||
|
|
||||||
var qemuPaths = map[string]string{
|
var qemuPaths = map[string]string{
|
||||||
|
Loading…
Reference in New Issue
Block a user