qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC v3 8/8] memory: add support for deleting HVA mapped MemoryRegion
Date: Wed, 8 Jul 2015 17:50:37 +0300	[thread overview]
Message-ID: <20150708174902-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20150708164355.43b615c9@igors-macbook-pro.local>

On Wed, Jul 08, 2015 at 04:43:55PM +0200, Igor Mammedov wrote:
> On Wed, 8 Jul 2015 12:58:55 +0300
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Wed, Jul 08, 2015 at 11:46:48AM +0200, Igor Mammedov wrote:
> > > Although memory_region_del_subregion() removes MemoryRegion
> > > from current address space, it's possible that it's still
> > > in use/referenced until old address space view is destroyed.
> > > That doesn't allow to unmap it from HVA region at the time
> > > of memory_region_del_subregion().
> > > As a solution track HVA mapped MemoryRegions in a list and
> > > don't allow to map another MemoryRegion at the same address
> > > until respective MemoryRegion is destroyed, delaying unmapping
> > > from HVA range to the time MemoryRegion destructor is called.
> > > 
> > > In memory hotplug terms it would mean that user should delete
> > > corresponding backend along with pc-dimm device:
> > >  device_del dimm1
> > >  object_del dimm1_backend_memdev
> > > after that dimm1_backend_memdev's MemoryRegion will be destroyed
> > > once all accesses to it are gone and old flatview is destroyed as
> > > well.
> > > As result it's possible that a following "device_add pc-dimm" at
> > > the same address may fail due to old mapping is still being present,
> > 
> > 
> > s/is still/still/
> fixed
> 
> > 
> > > hence add error argument to memory_region_add_subregion() API
> > > so it could report error and hotplug could be cancelled gracefully.
> > > 
> > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > 
> > The commit log seems a bit confusing.
> > API was added in previous patch, and this one actually
> > uses it.
> previous patch added qemu_ram_* API utilities at exec.c
> but this patch adds memory_region_* API changes that would allow
> to delete HVA mapped region safely.

I see two changes in memory.h, all private fields.

> Is there any suggestion how to make commit message less confusing.


Just make it match what the patch does.

> > > diff --git a/include/exec/memory.h b/include/exec/memory.h
> > > index ce0320a..d9c53f9 100644
> > > --- a/include/exec/memory.h
> > > +++ b/include/exec/memory.h
> > > @@ -174,6 +174,7 @@ struct MemoryRegion {
> > >      bool romd_mode;
> > >      bool ram;
> > >      void *rsvd_hva;
> > > +    bool hva_mapped;
> > >      bool skip_dump;
> > >      bool readonly; /* For RAM regions */
> > >      bool enabled;
> > > @@ -188,6 +189,7 @@ struct MemoryRegion {
> > >      QTAILQ_HEAD(subregions, MemoryRegion) subregions;
> > >      QTAILQ_ENTRY(MemoryRegion) subregions_link;
> > >      QTAILQ_HEAD(coalesced_ranges, CoalescedMemoryRange) coalesced;
> > > +    QTAILQ_ENTRY(MemoryRegion) hva_link;
> > >      const char *name;
> > >      uint8_t dirty_log_mask;
> > >      unsigned ioeventfd_nb;

  reply	other threads:[~2015-07-08 14:50 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-08  9:46 [Qemu-devel] [RFC v3 0/8] Fix QEMU crash during memory hotplug with vhost=on Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 1/8] memory: get rid of memory_region_destructor_ram_from_ptr() Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 2/8] memory: introduce MemoryRegion container with reserved HVA range Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 3/8] pc: reserve hotpluggable memory range with memory_region_init_hva_range() Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 4/8] pc: fix QEMU crashing when more than ~50 memory hotplugged Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 5/8] exec: make sure that RAMBlock descriptor won't be leaked Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 6/8] exec: add qemu_ram_unmap_hva() API for unmapping memory from HVA area Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 7/8] memory: extend memory_region_add_subregion() to support error reporting Igor Mammedov
2015-07-08 11:03   ` Michael S. Tsirkin
2015-07-08 11:09   ` Peter Maydell
2015-07-08 14:58     ` Igor Mammedov
2015-07-08 17:30       ` Michael S. Tsirkin
2015-07-08 18:41         ` Igor Mammedov
2015-07-09  6:58           ` Michael S. Tsirkin
2015-07-08 17:42       ` Paolo Bonzini
2015-07-08 18:58         ` Igor Mammedov
2015-07-08  9:46 ` [Qemu-devel] [RFC v3 8/8] memory: add support for deleting HVA mapped MemoryRegion Igor Mammedov
2015-07-08  9:58   ` Michael S. Tsirkin
2015-07-08 14:43     ` Igor Mammedov
2015-07-08 14:50       ` Michael S. Tsirkin [this message]
2015-07-08 10:01 ` [Qemu-devel] [RFC v3 0/8] Fix QEMU crash during memory hotplug with vhost=on Michael S. Tsirkin
2015-07-08 11:41   ` Igor Mammedov
2015-07-08 11:45     ` Michael S. Tsirkin
2015-07-08 15:46   ` Igor Mammedov
2015-07-09 17:04     ` Andrey Korolyov
2015-07-15 15:18       ` Igor Mammedov
2015-07-15 15:26         ` Andrey Korolyov
2015-07-15 16:08           ` Michael S. Tsirkin
2015-07-15 16:46             ` Andrey Korolyov
2015-07-16 20:35               ` Andrey Korolyov
2015-07-17 20:45                 ` Andrey Korolyov

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=20150708174902-mutt-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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).