From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Ani Sinha <anisinha@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Zhao Liu <zhao1.liu@intel.com>,
qemu-devel@nongnu.org
Subject: Re: [PATCH v2 32/32] tests/functional/x86_64: add functional test to exercise vm fd change on reset
Date: Mon, 12 Jan 2026 14:36:02 +0000 [thread overview]
Message-ID: <aWUDCR5EQmWDWrob@redhat.com> (raw)
In-Reply-To: <20260112132259.76855-33-anisinha@redhat.com>
On Mon, Jan 12, 2026 at 06:52:45PM +0530, Ani Sinha wrote:
> A new functional test is added that exercises the code changes related to
> closing of the old KVM VM file descriptor and opening a new one upon VM reset.
> This normally happens when confidential guests are resetted but for
> non-confidential guests, we use a special machine specific debug/test parameter
> 'x-change-vmfd-on-reset' to enable this behavior.
> Only specific code changes related to re-initialization of SEV-ES, SEV-SNP and
> TDX platforms are not exercized in this test as they require hardware that
> supports running confidential guests.
>
> Signed-off-by: Ani Sinha <anisinha@redhat.com>
> ---
> MAINTAINERS | 6 ++
> tests/functional/x86_64/meson.build | 1 +
> .../x86_64/test_vmfd_change_reboot.py | 75 +++++++++++++++++++
> 3 files changed, 82 insertions(+)
> create mode 100755 tests/functional/x86_64/test_vmfd_change_reboot.py
> diff --git a/tests/functional/x86_64/test_vmfd_change_reboot.py b/tests/functional/x86_64/test_vmfd_change_reboot.py
> new file mode 100755
> index 0000000000..3b33322880
> --- /dev/null
> +++ b/tests/functional/x86_64/test_vmfd_change_reboot.py
> @@ -0,0 +1,75 @@
> +#!/usr/bin/env python3
> +#
> +# KVM VM file descriptor change on reset test
> +#
> +# Copyright © 2026 Red Hat, Inc.
> +#
> +# Author:
> +# Ani Sinha <anisinha@redhat.com>
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +import os
> +from qemu.machine import machine
> +
> +from qemu_test import QemuSystemTest, Asset, exec_command_and_wait_for_pattern
> +from qemu_test import wait_for_console_pattern
> +
> +class KVMGuest(QemuSystemTest):
> +
> + ASSET_UKI = Asset('https://gitlab.com/anisinha/misc-artifacts/'
> + '-/raw/main/uki.x86-64.efi?ref_type=heads',
> + 'e0f806bd1fa24111312e1fe849d2ee69808d4343930a5'
> + 'dc8c1688da17c65f576')
> + ASSET_OVMF = Asset('https://gitlab.com/anisinha/misc-artifacts/'
> + '-/raw/main/OVMF.stateless.fd?ref_type=heads',
> + '58a4275aafa8774bd6b1540adceae4ea434b8db75b476'
> + '11839ff47be88cfcf22')
What is the source of these two binaries - the repo doesn't show any
source code or references ? Is there no way we can use standard distro
images for this test ?
> +
> + def common_vm_setup(self):
> + self.require_accelerator("kvm")
> +
> + self.vm.set_console()
> +
> + self.vm.add_args("-accel", "kvm")
> + self.vm.add_args("-smp", "2")
> + self.vm.add_args("-cpu", "host")
> + self.vm.add_args("-m", "2G")
> + self.vm.add_args("-nographic", "-nodefaults")
> +
> + self.uki_path = self.ASSET_UKI.fetch()
> + self.ovmf_path = self.ASSET_OVMF.fetch()
> +
> + def run_and_check(self):
> + self.vm.add_args('-kernel', self.uki_path)
> + self.vm.add_args("-bios", self.ovmf_path)
> + # enable KVM VMFD change on reset for a non-coco VM
> + self.vm.add_args("-machine", "q35,x-change-vmfd-on-reset=on")
> + # enable tracing
> + self.vm.add_args("-d", "trace:kvm_reset_vmfd")
> +
> + try:
> + self.vm.launch()
> + except machine.VMLaunchFailure as e:
> + raise e
> +
> + self.log.info('VM launched')
> + console_pattern = 'bash-5.1#'
> + wait_for_console_pattern(self, console_pattern)
> + self.log.info('VM ready with a bash prompt')
> +
> + exec_command_and_wait_for_pattern(self, '/usr/sbin/reboot -f',
> + 'reboot: machine restart')
> + console_pattern = '# --- Hello world ---'
> + wait_for_console_pattern(self, console_pattern)
> + self.vm.shutdown()
> + self.assertRegex(self.vm.get_log(),
> + r'kvm_reset_vmfd \nINFO: virtual machine accel file '
> + 'descriptor has changed')
> +
> + def test_vmfd_change_on_reset(self):
> + self.common_vm_setup()
> + self.run_and_check()
> +
> +if __name__ == '__main__':
> + QemuSystemTest.main()
> --
> 2.42.0
>
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2026-01-12 14:36 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-12 13:22 [PATCH v2 00/32] Introduce support for confidential guest reset Ani Sinha
2026-01-12 13:22 ` [PATCH v2 01/32] i386/kvm: avoid installing duplicate msr entries in msr_handlers Ani Sinha
2026-01-12 13:22 ` [PATCH v2 02/32] hw/accel: add a per-accelerator callback to change VM accelerator handle Ani Sinha
2026-01-12 17:01 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 03/32] system/physmem: add helper to reattach existing memory after KVM VM fd change Ani Sinha
2026-01-12 13:22 ` [PATCH v2 04/32] accel/kvm: add changes required to support KVM VM file descriptor change Ani Sinha
2026-01-12 17:02 ` Paolo Bonzini
2026-01-13 5:22 ` Ani Sinha
2026-01-13 5:50 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 05/32] accel/kvm: mark guest state as unprotected after vm " Ani Sinha
2026-01-12 13:22 ` [PATCH v2 06/32] accel/kvm: add a notifier to indicate KVM VM file descriptor has changed Ani Sinha
2026-01-12 13:22 ` [PATCH v2 07/32] accel/kvm: add notifier to inform that the KVM VM file fd is about to be changed Ani Sinha
2026-01-12 13:22 ` [PATCH v2 08/32] i386/kvm: unregister smram listeners prior to vm file descriptor change Ani Sinha
2026-01-12 13:22 ` [PATCH v2 09/32] kvm/i386: implement architecture support for kvm " Ani Sinha
2026-01-12 17:06 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 10/32] hw/i386: refactor x86_bios_rom_init for reuse in confidential guest reset Ani Sinha
2026-01-12 13:22 ` [PATCH v2 11/32] kvm/i386: reload firmware for " Ani Sinha
2026-01-12 17:08 ` Paolo Bonzini
2026-01-13 13:58 ` Bernhard Beschow
2026-01-12 13:22 ` [PATCH v2 12/32] accel/kvm: rebind current VCPUs to the new KVM VM file descriptor upon reset Ani Sinha
2026-01-12 13:22 ` [PATCH v2 13/32] i386/tdx: refactor TDX firmware memory initialization code into a new function Ani Sinha
2026-01-12 13:22 ` [PATCH v2 14/32] i386/tdx: finalize TDX guest state upon reset Ani Sinha
2026-01-12 13:22 ` [PATCH v2 15/32] i386/tdx: add a pre-vmfd change notifier to reset tdx state Ani Sinha
2026-01-12 13:22 ` [PATCH v2 16/32] i386/sev: add migration blockers only once Ani Sinha
2026-01-12 17:16 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 17/32] i386/sev: add notifiers " Ani Sinha
2026-01-12 13:22 ` [PATCH v2 18/32] i386/sev: free existing launch update data and kernel hashes data on init Ani Sinha
2026-01-12 13:22 ` [PATCH v2 19/32] i386/sev: add support for confidential guest reset Ani Sinha
2026-01-12 17:12 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 20/32] hw/vfio: generate new file fd for pseudo device and rebind existing descriptors Ani Sinha
2026-01-12 13:22 ` [PATCH v2 21/32] kvm/i8254: refactor pit initialization into a helper Ani Sinha
2026-01-12 13:22 ` [PATCH v2 22/32] kvm/i8254: add support for confidential guest reset Ani Sinha
2026-01-12 13:22 ` [PATCH v2 23/32] hw/hyperv/vmbus: " Ani Sinha
2026-01-14 13:38 ` Maciej S. Szmigiero
2026-01-14 13:42 ` Daniel P. Berrangé
2026-01-14 14:40 ` Maciej S. Szmigiero
2026-01-15 7:26 ` Ani Sinha
2026-01-12 13:22 ` [PATCH v2 24/32] accel/kvm: add a per-confidential class callback to unlock guest state Ani Sinha
2026-01-12 17:11 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 25/32] kvm/xen-emu: re-initialize capabilities during confidential guest reset Ani Sinha
2026-01-12 17:19 ` Paolo Bonzini
2026-01-12 18:22 ` David Woodhouse
2026-01-13 5:26 ` Ani Sinha
2026-01-13 5:48 ` Paolo Bonzini
2026-01-12 13:22 ` [PATCH v2 26/32] kvm/xen_evtchn: add support for " Ani Sinha
2026-01-12 13:22 ` [PATCH v2 27/32] ppc/openpic: create a new openpic device and reattach mem region on coco reset Ani Sinha
2026-01-13 14:13 ` Bernhard Beschow
2026-01-12 13:22 ` [PATCH v2 28/32] kvm/vcpu: add notifiers to inform vcpu file descriptor change Ani Sinha
2026-01-12 13:22 ` [PATCH v2 29/32] kvm/i386/apic: set local apic after vcpu file descriptors changed Ani Sinha
2026-01-12 13:22 ` [PATCH v2 30/32] kvm/clock: add support for confidential guest reset Ani Sinha
2026-01-12 13:22 ` [PATCH v2 31/32] hw/machine: introduce machine specific option 'x-change-vmfd-on-reset' Ani Sinha
2026-01-12 13:22 ` [PATCH v2 32/32] tests/functional/x86_64: add functional test to exercise vm fd change on reset Ani Sinha
2026-01-12 14:36 ` Daniel P. Berrangé [this message]
2026-01-13 5:53 ` Ani Sinha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aWUDCR5EQmWDWrob@redhat.com \
--to=berrange@redhat.com \
--cc=anisinha@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.