diff --git a/virtcontainers/fc.go b/virtcontainers/fc.go index 4fde3f6def..efd8753adb 100644 --- a/virtcontainers/fc.go +++ b/virtcontainers/fc.go @@ -54,11 +54,8 @@ const ( fcDiskPoolSize = 8 ) -var fcKernelParams = []Param{ +var fcKernelParams = append(commonVirtioblkKernelRootParams, []Param{ // The boot source is the first partition of the first block device added - {"root", "/dev/vda1"}, - {"rootflags", "data=ordered,errors=remount-ro ro"}, - {"rootfstype", "ext4"}, {"pci", "off"}, {"reboot", "k"}, {"panic", "1"}, @@ -70,7 +67,7 @@ var fcKernelParams = []Param{ // Firecracker doesn't support ACPI // Fix kernel error "ACPI BIOS Error (bug)" {"acpi", "off"}, -} +}...) func (s vmmState) String() string { switch s { diff --git a/virtcontainers/hypervisor.go b/virtcontainers/hypervisor.go index 266c409838..9ad51ff061 100644 --- a/virtcontainers/hypervisor.go +++ b/virtcontainers/hypervisor.go @@ -53,6 +53,20 @@ const ( // In some architectures the maximum number of vCPUs depends on the number of physical cores. var defaultMaxQemuVCPUs = MaxQemuVCPUs() +// agnostic list of kernel root parameters for NVDIMM +var commonNvdimmKernelRootParams = []Param{ //nolint: unused, deadcode, varcheck + {"root", "/dev/pmem0p1"}, + {"rootflags", "dax,data=ordered,errors=remount-ro ro"}, + {"rootfstype", "ext4"}, +} + +// agnostic list of kernel root parameters for virtio-blk +var commonVirtioblkKernelRootParams = []Param{ //nolint: unused, deadcode, varcheck + {"root", "/dev/vda1"}, + {"rootflags", "data=ordered,errors=remount-ro ro"}, + {"rootfstype", "ext4"}, +} + // deviceType describes a virtualized device type. type deviceType int diff --git a/virtcontainers/qemu_amd64.go b/virtcontainers/qemu_amd64.go index 4cddaae1c8..f4865df6e7 100644 --- a/virtcontainers/qemu_amd64.go +++ b/virtcontainers/qemu_amd64.go @@ -35,11 +35,7 @@ var qemuPaths = map[string]string{ QemuQ35: defaultQemuPath, } -var kernelRootParams = []Param{ - {"root", "/dev/pmem0p1"}, - {"rootflags", "dax,data=ordered,errors=remount-ro ro"}, - {"rootfstype", "ext4"}, -} +var kernelRootParams = commonNvdimmKernelRootParams var kernelParams = []Param{ {"tsc", "reliable"}, diff --git a/virtcontainers/qemu_arm64.go b/virtcontainers/qemu_arm64.go index 81c0f2af81..02f19fd18b 100644 --- a/virtcontainers/qemu_arm64.go +++ b/virtcontainers/qemu_arm64.go @@ -43,9 +43,12 @@ var kernelParams = []Param{ {"iommu.passthrough", "0"}, } +// For now, AArch64 doesn't support DAX, so we couldn't use +// commonNvdimmKernelRootParams, the agnostic list of kernel +// root parameters for NVDIMM var kernelRootParams = []Param{ {"root", "/dev/pmem0p1"}, - {"rootflags", "data=ordered,errors=remount-ro rw"}, + {"rootflags", "data=ordered,errors=remount-ro ro"}, {"rootfstype", "ext4"}, } diff --git a/virtcontainers/qemu_s390x.go b/virtcontainers/qemu_s390x.go index 3974ff68c6..5b1f3b0bd5 100644 --- a/virtcontainers/qemu_s390x.go +++ b/virtcontainers/qemu_s390x.go @@ -39,9 +39,7 @@ var kernelParams = []Param{ {"console", "ttysclp0"}, } -var kernelRootParams = []Param{ - {"root", "/dev/vda1"}, -} +var kernelRootParams = commonVirtioblkKernelRootParams var supportedQemuMachines = []govmmQemu.Machine{ {