qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/24] Get Xen PV shim running in Qemu, add net & console
@ 2023-10-19 15:39 David Woodhouse
  2023-10-19 15:39 ` [PATCH v2 01/24] i386/xen: Don't advertise XENFEAT_supervisor_mode_kernel David Woodhouse
                   ` (23 more replies)
  0 siblings, 24 replies; 35+ messages in thread
From: David Woodhouse @ 2023-10-19 15:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Hanna Reitz, Stefano Stabellini, Anthony Perard,
	Paul Durrant, Marc-André Lureau, Paolo Bonzini,
	Richard Henderson, Eduardo Habkost, Michael S. Tsirkin,
	Marcel Apfelbaum, Jason Wang, Marcelo Tosatti, Cleber Rosa,
	Philippe Mathieu-Daudé, Wainer dos Santos Moschetta,
	Beraldo Leal, qemu-block, xen-devel, kvm, Bernhard Beschow,
	Joel Upham

Round up a couple of outstanding fixes, add console support and fix up
per-vCPU upcall vector support (which was previously untested), and that
allows us to boot PV guests. Document it.

Having fixed up the per-vCPU upcall vector support, pull in slightly 
newer Xen headers just for the definition of the CPUID bit that lets
us tell the Linux (6.0+) kernel to use it. That'll help with testing.

v2 of this series falls down the rabbithole a little more...

Now I know how to convert drivers to the "new" XenDevice model, let's do 
so for the Xen PV network driver, which has been on the TODO list for a 
while. Fix that up for actual Xen PV guests too (-m xenfv) because 
that's hosed right now even before the conversion.

Fix up net_cleanup() so it doesn't free the NICs from underneath the
device models which own them.

Switch the avocado test to use the Xen PV network device too.

Simplify the user experience for "-device file=IMAGE,if=xen" because
that was offending me.

Update the documentation, and take the opportunity to fix up that bit
about unplug not working on Q35, because I worked out how to do that
when heckling Joel's attempt to do so.

https://git.infradead.org/users/dwmw2/qemu.git/shortlog/refs/heads/xenfv-pv-2

David Woodhouse (24):
      i386/xen: Don't advertise XENFEAT_supervisor_mode_kernel
      i386/xen: fix per-vCPU upcall vector for Xen emulation
      hw/xen: select kernel mode for per-vCPU event channel upcall vector
      hw/xen: don't clear map_track[] in xen_gnttab_reset()
      hw/xen: fix XenStore watch delivery to guest
      i386/xen: Ignore VCPU_SSHOTTMR_future flag in set_singleshot_timer()
      hw/xen: Clean up event channel 'type_val' handling to use union
      include: update Xen public headers to Xen 4.17.2 release
      i386/xen: advertise XEN_HVM_CPUID_UPCALL_VECTOR in CPUID
      hw/xen: populate store frontend nodes with XenStore PFN/port
      hw/xen: automatically assign device index to block devices
      hw/xen: add get_frontend_path() method to XenDeviceClass
      hw/xen: do not repeatedly try to create a failing backend device
      hw/xen: update Xen console to XenDevice model
      hw/xen: add support for Xen primary console in emulated mode
      hw/xen: handle soft reset for primary console
      hw/xen: only remove peers of PCI NICs on unplug
      hw/xen: update Xen PV NIC to XenDevice model
      hw/i386/pc: support '-nic' for xen-net-device
      hw/xenpv: fix '-nic' support for xen-net-device
      net: do not delete nics in net_cleanup()
      tests/avocado: switch to using xen-net-device for Xen guest tests
      xen-platform: unplug AHCI disks
      docs: update Xen-on-KVM documentation

 MAINTAINERS                                    |   2 +-
 blockdev.c                                     |  15 +-
 docs/system/i386/xen.rst                       | 100 +++--
 hw/block/xen-block.c                           |  38 ++
 hw/char/trace-events                           |   8 +
 hw/char/xen_console.c                          | 539 +++++++++++++++++++------
 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                       | 166 ++++----
 hw/i386/kvm/xen_gnttab.c                       |  32 +-
 hw/i386/kvm/xen_primary_console.c              | 194 +++++++++
 hw/i386/kvm/xen_primary_console.h              |  23 ++
 hw/i386/kvm/xen_xenstore.c                     |  31 +-
 hw/i386/pc.c                                   |  11 +-
 hw/i386/pc_piix.c                              |   2 +-
 hw/i386/pc_q35.c                               |   2 +-
 hw/i386/xen/xen_platform.c                     |  77 ++--
 hw/net/meson.build                             |   2 +-
 hw/net/trace-events                            |  11 +
 hw/net/xen_nic.c                               | 471 +++++++++++++++------
 hw/xen/xen-backend.c                           |  27 +-
 hw/xen/xen-bus.c                               |  17 +-
 hw/xen/xen-legacy-backend.c                    |   1 -
 hw/xen/xen_devconfig.c                         |  56 +--
 hw/xenpv/xen_machine_pv.c                      |  21 +-
 include/hw/i386/pc.h                           |   4 +-
 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                   |   1 +
 include/hw/xen/xen-bus.h                       |   4 +-
 include/hw/xen/xen-legacy-backend.h            |   3 +-
 include/sysemu/kvm_xen.h                       |   1 +
 net/net.c                                      |  28 +-
 target/i386/kvm/kvm.c                          |   4 +
 target/i386/kvm/xen-emu.c                      |  56 ++-
 tests/avocado/kvm_xen_guest.py                 |   2 +-
 63 files changed, 1585 insertions(+), 1017 deletions(-)




^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2023-10-24 18:39 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-19 15:39 [PATCH v2 0/24] Get Xen PV shim running in Qemu, add net & console David Woodhouse
2023-10-19 15:39 ` [PATCH v2 01/24] i386/xen: Don't advertise XENFEAT_supervisor_mode_kernel David Woodhouse
2023-10-19 15:39 ` [PATCH v2 02/24] i386/xen: fix per-vCPU upcall vector for Xen emulation David Woodhouse
2023-10-19 15:39 ` [PATCH v2 03/24] hw/xen: select kernel mode for per-vCPU event channel upcall vector David Woodhouse
2023-10-24 15:02   ` Paul Durrant
2023-10-19 15:40 ` [PATCH v2 04/24] hw/xen: don't clear map_track[] in xen_gnttab_reset() David Woodhouse
2023-10-24 15:03   ` Paul Durrant
2023-10-19 15:40 ` [PATCH v2 05/24] hw/xen: fix XenStore watch delivery to guest David Woodhouse
2023-10-24 15:19   ` Paul Durrant
2023-10-24 15:27     ` David Woodhouse
2023-10-19 15:40 ` [PATCH v2 06/24] i386/xen: Ignore VCPU_SSHOTTMR_future flag in set_singleshot_timer() David Woodhouse
2023-10-19 15:40 ` [PATCH v2 07/24] hw/xen: Clean up event channel 'type_val' handling to use union David Woodhouse
2023-10-19 15:40 ` [PATCH v2 08/24] include: update Xen public headers to Xen 4.17.2 release David Woodhouse
2023-10-19 15:40 ` [PATCH v2 09/24] i386/xen: advertise XEN_HVM_CPUID_UPCALL_VECTOR in CPUID David Woodhouse
2023-10-19 15:40 ` [PATCH v2 10/24] hw/xen: populate store frontend nodes with XenStore PFN/port David Woodhouse
2023-10-24 15:36   ` Paul Durrant
2023-10-19 15:40 ` [PATCH v2 11/24] hw/xen: automatically assign device index to block devices David Woodhouse
2023-10-19 15:40 ` [PATCH v2 12/24] hw/xen: add get_frontend_path() method to XenDeviceClass David Woodhouse
2023-10-19 15:40 ` [PATCH v2 13/24] hw/xen: do not repeatedly try to create a failing backend device David Woodhouse
2023-10-19 15:40 ` [PATCH v2 14/24] hw/xen: update Xen console to XenDevice model David Woodhouse
2023-10-19 15:40 ` [PATCH v2 15/24] hw/xen: add support for Xen primary console in emulated mode David Woodhouse
2023-10-19 15:40 ` [PATCH v2 16/24] hw/xen: handle soft reset for primary console David Woodhouse
2023-10-24 15:44   ` Paul Durrant
2023-10-24 15:48     ` David Woodhouse
2023-10-24 16:22       ` Paul Durrant
2023-10-24 18:38         ` David Woodhouse
2023-10-19 15:40 ` [PATCH v2 17/24] hw/xen: only remove peers of PCI NICs on unplug David Woodhouse
2023-10-19 15:40 ` [PATCH v2 18/24] hw/xen: update Xen PV NIC to XenDevice model David Woodhouse
2023-10-19 15:40 ` [PATCH v2 19/24] hw/i386/pc: support '-nic' for xen-net-device David Woodhouse
2023-10-19 15:40 ` [PATCH v2 20/24] hw/xenpv: fix '-nic' support " David Woodhouse
2023-10-19 15:40 ` [PATCH v2 21/24] net: do not delete nics in net_cleanup() David Woodhouse
2023-10-19 15:40 ` [PATCH v2 22/24] tests/avocado: switch to using xen-net-device for Xen guest tests David Woodhouse
2023-10-23  7:33   ` David Woodhouse
2023-10-19 15:40 ` [PATCH v2 23/24] xen-platform: unplug AHCI disks David Woodhouse
2023-10-19 15:40 ` [PATCH v2 24/24] docs: update Xen-on-KVM documentation David Woodhouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).