fix: fail to start arm vm

This commit is contained in:
Qiu Jian
2021-12-10 02:02:04 +08:00
parent 3499630fb5
commit abbbf636a8
2 changed files with 7 additions and 4 deletions
+2 -3
View File
@@ -850,10 +850,9 @@ func (self *SKVMGuestDriver) validateVGA(ovdi, ovga string, nvdi, nvga *string)
func (self *SKVMGuestDriver) validateMachineType(machine string, osArch string) error {
var candidate []string
switch osArch {
case apis.OS_ARCH_AARCH64:
if apis.IsARM(osArch) {
candidate = []string{api.VM_MACHINE_TYPE_ARM_VIRT}
default:
} else {
candidate = []string{api.VM_MACHINE_TYPE_PC, api.VM_MACHINE_TYPE_Q35}
}
if !utils.IsInStringArray(machine, candidate) {
+5 -1
View File
@@ -1663,6 +1663,10 @@ func (s *SKVMGuestInstance) generateDiskParams(disks []api.GuestdiskJsonDesc, is
firstDriver := make(map[string]bool)
for _, disk := range disks {
driver := disk.Driver
if isArm && (driver == DISK_DRIVER_IDE || driver == DISK_DRIVER_SATA) {
// unsupported configuration: IDE controllers are unsupported
driver = DISK_DRIVER_SCSI
}
if driver == DISK_DRIVER_SCSI || driver == DISK_DRIVER_PVSCSI {
if _, ok := firstDriver[driver]; !ok {
switch driver {
@@ -1670,7 +1674,7 @@ func (s *SKVMGuestInstance) generateDiskParams(disks []api.GuestdiskJsonDesc, is
// FIXME: iothread will make qemu-monitor hang
// REF: https://www.mail-archive.com/qemu-devel@nongnu.org/msg592729.html
// cmd += " -device virtio-scsi-pci,id=scsi,iothread=iothread0,num_queues=4,vectors=5"
cmd += " -device virtio-scsi-pci,id=scsi"
cmd += " -device virtio-scsi-pci,id=scsi,num_queues=4,vectors=5"
case DISK_DRIVER_PVSCSI:
cmd += " -device pvscsi,id=scsi"
}