From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>,
Eduardo Habkost <ehabkost@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>,
Cornelia Huck <cohuck@redhat.com>,
Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
David Hildenbrand <david@redhat.com>,
Collin Walling <walling@linux.ibm.com>,
Eric Blake <eblake@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Murilo Opsfelder Araujo <muriloo@linux.ibm.com>,
qemu-ppc@nongnu.org, qemu-s390x@nongnu.org
Subject: [Qemu-devel] [PATCH RFCv2 0/9] qdev: Hotplug handler chaining + virtio-pmem
Date: Wed, 23 Jan 2019 20:55:18 +0100 [thread overview]
Message-ID: <20190123195527.29575-1-david@redhat.com> (raw)
This series implements supprt for hotplug handler chaining (proposed
by Igor), something that is necessary to turn selected virtio devices into
memory devices. Planned devices inlude virtio-mem and virtio-pmem. The
current prototype of virtio-pmem is included.
The machine hotplug handler can intercept hotplug handler calls
to properly prepare/teardown the memory device part of a device. Control
is then passed on to the actual bus hotplug handler. So the default hotplug
handler is effectively overwritten to make interception possible.
It is based on the following patches/series
- [PATCH v1] pc: Use hotplug_handler_(plug|unplug|unplug_request)
-- Queued by Paolo
- [PATCH v3 0/2] s390x/pci: hotplug handler fixes and reworks
Patch 1-3 are the preparations for hotplug handler chaining. The remaining
patches are a modified prototype of virtio-pmem.
TODO:
- More testing for patch #1 + eventually write some unplug tests
- Pankaj has to fixup some things in "virtio-pmem: Prototype"
-- See patch description for details
I modified Pankajs work to work with this series. virtio-pmem is included
as it was requested during review of previous preparations to showcase a
real user, so we can discuss if this is good enough for us or if we have
to do further changes.
More details about virtio-pmem (including the Linux guest driver side)
can be found at:
https://lkml.org/lkml/2018/7/13/102
https://lkml.org/lkml/2019/1/9/756
Example: defining a simple virtio-pmem device (on /dev/zero for simplicity):
qemu-system-x86_64 \
-machine pc \
-monitor stdio \
-m 8G,maxmem=20G \
-object memory-backend-file,id=mem1,mem-path=/dev/zero,size=4G \
-device virtio-pmem-pci,id=vp1,memdev=mem1
QEMU 3.0.50 monitor - type 'help' for more information
(qemu) info memory-devices
Memory device [virtio-pmem]: "vp1"
memaddr: 0x240000000
size: 4294967296
memdev: /objects/mem1
(qemu) info memory_size_summary
base memory: 8589934592
plugged memory: 4294967296
RFC -> RFCv2
- "virtio-pmem: Prototype"
- Minor documentation/style changes
- "virtio-pci: Proxy for virtio-pmem"
-- Separate header file virtio-pmem-pci.h
- "pc: Support for virtio-pmem-pci"
-- Only handle virtio-pmem-pci specially
David Hildenbrand (6):
qdev: Let the hotplug_handler_unplug() caller delete the device
qdev: Provide qdev_get_bus_hotplug_handler()
virtio-pci: Allow to specify additional interfaces for the base type
hmp: Handle virtio-pmem when printing memory device infos
numa: Handle virtio-pmem in NUMA stats
pc: Support for virtio-pmem-pci
Igor Mammedov (1):
qdev: Let machine hotplug handler to override bus hotplug handler
Pankaj Gupta (2):
virtio-pmem: Prototype
virtio-pci: Proxy for virtio-pmem
default-configs/i386-softmmu.mak | 1 +
hmp.c | 27 +--
hw/acpi/cpu.c | 1 +
hw/acpi/memory_hotplug.c | 1 +
hw/acpi/pcihp.c | 3 +-
hw/core/qdev.c | 19 +-
hw/i386/pc.c | 75 +++++++-
hw/pci/pcie.c | 3 +-
hw/pci/shpc.c | 3 +-
hw/ppc/spapr.c | 4 +-
hw/ppc/spapr_pci.c | 3 +-
hw/s390x/css-bridge.c | 2 +-
hw/s390x/s390-pci-bus.c | 13 +-
hw/virtio/Makefile.objs | 3 +
hw/virtio/virtio-pci.c | 1 +
hw/virtio/virtio-pci.h | 1 +
hw/virtio/virtio-pmem-pci.c | 144 +++++++++++++++
hw/virtio/virtio-pmem-pci.h | 39 ++++
hw/virtio/virtio-pmem.c | 191 ++++++++++++++++++++
include/hw/qdev-core.h | 12 ++
include/hw/virtio/virtio-pmem.h | 54 ++++++
include/standard-headers/linux/virtio_ids.h | 1 +
numa.c | 24 +--
qapi/misc.json | 28 ++-
qdev-monitor.c | 9 +-
25 files changed, 612 insertions(+), 50 deletions(-)
create mode 100644 hw/virtio/virtio-pmem-pci.c
create mode 100644 hw/virtio/virtio-pmem-pci.h
create mode 100644 hw/virtio/virtio-pmem.c
create mode 100644 include/hw/virtio/virtio-pmem.h
--
2.17.2
next reply other threads:[~2019-01-23 20:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-23 19:55 David Hildenbrand [this message]
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 1/9] qdev: Let the hotplug_handler_unplug() caller delete the device David Hildenbrand
2019-01-28 14:07 ` Cornelia Huck
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 2/9] qdev: Let machine hotplug handler to override bus hotplug handler David Hildenbrand
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 3/9] qdev: Provide qdev_get_bus_hotplug_handler() David Hildenbrand
2019-01-28 14:01 ` Igor Mammedov
2019-01-28 14:02 ` David Hildenbrand
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 4/9] virtio-pmem: Prototype David Hildenbrand
2019-01-31 18:19 ` Markus Armbruster
2019-01-31 18:54 ` David Hildenbrand
2019-02-01 7:08 ` Markus Armbruster
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 5/9] virtio-pci: Allow to specify additional interfaces for the base type David Hildenbrand
2019-01-28 14:09 ` Cornelia Huck
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 6/9] virtio-pci: Proxy for virtio-pmem David Hildenbrand
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 7/9] hmp: Handle virtio-pmem when printing memory device infos David Hildenbrand
2019-01-25 17:58 ` Dr. David Alan Gilbert
2019-01-31 18:23 ` Markus Armbruster
2019-02-01 10:49 ` Dr. David Alan Gilbert
2019-02-01 14:11 ` Markus Armbruster
2019-02-01 15:15 ` Dr. David Alan Gilbert
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 8/9] numa: Handle virtio-pmem in NUMA stats David Hildenbrand
2019-01-23 19:55 ` [Qemu-devel] [PATCH RFCv2 9/9] pc: Support for virtio-pmem-pci David Hildenbrand
2019-02-06 13:01 ` Igor Mammedov
2019-02-06 13:10 ` David Hildenbrand
2019-01-28 14:18 ` [Qemu-devel] [PATCH RFCv2 0/9] qdev: Hotplug handler chaining + virtio-pmem Igor Mammedov
2019-01-28 14:22 ` David Hildenbrand
2019-01-31 14:52 ` David Hildenbrand
2019-02-06 13:18 ` Igor Mammedov
2019-02-06 13:26 ` David Hildenbrand
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=20190123195527.29575-1-david@redhat.com \
--to=david@redhat.com \
--cc=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=muriloo@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=walling@linux.ibm.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.