From f97b6c0363d8e71922e01d47e6ba0483631083dd Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Wed, 29 Mar 2023 12:26:26 +0800 Subject: [PATCH] fix(host): set desc nics queues and vectors on live migrate --- pkg/hostman/guestman/pci.go | 2 +- pkg/hostman/guestman/qemu-kvm.go | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/hostman/guestman/pci.go b/pkg/hostman/guestman/pci.go index dc4221fc25..868c4b831c 100644 --- a/pkg/hostman/guestman/pci.go +++ b/pkg/hostman/guestman/pci.go @@ -305,7 +305,7 @@ func (s *SKVMGuestInstance) initGuestNetworks(pciRoot, pciBridge *desc.PCIContro s.Desc.Nics[i].Driver = "vmxnet3" } if s.Desc.Nics[i].NumQueues > 1 { - vectors := s.Desc.Nics[i].NumQueues * 2 + vectors := s.Desc.Nics[i].NumQueues*2 + 1 s.Desc.Nics[i].Vectors = &vectors } diff --git a/pkg/hostman/guestman/qemu-kvm.go b/pkg/hostman/guestman/qemu-kvm.go index 1d970651ea..51b0247aa1 100644 --- a/pkg/hostman/guestman/qemu-kvm.go +++ b/pkg/hostman/guestman/qemu-kvm.go @@ -177,8 +177,14 @@ func (s *SKVMGuestInstance) initLiveDescFromSourceGuest(srcDesc *desc.SGuestDesc } } for i := 0; i < len(srcDesc.Nics); i++ { + var numQueues, vectors int for j := 0; j < len(s.SourceDesc.Nics); j++ { if srcDesc.Nics[i].Index == s.SourceDesc.Nics[j].Index { + numQueues = srcDesc.Nics[i].NumQueues + if srcDesc.Nics[i].Vectors != nil { + vectors = *srcDesc.Nics[i].Vectors + } + srcDesc.Nics[i].GuestnetworkJsonDesc = s.SourceDesc.Nics[j].GuestnetworkJsonDesc break } @@ -187,6 +193,10 @@ func (s *SKVMGuestInstance) initLiveDescFromSourceGuest(srcDesc *desc.SGuestDesc if err := s.generateNicScripts(srcDesc.Nics[i]); err != nil { return errors.Wrapf(err, "generateNicScripts for nic: %v", srcDesc.Nics[i]) } + srcDesc.Nics[i].NumQueues = numQueues + if vectors > 0 { + srcDesc.Nics[i].Vectors = &vectors + } srcDesc.Nics[i].UpscriptPath = s.getNicUpScriptPath(srcDesc.Nics[i]) srcDesc.Nics[i].DownscriptPath = s.getNicDownScriptPath(srcDesc.Nics[i]) }