Skip to content

Commit f5c0b58

Browse files
committed
block_with_iommu: improve test case
1. Using the clone image as os image avoids breaking the original image file. 2. Force killing VM after test avoids the underlying issue and VM recover operation. 3. Support iommu test for virtio-blk device 4. Add debug information Signed-off-by: qingwangrh <[email protected]>
1 parent 8afa49f commit f5c0b58

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

qemu/tests/block_with_iommu.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import re
2+
import time
23

34
from virttest import cpu, error_context
45

@@ -57,14 +58,29 @@ def verify_iommu_enabled():
5758
test.cancel("This case only support Intel platform.")
5859

5960
vm = env.get_vm(params["main_vm"])
60-
vm.verify_alive()
61-
session = vm.wait_for_login(timeout=360)
62-
verify_iommu_enabled()
61+
logger = test.log
62+
try:
63+
logger.debug("Test Start")
64+
vm.verify_alive()
65+
session = vm.wait_for_login(timeout=360)
66+
verify_iommu_enabled()
67+
time.sleep(30)
68+
logger.debug("Execute IO CMD")
69+
session.cmd(params.get("dd_cmd"))
6370

64-
session.cmd(params.get("dd_cmd"))
65-
66-
if params.get("reload_kernel_cmd"):
67-
reload_kernel(session)
68-
69-
session = vm.reboot(session, timeout=360)
70-
session.cmd(params.get("dd_cmd"))
71+
if params.get("reload_kernel_cmd"):
72+
logger.debug("reload_kernel")
73+
reload_kernel(session)
74+
logger.debug("Before reboot")
75+
session = vm.reboot(session, timeout=180)
76+
logger.debug("Execute IO CMD after reboot")
77+
session.cmd(params.get("dd_cmd"))
78+
logger.debug("Test over")
79+
finally:
80+
logger.debug("Destroy VM ...")
81+
vm.monitors = []
82+
vm.destroy(gracefully=False)
83+
logger.debug("Destroy VM End")
84+
params["enable_guest_iommu"] = "no"
85+
env.unregister_vm(params["main_vm"])
86+
logger.debug("Finally block over ")

qemu/tests/cfg/block_with_iommu.cfg

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
enable_guest_iommu = yes
99
virtio_dev_ats = on
1010
machine_type_extra_params = "kernel-irqchip=split"
11+
clone_master = yes
12+
master_images_clone = image1
13+
remove_image_image1 = yes
1114
variants:
1215
- verify_enabled:
1316
only Linux
1417
no RHEL.7
1518
no Host_RHEL.m7
16-
only virtio_scsi
1719
virtio_dev_disable_legacy = on
1820
virtio_dev_disable_modern = off
1921
check_key_words = "DMAR: IOMMU enabled;"
@@ -22,9 +24,6 @@
2224
variants:
2325
- @default:
2426
- reload_kernel:
25-
clone_master = yes
26-
master_images_clone = image1
27-
remove_image_image1 = yes
2827
force_reset_go_down_check = shell
2928
reload_kernel_cmd = 'kexec -l /boot/%s --initrd=/boot/%s --command-line="%s"'
3029
cmd_get_kernel_ver = uname -r

0 commit comments

Comments
 (0)