From: "Michael S. Tsirkin" <mst@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
kvm@vger.kernel.org, qemu-devel@nongnu.org,
teawater <teawaterz@linux.alibaba.com>,
Alex Shi <alex.shi@linux.alibaba.com>,
Janosch Frank <frankja@linux.ibm.com>,
Juan Quintela <quintela@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Richard Henderson <rth@twiddle.net>,
Eric Farman <farman@linux.ibm.com>,
Lukas Straub <lukasstraub2@web.de>,
Eduardo Habkost <ehabkost@redhat.com>,
Sergio Lopez <slp@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
"qemu-arm@nongnu.org" <qemu-arm@nongnu.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Keith Busch <kbusch@kernel.org>,
Hailiang Zhang <zhang.zhanghailiang@huawei.com>,
Tony Krowiak <akrowiak@linux.ibm.com>,
Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
Pierre Morel <pmorel@linux.ibm.com>,
Cornelia Huck <cohuck@redhat.com>,
qemu-s390x@nongnu.org, Igor Mammedov <imammedo@redhat.com>
Subject: Re: [PATCH v4 00/21] virtio-mem: Paravirtualized memory hot(un)plug
Date: Wed, 24 Jun 2020 11:33:21 -0400 [thread overview]
Message-ID: <20200624113157-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200610115419.51688-1-david@redhat.com>
On Wed, Jun 10, 2020 at 01:53:58PM +0200, David Hildenbrand wrote:
> This is the very basic, initial version of virtio-mem. More info on
> virtio-mem in general can be found in the Linux kernel driver v2 posting
> [1] and in patch #10. The Linux driver is currently on its way upstream.
>
> This series is based on [3]:
> "[PATCH v1] pc: Support coldplugging of virtio-pmem-pci devices on all
> buses"
> And [4]:
> "[PATCH v2] hmp: Make json format optional for qom-set"
>
> The patches can be found at:
> https://github.com/davidhildenbrand/qemu.git virtio-mem-v4
OK so looks sane to me.
IIUC there are a couple of minor tweaks still so I'm expecting v5
of this.
You want me to merge this, right?
> "The basic idea of virtio-mem is to provide a flexible,
> cross-architecture memory hot(un)plug solution that avoids many limitations
> imposed by existing technologies, architectures, and interfaces."
>
> There are a lot of addons in the works (esp. protection of unplugged
> memory, better hugepage support (esp. when reading unplugged memory),
> resizeable memory backends, support for more architectures, ...), this is
> the very basic version to get the ball rolling.
>
> The first 8 patches make sure we don't have any sudden surprises e.g., if
> somebody tries to pin all memory in RAM blocks, resulting in a higher
> memory consumption than desired. The remaining patches add basic virtio-mem
> along with support for x86-64. The last patch indicates to the guest OS
> the maximum possible PFN using ACPI SRAT, such that Linux can properly
> enable the swiotlb when booting only with DMA memory.
>
> [1] https://lkml.kernel.org/r/20200311171422.10484-1-david@redhat.com
> [2] https://lkml.kernel.org/r/20200507140139.17083-1-david@redhat.com
> [3] https://lkml.kernel.org/r/20200525084511.51379-1-david@redhat.com
> [3] https://lkml.kernel.org/r/20200610075153.33892-1-david@redhat.com
>
> Based-on: <20200525084511.51379-1-david@redhat.com>
> Based-on: <20200610075153.33892-1-david@redhat.com>
> Cc: teawater <teawaterz@linux.alibaba.com>
> Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
>
> v3 -> v4
> - Adapt to virtio-mem config layout change (block size now is 64bit)
> - Added "numa: Auto-enable NUMA when any memory devices are possible"
>
> v2 -> v3:
> - Rebased on upstream/[3]
> - "virtio-mem: Exclude unplugged memory during migration"
> -- Added
> - "virtio-mem: Paravirtualized memory hot(un)plug"
> -- Simplify bitmap operations, find consecutive areas
> -- Tweak error messages
> -- Reshuffle some checks
> -- Minor cleanups
> - "accel/kvm: Convert to ram_block_discard_disable()"
> - "target/i386: sev: Use ram_block_discard_disable()"
> -- Keep asserts clean of functional things
>
> v1 -> v2:
> - Rebased to object_property_*() changes
> - "exec: Introduce ram_block_discard_(disable|require)()"
> -- Change the function names and rephrase/add comments
> - "virtio-balloon: Rip out qemu_balloon_inhibit()"
> -- Add and use "migration_in_incoming_postcopy()"
> - "migration/rdma: Use ram_block_discard_disable()"
> -- Add a comment regarding pin_all vs. !pin_all
> - "virtio-mem: Paravirtualized memory hot(un)plug"
> -- Replace virtio_mem_discard_inhibited() by
> migration_in_incoming_postcopy()
> -- Drop some asserts
> -- Drop virtio_mem_bad_request(), use virtio_error() directly, printing
> more information
> -- Replace "Note: Discarding should never fail ..." comments by
> error_report()
> -- Replace virtio_stw_p() by cpu_to_le16()
> -- Drop migration_addr and migration_block_size
> -- Minor cleanups
> - "linux-headers: update to contain virtio-mem"
> -- Updated to latest v4 in Linux
> - General changes
> -- Fixup the users of the renamed ram_block_discard_(disable|require)
> -- Use "X: cannot disable RAM discard"-styled error messages
> - Added
> -- "virtio-mem: Migration sanity checks"
> -- "virtio-mem: Add trace events"
>
> David Hildenbrand (21):
> exec: Introduce ram_block_discard_(disable|require)()
> vfio: Convert to ram_block_discard_disable()
> accel/kvm: Convert to ram_block_discard_disable()
> s390x/pv: Convert to ram_block_discard_disable()
> virtio-balloon: Rip out qemu_balloon_inhibit()
> target/i386: sev: Use ram_block_discard_disable()
> migration/rdma: Use ram_block_discard_disable()
> migration/colo: Use ram_block_discard_disable()
> linux-headers: update to contain virtio-mem
> virtio-mem: Paravirtualized memory hot(un)plug
> virtio-pci: Proxy for virtio-mem
> MAINTAINERS: Add myself as virtio-mem maintainer
> hmp: Handle virtio-mem when printing memory device info
> numa: Handle virtio-mem in NUMA stats
> pc: Support for virtio-mem-pci
> virtio-mem: Allow notifiers for size changes
> virtio-pci: Send qapi events when the virtio-mem size changes
> virtio-mem: Migration sanity checks
> virtio-mem: Add trace events
> virtio-mem: Exclude unplugged memory during migration
> numa: Auto-enable NUMA when any memory devices are possible
>
> MAINTAINERS | 8 +
> accel/kvm/kvm-all.c | 4 +-
> balloon.c | 17 -
> exec.c | 52 ++
> hw/arm/virt.c | 2 +
> hw/core/numa.c | 17 +-
> hw/i386/Kconfig | 1 +
> hw/i386/microvm.c | 1 +
> hw/i386/pc.c | 50 +-
> hw/i386/pc_piix.c | 1 +
> hw/i386/pc_q35.c | 1 +
> hw/s390x/s390-virtio-ccw.c | 22 +-
> hw/vfio/ap.c | 10 +-
> hw/vfio/ccw.c | 11 +-
> hw/vfio/common.c | 53 +-
> hw/vfio/pci.c | 6 +-
> hw/virtio/Kconfig | 11 +
> hw/virtio/Makefile.objs | 2 +
> hw/virtio/trace-events | 10 +
> hw/virtio/virtio-balloon.c | 8 +-
> hw/virtio/virtio-mem-pci.c | 157 ++++
> hw/virtio/virtio-mem-pci.h | 34 +
> hw/virtio/virtio-mem.c | 872 ++++++++++++++++++++
> include/exec/memory.h | 41 +
> include/hw/boards.h | 1 +
> include/hw/pci/pci.h | 1 +
> include/hw/vfio/vfio-common.h | 4 +-
> include/hw/virtio/virtio-mem.h | 86 ++
> include/migration/colo.h | 2 +-
> include/migration/misc.h | 2 +
> include/standard-headers/linux/virtio_ids.h | 1 +
> include/standard-headers/linux/virtio_mem.h | 211 +++++
> include/sysemu/balloon.h | 2 -
> migration/migration.c | 15 +-
> migration/postcopy-ram.c | 23 -
> migration/rdma.c | 18 +-
> migration/savevm.c | 11 +-
> monitor/hmp-cmds.c | 16 +
> monitor/monitor.c | 1 +
> qapi/misc.json | 64 +-
> target/i386/sev.c | 7 +
> 41 files changed, 1730 insertions(+), 126 deletions(-)
> create mode 100644 hw/virtio/virtio-mem-pci.c
> create mode 100644 hw/virtio/virtio-mem-pci.h
> create mode 100644 hw/virtio/virtio-mem.c
> create mode 100644 include/hw/virtio/virtio-mem.h
> create mode 100644 include/standard-headers/linux/virtio_mem.h
>
> --
> 2.26.2
next prev parent reply other threads:[~2020-06-24 15:35 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-10 11:53 [PATCH v4 00/21] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-06-10 11:53 ` [PATCH v4 01/21] exec: Introduce ram_block_discard_(disable|require)() David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 02/21] vfio: Convert to ram_block_discard_disable() David Hildenbrand
2020-06-10 13:04 ` Tony Krowiak
2020-06-10 14:13 ` David Hildenbrand
2020-06-16 11:15 ` Cornelia Huck
2020-06-10 11:54 ` [PATCH v4 03/21] accel/kvm: " David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 04/21] s390x/pv: " David Hildenbrand
2020-06-16 11:17 ` Cornelia Huck
2020-06-10 11:54 ` [PATCH v4 05/21] virtio-balloon: Rip out qemu_balloon_inhibit() David Hildenbrand
2020-06-16 10:56 ` Dr. David Alan Gilbert
2020-06-24 15:32 ` Michael S. Tsirkin
2020-06-10 11:54 ` [PATCH v4 06/21] target/i386: sev: Use ram_block_discard_disable() David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 07/21] migration/rdma: " David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 08/21] migration/colo: " David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 09/21] linux-headers: update to contain virtio-mem David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 10/21] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 11/21] virtio-pci: Proxy for virtio-mem David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 12/21] MAINTAINERS: Add myself as virtio-mem maintainer David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 13/21] hmp: Handle virtio-mem when printing memory device info David Hildenbrand
2020-06-17 17:53 ` Dr. David Alan Gilbert
2020-06-17 17:54 ` Dr. David Alan Gilbert
2020-06-10 11:54 ` [PATCH v4 14/21] numa: Handle virtio-mem in NUMA stats David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 15/21] pc: Support for virtio-mem-pci David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 16/21] virtio-mem: Allow notifiers for size changes David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 17/21] virtio-pci: Send qapi events when the virtio-mem " David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 18/21] virtio-mem: Migration sanity checks David Hildenbrand
2020-06-17 17:59 ` Dr. David Alan Gilbert
2020-06-18 10:39 ` David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 19/21] virtio-mem: Add trace events David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 20/21] virtio-mem: Exclude unplugged memory during migration David Hildenbrand
2020-06-10 11:54 ` [PATCH v4 21/21] numa: Auto-enable NUMA when any memory devices are possible David Hildenbrand
2020-06-24 15:33 ` Michael S. Tsirkin [this message]
2020-06-24 15:40 ` [PATCH v4 00/21] virtio-mem: Paravirtualized memory hot(un)plug 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=20200624113157-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=akrowiak@linux.ibm.com \
--cc=alex.shi@linux.alibaba.com \
--cc=alex.williamson@redhat.com \
--cc=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=farman@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=imammedo@redhat.com \
--cc=kbusch@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=lukasstraub2@web.de \
--cc=pankaj.gupta.linux@gmail.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=pmorel@linux.ibm.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=quintela@redhat.com \
--cc=rth@twiddle.net \
--cc=slp@redhat.com \
--cc=teawaterz@linux.alibaba.com \
--cc=zhang.zhanghailiang@huawei.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).