From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.crosthwaite@xilinx.com, afaerber@suse.de
Subject: [Qemu-devel] [RFC PATCH 00/13] "Light" memory region QOMification
Date: Wed, 11 Jun 2014 14:19:23 +0200 [thread overview]
Message-ID: <1402489176-19738-1-git-send-email-pbonzini@redhat.com> (raw)
This series is an approach to MemoryRegion QOMification that is
complementary to Peter's posted patches. Instead of focusing on
properties, it places attention on modeling the lifetime of memory
regions correctly. MemoryRegions are added to the QOM tree as
children of their owner device, and analogously to what was done
for devices, memory_region_destroy becomes a simple forwarder for
object_unparent. Still, I am including Peter's refactorings and
also read-only access to region properties.
In fact, with this change memory_region_destroy becomes mostly
obsolete, because when the owner dies the children memory regions
will be unparented themselves and then (as they lose the last ref)
finalized.
In other words, this effectively achieves the same as
http://lists.gnu.org/archive/html/qemu-devel/2013-09/msg00477.html
except it does this by way of removing code rather than adding it!
Indeed I have a follow-up that drops all but 7 calls to
memory_region_destroy.
I have already applied patches 5 and 6 to the memory branch.
Paolo Bonzini (5):
qom: move unparenting to the child property's release callback
qom: delete properties before calling instance_finalize
memory: MemoryRegion: use /machine as default owner
memory: MemoryRegion: rename parent to container
memory: MemoryRegion: replace owner field with QOM parent
Peter Crosthwaite (8):
qom: object: Ignore refs/unrefs of NULL
qom: object: remove parent pointer when unparenting
memory: MemoryRegion: factor out subregion add functionality
memory: MemoryRegion: factor out memory region re-adder
memory: MemoryRegion: QOMify
memory: MemoryRegion: Add container and addr props
memory: MemoryRegion: Add may-overlap and priority props
memory: MemoryRegion: Add size property
exec.c | 4 +-
include/exec/memory.h | 29 +++---
memory.c | 255 ++++++++++++++++++++++++++++++++++++++++----------
qom/object.c | 29 +++---
4 files changed, 235 insertions(+), 82 deletions(-)
--
1.8.3.1
next reply other threads:[~2014-06-11 12:19 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-11 12:19 Paolo Bonzini [this message]
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 01/13] qom: object: Ignore refs/unrefs of NULL Paolo Bonzini
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 02/13] qom: object: remove parent pointer when unparenting Paolo Bonzini
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 03/13] qom: move unparenting to the child property's release callback Paolo Bonzini
2014-06-11 13:35 ` Peter Crosthwaite
2014-06-11 14:01 ` Paolo Bonzini
2014-06-11 14:10 ` Peter Crosthwaite
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 04/13] qom: delete properties before calling instance_finalize Paolo Bonzini
2014-06-11 13:42 ` Peter Crosthwaite
2014-06-11 14:03 ` Paolo Bonzini
2014-06-17 12:29 ` Peter Crosthwaite
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 05/13] memory: MemoryRegion: factor out subregion add functionality Paolo Bonzini
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 06/13] memory: MemoryRegion: factor out memory region re-adder Paolo Bonzini
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 07/13] memory: MemoryRegion: use /machine as default owner Paolo Bonzini
2014-06-17 12:24 ` Peter Crosthwaite
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 08/13] memory: MemoryRegion: rename parent to container Paolo Bonzini
2014-06-11 13:46 ` Peter Crosthwaite
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 09/13] memory: MemoryRegion: QOMify Paolo Bonzini
2014-06-11 13:12 ` Peter Crosthwaite
2014-06-11 14:15 ` Paolo Bonzini
2014-06-11 14:32 ` Peter Crosthwaite
2014-06-11 14:48 ` Paolo Bonzini
2014-06-17 12:17 ` Peter Crosthwaite
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 10/13] memory: MemoryRegion: replace owner field with QOM parent Paolo Bonzini
2014-06-11 14:03 ` Peter Crosthwaite
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 11/13] memory: MemoryRegion: Add container and addr props Paolo Bonzini
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 12/13] memory: MemoryRegion: Add may-overlap and priority props Paolo Bonzini
2014-06-11 12:19 ` [Qemu-devel] [RFC PATCH 13/13] memory: MemoryRegion: Add size property Paolo Bonzini
2014-06-17 12:27 ` [Qemu-devel] [RFC PATCH 00/13] "Light" memory region QOMification Peter Crosthwaite
2014-06-17 12:35 ` Paolo Bonzini
2014-06-17 12:51 ` Peter Crosthwaite
2014-06-17 12:57 ` Paolo Bonzini
2014-06-25 9:45 ` Peter Crosthwaite
2014-06-25 9:47 ` Paolo Bonzini
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=1402489176-19738-1-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=afaerber@suse.de \
--cc=peter.crosthwaite@xilinx.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).