qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: <qemu-devel@nongnu.org>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Paul Durrant" <paul@xen.org>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Marcelo Tosatti" <mtosatti@redhat.com>,
	qemu-block@nongnu.org, xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org
Subject: [PATCH v4 00/17] Get Xen PV shim running in QEMU, add net and console
Date: Mon, 6 Nov 2023 14:34:50 +0000	[thread overview]
Message-ID: <20231106143507.1060610-1-dwmw2@infradead.org> (raw)

The Xen PV shim requires a PV console; add that. Also update the Xen PV 
network support to the new XenDevice model so that it can be used with 
emulated Xen guests. Fix up the Xen block support to allow it to be used
with '-device file=IMAGE,if=xen'.

Update the documentation to reflect all of these, taking the opportunity
to simplify what it says about q35, by making unplug work for AHCI.

Ignore the VCPU_SSHOTTMR_future timer flag, and advertise the 'fixed'
per-vCPU upcall vector support, as newer upstream Xen do.

Fix a bug where net_cleanup() would remove the NIC from underneath the 
emulated network devices, which doesn't work well when network devices 
have their own destructors (as the Xen PV one has to, in order to clean 
up the XenStore nodes).

v4:
 • Drop the fixes from the start of the series, which have been sent as
   a separate pull request (cc: qemu-stable):
   https://lore.kernel.org/qemu-devel/20231106103955.200867-1-dwmw2@infradead.org/
 • Go back to the original, more hackish, version of making `-nic` work
   for Xen network. The better fix for that is not going to get through
   review before the soft freeze.
 • Fix the documentation so the docs can reference the '-initrd' command
   line option with newer Sphinx.
 • Improve the duplicate detection for Xen block devices to match all
   partitions and even the same disk number on different majors.

David Woodhouse (17):
      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: 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
      net: do not delete nics in net_cleanup()
      xen-platform: unplug AHCI disks
      doc/sphinx/hxtool.py: add optional label argument to SRST directive
      docs: update Xen-on-KVM documentation



 MAINTAINERS                                    |   2 +-
 blockdev.c                                     |  15 +-
 docs/sphinx/hxtool.py                          |  18 +-
 docs/system/i386/xen.rst                       | 107 +++--
 docs/system/invocation.rst                     |   1 +
 hw/block/xen-block.c                           | 118 ++++-
 hw/char/trace-events                           |   8 +
 hw/char/xen_console.c                          | 572 +++++++++++++++++++------
 hw/i386/kvm/meson.build                        |   1 +
 hw/i386/kvm/trace-events                       |   2 +
 hw/i386/kvm/xen-stubs.c                        |   8 +
 hw/i386/kvm/xen_evtchn.c                       | 151 +++----
 hw/i386/kvm/xen_gnttab.c                       |   7 +-
 hw/i386/kvm/xen_primary_console.c              | 193 +++++++++
 hw/i386/kvm/xen_primary_console.h              |  23 +
 hw/i386/kvm/xen_xenstore.c                     |  23 +-
 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                               | 484 ++++++++++++++++-----
 hw/xen/xen-backend.c                           |  27 +-
 hw/xen/xen-bus.c                               |  23 +-
 hw/xen/xen-legacy-backend.c                    |   1 -
 hw/xen/xen_devconfig.c                         |  28 --
 hw/xenpv/xen_machine_pv.c                      |  10 -
 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                       |   5 +-
 include/hw/xen/xen-legacy-backend.h            |   1 -
 net/net.c                                      |  28 +-
 qemu-options.hx                                |  14 +-
 target/i386/kvm/kvm.c                          |   4 +
 target/i386/kvm/xen-emu.c                      |  43 +-
 64 files changed, 1681 insertions(+), 991 deletions(-)




             reply	other threads:[~2023-11-06 14:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-06 14:34 David Woodhouse [this message]
2023-11-06 14:34 ` [PATCH v4 01/17] i386/xen: Ignore VCPU_SSHOTTMR_future flag in set_singleshot_timer() David Woodhouse
2023-11-06 14:34 ` [PATCH v4 02/17] hw/xen: Clean up event channel 'type_val' handling to use union David Woodhouse
2023-11-06 14:34 ` [PATCH v4 03/17] include: update Xen public headers to Xen 4.17.2 release David Woodhouse
2023-11-06 14:34 ` [PATCH v4 04/17] i386/xen: advertise XEN_HVM_CPUID_UPCALL_VECTOR in CPUID David Woodhouse
2023-11-06 14:34 ` [PATCH v4 05/17] hw/xen: populate store frontend nodes with XenStore PFN/port David Woodhouse
2023-11-06 14:34 ` [PATCH v4 06/17] hw/xen: automatically assign device index to block devices David Woodhouse
2023-11-06 15:58   ` Paul Durrant
2023-11-06 14:34 ` [PATCH v4 07/17] hw/xen: add get_frontend_path() method to XenDeviceClass David Woodhouse
2023-11-06 14:34 ` [PATCH v4 08/17] hw/xen: do not repeatedly try to create a failing backend device David Woodhouse
2023-11-06 14:34 ` [PATCH v4 09/17] hw/xen: update Xen console to XenDevice model David Woodhouse
2023-11-06 14:35 ` [PATCH v4 10/17] hw/xen: add support for Xen primary console in emulated mode David Woodhouse
2023-11-06 14:35 ` [PATCH v4 11/17] hw/xen: only remove peers of PCI NICs on unplug David Woodhouse
2023-11-06 14:35 ` [PATCH v4 12/17] hw/xen: update Xen PV NIC to XenDevice model David Woodhouse
2023-11-06 14:35 ` [PATCH v4 13/17] hw/i386/pc: support '-nic' for xen-net-device David Woodhouse
2023-11-06 16:01   ` Paul Durrant
2023-11-06 14:35 ` [PATCH v4 14/17] net: do not delete nics in net_cleanup() David Woodhouse
2023-11-07  9:26   ` David Woodhouse
2023-11-06 14:35 ` [PATCH v4 15/17] xen-platform: unplug AHCI disks David Woodhouse
2023-11-06 14:35 ` [PATCH v4 16/17] doc/sphinx/hxtool.py: add optional label argument to SRST directive David Woodhouse
2023-11-06 16:06   ` Paul Durrant
2023-11-07  9:25   ` David Woodhouse
2023-11-06 14:35 ` [PATCH v4 17/17] docs: update Xen-on-KVM documentation David Woodhouse
2023-11-06 16:10   ` Paul Durrant

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=20231106143507.1060610-1-dwmw2@infradead.org \
    --to=dwmw2@infradead.org \
    --cc=anthony.perard@citrix.com \
    --cc=eduardo@habkost.net \
    --cc=hreitz@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwolf@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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 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).