From 545de5042ab27a76d1599eb092352f4dba333c9e Mon Sep 17 00:00:00 2001 From: Zvonko Kaiser Date: Thu, 20 Jul 2023 09:31:01 +0000 Subject: [PATCH] vfio: Fix tests Now with more elaborate checking of cold|hot plug ports we needed to update some of the tests. Signed-off-by: Zvonko Kaiser --- src/runtime/pkg/containerd-shim-v2/create_test.go | 2 +- src/runtime/virtcontainers/qemu_s390x.go | 2 +- src/runtime/virtcontainers/sandbox.go | 3 +++ src/runtime/virtcontainers/sandbox_test.go | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/runtime/pkg/containerd-shim-v2/create_test.go b/src/runtime/pkg/containerd-shim-v2/create_test.go index 2ba6ce9e5..82ce7357f 100644 --- a/src/runtime/pkg/containerd-shim-v2/create_test.go +++ b/src/runtime/pkg/containerd-shim-v2/create_test.go @@ -334,7 +334,7 @@ func createAllRuntimeConfigFiles(dir, hypervisor string) (runtimeConfig string, sharedFS := "virtio-9p" virtioFSdaemon := path.Join(dir, "virtiofsd") hotPlugVFIO = config.BridgePort - coldPlugVFIO = config.RootPort + coldPlugVFIO = config.NoPort configFileOptions := ktu.RuntimeConfigOptions{ Hypervisor: "qemu", diff --git a/src/runtime/virtcontainers/qemu_s390x.go b/src/runtime/virtcontainers/qemu_s390x.go index bc5c45bff..29eaafe5b 100644 --- a/src/runtime/virtcontainers/qemu_s390x.go +++ b/src/runtime/virtcontainers/qemu_s390x.go @@ -376,7 +376,7 @@ func (q *qemuS390x) appendVFIODevice(devices []govmmQemu.Device, vfioDev config. } // Query QMP to find a device's PCI path given its QOM path or ID -func (q *qemuArchBase) qomGetPciPath(qemuID string, qmpCh *qmpChannel) (types.PciPath, error) { +func (q *qemuS390x) qomGetPciPath(qemuID string, qmpCh *qmpChannel) (types.PciPath, error) { hvLogger.Warnf("qomGetPciPath not implemented for s390x") return types.PciPath{}, nil } diff --git a/src/runtime/virtcontainers/sandbox.go b/src/runtime/virtcontainers/sandbox.go index 9f18b5c2c..350780732 100644 --- a/src/runtime/virtcontainers/sandbox.go +++ b/src/runtime/virtcontainers/sandbox.go @@ -644,6 +644,8 @@ func newSandbox(ctx context.Context, sandboxConfig SandboxConfig, factory Factor } if hotPlugVFIO && isVFIODevice { + device.ColdPlug = false + device.Port = sandboxConfig.HypervisorConfig.HotPlugVFIO vfioDevices = append(vfioDevices, device) sandboxConfig.Containers[cnt].DeviceInfos[dev].Port = sandboxConfig.HypervisorConfig.HotPlugVFIO } @@ -686,6 +688,7 @@ func newSandbox(ctx context.Context, sandboxConfig SandboxConfig, factory Factor } for _, dev := range vfioDevices { + s.Logger().Info("cold-plug device: ", dev) _, err := s.AddDevice(ctx, dev) if err != nil { s.Logger().WithError(err).Debug("Cannot cold-plug add device") diff --git a/src/runtime/virtcontainers/sandbox_test.go b/src/runtime/virtcontainers/sandbox_test.go index 90a2af7ee..b735c5511 100644 --- a/src/runtime/virtcontainers/sandbox_test.go +++ b/src/runtime/virtcontainers/sandbox_test.go @@ -606,6 +606,7 @@ func TestSandboxAttachDevicesVFIO(t *testing.T) { HostPath: path, ContainerPath: path, DevType: "c", + Port: config.RootPort, } dev, err := dm.NewDevice(deviceInfo) assert.Nil(t, err, "deviceManager.NewDevice return error: %v", err)