Re: [PATCH v3 11/13] x86/xen: use lazy_mmu_state when context-switching
From: Kevin Brodsky <hidden>
Date: 2025-10-27 13:38:11
Also in:
linux-arm-kernel, linux-mm, lkml, sparclinux, xen-devel
On 24/10/2025 17:17, David Woodhouse wrote:
On Fri, 2025-10-24 at 17:05 +0200, Kevin Brodsky wrote:quoted
On 24/10/2025 16:47, David Woodhouse wrote:quoted
On Thu, 2025-10-23 at 22:06 +0200, David Hildenbrand wrote:quoted
On 15.10.25 10:27, Kevin Brodsky wrote:quoted
We currently set a TIF flag when scheduling out a task that is in lazy MMU mode, in order to restore it when the task is scheduled again. The generic lazy_mmu layer now tracks whether a task is in lazy MMU mode in task_struct::lazy_mmu_state. We can therefore check that state when switching to the new task, instead of using a separate TIF flag. Signed-off-by: Kevin Brodsky <redacted> ---Looks ok to me, but I hope we get some confirmation from x86 / xen folks.I know tglx has shouted at me in the past for precisely this reminder, but you know you can test Xen guests under QEMU/KVM now and don't need to actually run Xen? Has this been boot tested?I considered boot-testing a Xen guest (considering the Xen-specific changes in this series), but having no idea how to go about it I quickly gave up... Happy to follow instructions :)https://qemu-project.gitlab.io/qemu/system/i386/xen.html covers booting Xen HVM guests, and near the bottom PV guests too (for which you do need a copy of Xen to run in QEMU with '--kernel xen', and your distro's build should suffice for that). Let me know if you have any trouble. Here's a sample command line which works here... qemu-system-x86_64 -display none --accel kvm,xen-version=0x40011,kernel-irqchip=split -drive file=/var/lib/libvirt/images/fedora28.qcow2,if=xen -kernel ~/git/linux-2.6/arch/x86/boot/bzImage -append "root=/dev/xvda1 console=ttyS0" -serial mon:stdio
Thanks this is helpful! Unfortunately lazy_mmu is only used in the PV case, so I'd need to run a PV guest. And the distro I'm using (Arch Linux) does not have a Xen package :/ It can be built from source from the AUR but that looks rather involved. Are there some prebuilt binaries I could grab and just point QEMU to? - Kevin