Skip to content

libvirt_vcpu_plug_unplug: add kdump test after vCPU hotplug/unplug! - #34

Open
Anushree-Mathur wants to merge 1 commit into
lop-devops:KVMCIfrom
Anushree-Mathur:cpu_kdump
Open

libvirt_vcpu_plug_unplug: add kdump test after vCPU hotplug/unplug!#34
Anushree-Mathur wants to merge 1 commit into
lop-devops:KVMCIfrom
Anushree-Mathur:cpu_kdump

Conversation

@Anushree-Mathur

Copy link
Copy Markdown

Test that the guest kernel survives a live vCPU count change by
triggering kdump immediately after hotplug and after unplug, then
verifying a new vmcore is generated and the guest recovers.

libvirt/tests/cfg/libvirt_vcpu_plug_unplug.cfg:
Add kdump_after_plug_unplug variant inside positive_test.vcpu_set
as a peer of with_maxvcpu, restricted to live + ppc64le/ppc64.
Three sub-variants:

  • hotplug_kdump: plug 4→8 vCPUs, trigger kdump, verify vmcore
  • unplug_kdump: unplug 8→4 vCPUs, trigger kdump, verify vmcore
  • plug_and_unplug_kdump: both in sequence
    on_crash=restart so the guest reboots after kdump capture and the
    test can log back in to verify the new vmcore.

libvirt/tests/src/libvirt_vcpu_plug_unplug.py:
Import utils_kdump and read kdump_after_plug_unplug/crash_dir params.
After successful hotplug and after successful unplug, call
utils_kdump.trigger_crash() with an explicit session (timeout=240)
and wait_time=120.
Guard the uptime reboot check with 'if not kdump_after_plug_unplug'
since kdump intentionally reboots the guest.
All existing non-kdump variants are unaffected.
Signed-off-by: Anushree-Mathur anushree.mathur@linux.ibm.com

Test that the guest kernel survives a live vCPU count change by
triggering kdump immediately after hotplug and after unplug, then
verifying a new vmcore is generated and the guest recovers.

libvirt/tests/cfg/libvirt_vcpu_plug_unplug.cfg:
  Add kdump_after_plug_unplug variant inside positive_test.vcpu_set
  as a peer of with_maxvcpu, restricted to live + ppc64le/ppc64.
  Three sub-variants:
  - hotplug_kdump:      plug 4→8 vCPUs, trigger kdump, verify vmcore
  - unplug_kdump:       unplug 8→4 vCPUs, trigger kdump, verify vmcore
  - plug_and_unplug_kdump: both in sequence
  on_crash=restart so the guest reboots after kdump capture and the
  test can log back in to verify the new vmcore.

libvirt/tests/src/libvirt_vcpu_plug_unplug.py:
  Import utils_kdump and read kdump_after_plug_unplug/crash_dir params.
  After successful hotplug and after successful unplug, call
  utils_kdump.trigger_crash() with an explicit session (timeout=240)
  and wait_time=120.
  Guard the uptime reboot check with 'if not kdump_after_plug_unplug'
  since kdump intentionally reboots the guest.
  All existing non-kdump variants are unaffected.
Signed-off-by: Anushree-Mathur <anushree.mathur@linux.ibm.com>
Signed-off-by: Anushree-Mathur <anushree.mathur@linux.ibm.com>
@Anushree-Mathur

Copy link
Copy Markdown
Author

 python3 avocado-setup.py --run-suite guest_cpu_kdump --guest-os SLES.16.1.ppc64le --only-filter 'virtio_scsi virtio_net qcow2' --no-download
14:38:30 INFO    : Env Config: /home/Anu/tests/config/wrapper/env.conf
14:38:30 INFO    : No Run Config: /home/Anu/tests/config/wrapper/no_run_tests.conf
14:38:30 WARNING : Overriding user setting and enabling kvm bootstrap as guest tests are requested
14:38:30 INFO    : Check for environment
14:38:31 INFO    : Creating temporary mux dir
14:38:31 INFO    :
14:38:31 INFO    : Running Guest Tests Suite cpu_kdump
14:38:31 INFO    : Running: /usr/local/bin/avocado run --vt-type libvirt --vt-config /home/Anu/tests/data/avocado-vt/backends/libvirt/cfg/cpu_kdump.cfg                 --force-job-id 0e46a3681b49b9067fb524bf82020e041d9f403b                 --job-results-dir /home/Anu/tests/results  --vt-only-filter                                             "virtio_scsi virtio_net qcow2 SLES.16.1.ppc64le"
/usr/local/lib/python3.13/site-packages/avocado/core/__init__.py:18: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
  import pkg_resources
No python imaging library installed. Screendump and Windows guest BSOD detection are disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
No python imaging library installed. PPM image conversion to JPEG disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
No python imaging library installed. Screendump and Windows guest BSOD detection are disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
No python imaging library installed. PPM image conversion to JPEG disabled. In order to enable it, please install python-imaging or the equivalent for your distro.
JOB ID     : 0e46a3681b49b9067fb524bf82020e041d9f403b
JOB LOG    : /home/Anu/tests/results/job-2026-08-13T14.38-0e46a36/job.log
 (01/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (01/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (53.61 s)
 (02/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (02/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (200.95 s)
 (03/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (03/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (211.57 s)
 (04/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED
 (04/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (368.44 s)
 (05/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (05/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (5.15 s)
 (06/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (06/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (53.57 s)
 (07/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (07/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (200.57 s)
 (08/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (08/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (211.32 s)
 (09/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED
 (09/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (368.55 s)
 (10/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (10/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (5.17 s)
 (11/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (11/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (53.46 s)
 (12/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (12/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (200.38 s)
 (13/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (13/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (211.25 s)
 (14/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED
 (14/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (369.13 s)
 (15/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (15/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (5.16 s)
 (16/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (16/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (53.85 s)
 (17/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (17/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (200.69 s)
 (18/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (18/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (211.37 s)
 (19/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED
 (19/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (368.46 s)
 (20/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (20/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (5.14 s)
 (21/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (21/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (52.74 s)
 (22/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (22/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (199.07 s)
 (23/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (23/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (209.38 s)
 (24/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED

 (24/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (367.25 s)
 (25/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (25/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (4.24 s)
 (26/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (26/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (47.77 s)
 (27/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (27/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (198.99 s)
 (28/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (28/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (209.26 s)
 (29/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED
 (29/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (366.78 s)
 (30/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (30/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (4.24 s)
 (31/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: STARTED
 (31/35) io-github-autotest-qemu.unattended_install.import.import.default_install.aio_native: PASS (54.96 s)
 (32/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: STARTED
 (32/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.hotplug_kdump: PASS (198.86 s)
 (33/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: STARTED
 (33/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.unplug_kdump: PASS (209.65 s)
 (34/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: STARTED
 (34/35) type_specific.io-github-autotest-libvirt.libvirt_vcpu_plug_unplug.positive_test.vcpu_set.live.kdump_after_plug_unplug.plug_and_unplug_kdump: PASS (365.89 s)
 (35/35) io-github-autotest-libvirt.remove_guest.without_disk: STARTED
 (35/35) io-github-autotest-libvirt.remove_guest.without_disk: PASS (5.17 s)
RESULTS    : PASS 35 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB HTML   : /home/Anu/tests/results/job-2026-08-13T14.38-0e46a36/results.html
JOB TIME   : 5935.11 s
16:17:30 INFO    :
16:17:30 INFO    : Summary of test results can be found below:
TestSuite                                                                                 TestRun    Summary

guest_cpu_kdump                                                                           Run        Successfully executed
/home/Anu/tests/results/job-2026-08-13T14.38-0e46a36/job.log
| PASS 35 || CANCEL 0 || ERRORS 0 || FAILURES 0 || SKIP 0 || WARN 0 || INTERRUPT 0 |

Test suites status:

TOTAL                1
RUN                  1
NOT_RUN              0
CANT_RUN             0

Final count summary for tests run:

TOTAL                35
PASS                 35
CANCEL               0
ERRORS               0
FAILURES             0
SKIP                 0
WARN                 0
INTERRUPT            0
16:17:30 INFO    : Removing temporary mux dir


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant