[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/12] Get Xen PV shim running in qemu
From: |
David Woodhouse |
Subject: |
[PATCH 0/12] Get Xen PV shim running in qemu |
Date: |
Mon, 16 Oct 2023 16:18:57 +0100 |
I hadn't got round to getting the PV shim running yet; I thought it would
need work on the multiboot loader. Turns out it doesn't. I *did* need to
fix a couple of brown-paper-bag bugs in the per-vCPU upcall vector support,
and implement Xen console support though. Now I can test PV guests:
$ qemu-system-x86_64 --accel kvm,xen-version=0x40011,kernel-irqchip=split \
-chardev stdio,mux=on,id=char0 -device xen-console,chardev=char0 \
-drive file=${GUEST_IMAGE},if=xen -display none -m 1G \
-kernel ~/git/xen/xen/xen -initrd ~/git/linux/arch/x86/boot/bzImage \
-append "loglvl=all -- console=hvc0 root=/dev/xvda1"
blockdev.c | 15 +++-
hw/block/xen-block.c | 26 +++++-
hw/char/trace-events | 8 ++
hw/char/xen_console.c | 522
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
hw/i386/kvm/meson.build | 1 +
hw/i386/kvm/trace-events | 2 +
hw/i386/kvm/xen-stubs.c | 5 ++
hw/i386/kvm/xen_evtchn.c | 6 ++
hw/i386/kvm/xen_gnttab.c | 32 ++++++-
hw/i386/kvm/xen_primary_console.c | 167
++++++++++++++++++++++++++++++++++
hw/i386/kvm/xen_primary_console.h | 22 +++++
hw/i386/kvm/xen_xenstore.c | 21 ++++-
hw/xen/xen-backend.c | 81 +++++++++++++----
hw/xen/xen-bus.c | 21 ++++-
hw/xen/xen-legacy-backend.c | 1 -
include/hw/xen/interface/arch-arm.h | 37 ++++----
include/hw/xen/interface/arch-x86/cpuid.h | 31 +++----
include/hw/xen/interface/arch-x86/xen-x86_32.h | 19 +---
include/hw/xen/interface/arch-x86/xen-x86_64.h | 19 +---
include/hw/xen/interface/arch-x86/xen.h | 26 +-----
include/hw/xen/interface/event_channel.h | 19 +---
include/hw/xen/interface/features.h | 19 +---
include/hw/xen/interface/grant_table.h | 19 +---
include/hw/xen/interface/hvm/hvm_op.h | 19 +---
include/hw/xen/interface/hvm/params.h | 19 +---
include/hw/xen/interface/io/blkif.h | 27 ++----
include/hw/xen/interface/io/console.h | 19 +---
include/hw/xen/interface/io/fbif.h | 19 +---
include/hw/xen/interface/io/kbdif.h | 19 +---
include/hw/xen/interface/io/netif.h | 25 ++----
include/hw/xen/interface/io/protocols.h | 19 +---
include/hw/xen/interface/io/ring.h | 49 +++++-----
include/hw/xen/interface/io/usbif.h | 19 +---
include/hw/xen/interface/io/xenbus.h | 19 +---
include/hw/xen/interface/io/xs_wire.h | 36 ++++----
include/hw/xen/interface/memory.h | 30 +++----
include/hw/xen/interface/physdev.h | 23 +----
include/hw/xen/interface/sched.h | 19 +---
include/hw/xen/interface/trace.h | 19 +---
include/hw/xen/interface/vcpu.h | 19 +---
include/hw/xen/interface/version.h | 19 +---
include/hw/xen/interface/xen-compat.h | 19 +---
include/hw/xen/interface/xen.h | 19 +---
include/hw/xen/xen-backend.h | 4 +
include/hw/xen/xen-bus.h | 2 +
include/sysemu/kvm_xen.h | 1 +
target/i386/kvm/kvm.c | 4 +
target/i386/kvm/xen-emu.c | 35 ++++++--
48 files changed, 941 insertions(+), 680 deletions(-)