From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Paolo Bonzini <pbonzini@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>,
qemu-ppc@nongnu.org, Alexander Graf <agraf@suse.de>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v5 01/11] memory: Sanity check that no listeners remain on a destroyed AddressSpace
Date: Thu, 27 Mar 2014 16:40:37 +1100 [thread overview]
Message-ID: <5333B9D5.5040106@ozlabs.ru> (raw)
In-Reply-To: <532AC0D9.1050304@redhat.com>
On 03/20/2014 09:20 PM, Paolo Bonzini wrote:
> Il 12/03/2014 06:52, Alexey Kardashevskiy ha scritto:
>> From: David Gibson <david@gibson.dropbear.id.au>
>>
>> At the moment, most AddressSpace objects last as long as the guest system
>> in practice, but that could well change in future. In addition, for VFIO
>> we will be introducing some private per-AdressSpace information, which must
>> be disposed of before the AddressSpace itself is destroyed.
>>
>> To reduce the chances of subtle bugs in this area, this patch adds
>> asssertions to ensure that when an AddressSpace is destroyed, there are no
>> remaining MemoryListeners using that AS as a filter.
>>
>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>> ---
>> memory.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/memory.c b/memory.c
>> index 3f1df23..678661e 100644
>> --- a/memory.c
>> +++ b/memory.c
>> @@ -1722,12 +1722,19 @@ void address_space_init(AddressSpace *as,
>> MemoryRegion *root, const char *name)
>>
>> void address_space_destroy(AddressSpace *as)
>> {
>> + MemoryListener *listener;
>> +
>> /* Flush out anything from MemoryListeners listening in on this */
>> memory_region_transaction_begin();
>> as->root = NULL;
>> memory_region_transaction_commit();
>> QTAILQ_REMOVE(&address_spaces, as, address_spaces_link);
>> address_space_destroy_dispatch(as);
>> +
>> + QTAILQ_FOREACH(listener, &memory_listeners, link) {
>> + assert(listener->address_space_filter != as);
>> + }
>> +
>> flatview_unref(as->current_map);
>> g_free(as->name);
>> g_free(as->ioeventfds);
>>
>
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
What happens next to this patch and the next one ("int128: add
int128_exts64()")? I mean who you expect to pull them? Alex Graf? :) Thanks.
>
> An alternative is to add a count of listeners to the address space and
> assert that it is 0.
>
> Paolo
--
Alexey
next prev parent reply other threads:[~2014-03-27 5:40 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-12 5:52 [Qemu-devel] [PATCH v5 00/11] vfio on spapr-ppc64 Alexey Kardashevskiy
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 01/11] memory: Sanity check that no listeners remain on a destroyed AddressSpace Alexey Kardashevskiy
2014-03-20 10:20 ` Paolo Bonzini
2014-03-20 11:45 ` David Gibson
2014-03-27 5:40 ` Alexey Kardashevskiy [this message]
2014-03-27 12:15 ` Paolo Bonzini
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 02/11] int128: add int128_exts64() Alexey Kardashevskiy
2014-03-20 10:19 ` Paolo Bonzini
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 03/11] vfio: Fix 128 bit handling Alexey Kardashevskiy
2014-03-20 10:20 ` Paolo Bonzini
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 04/11] vfio: rework to have error paths Alexey Kardashevskiy
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 05/11] vfio: Introduce VFIO address spaces Alexey Kardashevskiy
2014-03-19 19:57 ` Alex Williamson
2014-03-28 3:42 ` Alexey Kardashevskiy
2014-03-31 19:14 ` Alex Williamson
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 06/11] vfio: Create VFIOAddressSpace objects as needed Alexey Kardashevskiy
2014-03-19 19:57 ` Alex Williamson
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 07/11] vfio: Add guest side IOMMU support Alexey Kardashevskiy
2014-03-19 19:57 ` Alex Williamson
2014-03-20 5:25 ` David Gibson
2014-03-28 5:12 ` Alexey Kardashevskiy
2014-03-31 19:59 ` Alex Williamson
2014-03-21 7:59 ` Alexey Kardashevskiy
2014-03-21 14:17 ` Alex Williamson
2014-03-21 14:23 ` Paolo Bonzini
2014-03-28 4:49 ` Alexey Kardashevskiy
2014-03-31 19:54 ` Alex Williamson
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 08/11] spapr-iommu: add SPAPR VFIO IOMMU device Alexey Kardashevskiy
2014-04-03 12:17 ` Alexander Graf
2014-04-07 4:07 ` Alexey Kardashevskiy
2014-04-10 12:13 ` Alexander Graf
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 09/11] spapr vfio: add vfio_container_spapr_get_info() Alexey Kardashevskiy
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 10/11] spapr-vfio: add spapr-pci-vfio-host-bridge to support vfio Alexey Kardashevskiy
2014-03-13 8:12 ` [Qemu-devel] [PATCH v6] " Alexey Kardashevskiy
2014-03-19 19:57 ` [Qemu-devel] [PATCH v5 10/11] " Alex Williamson
2014-03-28 6:01 ` Alexey Kardashevskiy
2014-03-31 20:09 ` Alex Williamson
2014-04-01 6:25 ` Alexey Kardashevskiy
2014-04-01 18:21 ` Alex Williamson
2014-03-12 5:52 ` [Qemu-devel] [PATCH v5 11/11] spapr-vfio: enable for spapr Alexey Kardashevskiy
2014-03-19 19:57 ` Alex Williamson
2014-03-19 20:12 ` [Qemu-devel] [PATCH v5 00/11] vfio on spapr-ppc64 Alex Williamson
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=5333B9D5.5040106@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.