From: Igor Mammedov <imammedo@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-devel@nongnu.org,
Murilo Opsfelder Araujo <muriloo@linux.ibm.com>,
Collin Walling <walling@linux.ibm.com>,
Eduardo Habkost <ehabkost@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,
Paolo Bonzini <pbonzini@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH RFCv2 0/9] qdev: Hotplug handler chaining + virtio-pmem
Date: Mon, 28 Jan 2019 15:18:33 +0100 [thread overview]
Message-ID: <20190128151833.15532428@redhat.com> (raw)
In-Reply-To: <20190123195527.29575-1-david@redhat.com>
On Wed, 23 Jan 2019 20:55:18 +0100
David Hildenbrand <david@redhat.com> wrote:
> 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.
we probably should merge this ones even without pmem patches.
> The remaining patches are a modified prototype of virtio-pmem.
I'm not sure yet that virtio-pmem should be merged.
Initial goal for fake pmem was to eliminate page-cache in guest
so that only host will have it and cached pages could be shared
between several guest.
However recently (if I read kernel driver thread right),
sharing is to be disabled due to security implication and then
only dropping page cache on one side is left, which could be done
using existing frontends/backends (disabling caching on host side).
> 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
>
next prev parent reply other threads:[~2019-01-28 14:18 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-23 19:55 [Qemu-devel] [PATCH RFCv2 0/9] qdev: Hotplug handler chaining + virtio-pmem David Hildenbrand
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 ` Igor Mammedov [this message]
2019-01-28 14:22 ` [Qemu-devel] [PATCH RFCv2 0/9] qdev: Hotplug handler chaining + virtio-pmem 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=20190128151833.15532428@redhat.com \
--to=imammedo@redhat.com \
--cc=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.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 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).