qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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>,
	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>,
	Eduardo Habkost <ehabkost@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	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 v3 00/20] virtio-mem: Paravirtualized memory hot(un)plug
Date: Tue, 9 Jun 2020 09:11:20 -0400	[thread overview]
Message-ID: <20200609091034-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200603144914.41645-1-david@redhat.com>

On Wed, Jun 03, 2020 at 04:48:54PM +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 latest Linux driver v4 can be found at [2].
> 
> This series is based on [3]:
>     "[PATCH v1] pc: Support coldplugging of virtio-pmem-pci devices on all
>      buses"
> 
> The patches can be found at:
>     https://github.com/davidhildenbrand/qemu.git virtio-mem-v3

So given we tweaked the config space a bit, this needs a respin.


> "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.
> 
> 
> Note: Since commit 7d2ef6dcc1cf ("hmp: Simplify qom-set"), the behavior of
> qom-set changed and we can no longer pass proper sizes (e.g., 300M). The
> description in patch #10 is outdated - but I hope that we'll bring back the
> old behaviour, so I kept it for now :)
> 
> [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
> 
> Cc: teawater <teawaterz@linux.alibaba.com>
> Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
> 
> 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 (20):
>   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
> 
>  MAINTAINERS                                 |   8 +
>  accel/kvm/kvm-all.c                         |   4 +-
>  balloon.c                                   |  17 -
>  exec.c                                      |  52 ++
>  hw/core/numa.c                              |   6 +
>  hw/i386/Kconfig                             |   1 +
>  hw/i386/pc.c                                |  49 +-
>  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                      | 876 ++++++++++++++++++++
>  include/exec/memory.h                       |  41 +
>  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 +
>  36 files changed, 1721 insertions(+), 121 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.25.4



  parent reply	other threads:[~2020-06-09 13:12 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-03 14:48 [PATCH v3 00/20] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-06-03 14:48 ` [PATCH v3 01/20] exec: Introduce ram_block_discard_(disable|require)() David Hildenbrand
2020-06-03 14:48 ` [PATCH v3 02/20] vfio: Convert to ram_block_discard_disable() David Hildenbrand
2020-06-03 14:48 ` [PATCH v3 03/20] accel/kvm: " David Hildenbrand
2020-06-03 14:48 ` [PATCH v3 04/20] s390x/pv: " David Hildenbrand
2020-06-03 14:48 ` [PATCH v3 05/20] virtio-balloon: Rip out qemu_balloon_inhibit() David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 06/20] target/i386: sev: Use ram_block_discard_disable() David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 07/20] migration/rdma: " David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 08/20] migration/colo: " David Hildenbrand
2020-06-06 19:34   ` Lukas Straub
2020-06-03 14:49 ` [PATCH v3 09/20] linux-headers: update to contain virtio-mem David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 10/20] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 11/20] virtio-pci: Proxy for virtio-mem David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 12/20] MAINTAINERS: Add myself as virtio-mem maintainer David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 13/20] hmp: Handle virtio-mem when printing memory device info David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 14/20] numa: Handle virtio-mem in NUMA stats David Hildenbrand
2020-06-03 18:33   ` Pankaj Gupta
2020-06-03 14:49 ` [PATCH v3 15/20] pc: Support for virtio-mem-pci David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 16/20] virtio-mem: Allow notifiers for size changes David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 17/20] virtio-pci: Send qapi events when the virtio-mem " David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 18/20] virtio-mem: Migration sanity checks David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 19/20] virtio-mem: Add trace events David Hildenbrand
2020-06-03 14:49 ` [PATCH v3 20/20] virtio-mem: Exclude unplugged memory during migration David Hildenbrand
2020-06-03 15:15 ` [PATCH v3 00/20] virtio-mem: Paravirtualized memory hot(un)plug Eric Blake
2020-06-09 13:11 ` Michael S. Tsirkin [this message]
2020-06-09 13:26   ` David Hildenbrand
2020-06-09 15:59     ` Michael S. Tsirkin
2020-06-09 16:18       ` Eduardo Habkost
2020-06-09 18:38         ` David Hildenbrand
2020-06-09 18:42           ` Michael S. Tsirkin
2020-06-09 19:41             ` Sean Christopherson
2020-06-09 19:54               ` David Hildenbrand
2020-06-10  7:36         ` 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=20200609091034-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=akrowiak@linux.ibm.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=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-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=rth@twiddle.net \
    --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).