diff --git a/pkg/hostman/guestman/guestman.go b/pkg/hostman/guestman/guestman.go index 3e017ebabe..13ce6e5a5f 100644 --- a/pkg/hostman/guestman/guestman.go +++ b/pkg/hostman/guestman/guestman.go @@ -137,7 +137,10 @@ func (m *SGuestManager) InitQemuMaxCpus(machineCaps []monitor.MachineInfo, kvmMa for i := 0; i < len(machineCaps); i++ { if (machineCaps[i].Alias != nil && *machineCaps[i].Alias == machine) || machineCaps[i].Name == machine { - cpuMax := minFunc(uint(machineCaps[i].CPUMax), kvmMaxCpus) + cpuMax := uint(machineCaps[i].CPUMax) + if kvmMaxCpus > 0 { + cpuMax = minFunc(cpuMax, kvmMaxCpus) + } if utils.IsInStringArray(machine, []string{"pc", "q35"}) { // Note: if max cpux exceed 255, machine requires Extended Interrupt Mode enabled. // You can add an IOMMU using: -device intel-iommu,intremap=on,eim=on diff --git a/pkg/hostman/guestman/pci.go b/pkg/hostman/guestman/pci.go index 1fc6ba78c1..24d0c74303 100644 --- a/pkg/hostman/guestman/pci.go +++ b/pkg/hostman/guestman/pci.go @@ -57,7 +57,7 @@ func (s *SKVMGuestInstance) initGuestDesc() error { s.initMemDesc(s.Desc.Mem) s.initMachineDesc() - pciRoot, pciBridge := s.initGuestPciControllers(true) + pciRoot, pciBridge := s.initGuestPciControllers(s.manager.host.IsKvmSupport()) err = s.initGuestPciAddresses() if err != nil { return errors.Wrap(err, "init guest pci addresses")