diff --git a/src/runtime/virtcontainers/qemu.go b/src/runtime/virtcontainers/qemu.go index c5b26facfc..9e1c4af5a1 100644 --- a/src/runtime/virtcontainers/qemu.go +++ b/src/runtime/virtcontainers/qemu.go @@ -126,6 +126,8 @@ const ( qemuStopSandboxTimeoutSecs = 15 ) +var noGuestMemHotplugErr error = errors.New("guest memory hotplug not supported") + // agnostic list of kernel parameters var defaultKernelParameters = []Param{ {"panic", "1"}, @@ -1785,7 +1787,7 @@ func (q *qemu) hotplugRemoveCPUs(amount uint32) (uint32, error) { func (q *qemu) hotplugMemory(memDev *memoryDevice, op operation) (int, error) { if !q.arch.supportGuestMemoryHotplug() { - return 0, fmt.Errorf("guest memory hotplug not supported") + return 0, noGuestMemHotplugErr } if memDev.sizeMB < 0 { return 0, fmt.Errorf("cannot hotplug negative size (%d) memory", memDev.sizeMB) diff --git a/src/runtime/virtcontainers/sandbox.go b/src/runtime/virtcontainers/sandbox.go index 5f2bd56d57..95f68bfeb8 100644 --- a/src/runtime/virtcontainers/sandbox.go +++ b/src/runtime/virtcontainers/sandbox.go @@ -1836,7 +1836,11 @@ func (s *Sandbox) updateResources(ctx context.Context) error { s.Logger().WithField("memory-sandbox-size-byte", sandboxMemoryByte).Debugf("Request to hypervisor to update memory") newMemory, updatedMemoryDevice, err := s.hypervisor.resizeMemory(ctx, uint32(sandboxMemoryByte>>utils.MibToBytesShift), s.state.GuestMemoryBlockSizeMB, s.state.GuestMemoryHotplugProbe) if err != nil { - return err + if err == noGuestMemHotplugErr { + s.Logger().Warnf("%s, memory specifications cannot be guaranteed", err) + } else { + return err + } } s.Logger().Debugf("Sandbox memory size: %d MB", newMemory) if s.state.GuestMemoryHotplugProbe && updatedMemoryDevice.addr != 0 {