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;
next prev parent 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).