From: Marcel Apfelbaum <marcel.a@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Anthony Liguori" <aliguori@us.ibm.com>,
"QEMU Developers" <qemu-devel@nongnu.org>,
"Andreas Färber" <afaerber@suse.de>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH RFC 1/3] memory: allow MemoryRegion's priority field to accept negative values
Date: Mon, 09 Sep 2013 15:16:56 +0300 [thread overview]
Message-ID: <1378729016.3072.16.camel@localhost.localdomain> (raw)
In-Reply-To: <CAFEAcA9UMWBFmqGMLoQ3kBxYn0+79C4NAx42oGBokVAbO6KmxQ@mail.gmail.com>
On Mon, 2013-09-02 at 15:38 +0100, Peter Maydell wrote:
> On 2 September 2013 15:13, Marcel Apfelbaum <marcel.a@redhat.com> wrote:
> > Priority is used to make visible some subregions by obscuring
> > the parent MemoryRegion addresses overlapping with the subregion.
> >
> > By allowing the priority to be negative the opposite can be done:
> > Allow a subregion to be visible on all the addresses not covered
> > by the parent MemoryRegion or other subregions.
>
> This comment is not exactly accurate. Allowing priority to
> be signed is just a convenience: you can achieve exactly
> the same effect by specifying some positive priority for
> everything you map into the region and having the background
> region be priority zero. (If you care at all about priorities
> then everything being mapped into the region should be
> happening under the control of your code anyway.)
>
>
> > Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> > ---
> > include/exec/memory.h | 6 +++---
> > memory.c | 2 +-
> > 2 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/include/exec/memory.h b/include/exec/memory.h
> > index ebe0d24..6995087 100644
> > --- a/include/exec/memory.h
> > +++ b/include/exec/memory.h
> > @@ -153,7 +153,7 @@ struct MemoryRegion {
> > bool flush_coalesced_mmio;
> > MemoryRegion *alias;
> > hwaddr alias_offset;
> > - unsigned priority;
> > + int priority;
> > bool may_overlap;
> > QTAILQ_HEAD(subregions, MemoryRegion) subregions;
> > QTAILQ_ENTRY(MemoryRegion) subregions_link;
> > @@ -193,7 +193,7 @@ struct MemoryListener {
> > void (*coalesced_mmio_del)(MemoryListener *listener, MemoryRegionSection *section,
> > hwaddr addr, hwaddr len);
> > /* Lower = earlier (during add), later (during del) */
> > - unsigned priority;
> > + int priority;
>
> This is unrelated to MemoryRegion priorities -- it controls the
> order in which listener callbacks are called. Don't try to change
> both at once (and you only need the MR priorities anyway.)
>
> > AddressSpace *address_space_filter;
> > QTAILQ_ENTRY(MemoryListener) link;
> > };
> > @@ -779,7 +779,7 @@ void memory_region_add_subregion(MemoryRegion *mr,
> > void memory_region_add_subregion_overlap(MemoryRegion *mr,
> > hwaddr offset,
> > MemoryRegion *subregion,
> > - unsigned priority);
> > + int priority);
> >
> > /**
> > * memory_region_get_ram_addr: Get the ram address associated with a memory
> > diff --git a/memory.c b/memory.c
> > index 886f838..dfb3ae6 100644
> > --- a/memory.c
> > +++ b/memory.c
> > @@ -1473,7 +1473,7 @@ void memory_region_add_subregion(MemoryRegion *mr,
> > void memory_region_add_subregion_overlap(MemoryRegion *mr,
> > hwaddr offset,
> > MemoryRegion *subregion,
> > - unsigned priority)
> > + int priority)
> > {
> > subregion->may_overlap = true;
> > subregion->priority = priority;
>
> This isn't a complete set of changes. For instance
> memory_region_set_address() has a local variable 'priority'
> which should be signed now.
>
> sysbus_mmio_map_common() and sysbus_mmio_map_overlap()
> have priority arguments which need to change to match.
Missed that :(
Making necessary changes and send a new version
Thanks,
Marcel
>
> thanks
> -- PMM
>
next prev parent reply other threads:[~2013-09-09 12:17 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-02 14:13 [Qemu-devel] [PATCH RFC 0/3] pci: complete master abort protocol Marcel Apfelbaum
2013-09-02 14:13 ` [Qemu-devel] [PATCH RFC 1/3] memory: allow MemoryRegion's priority field to accept negative values Marcel Apfelbaum
2013-09-02 14:38 ` Peter Maydell
2013-09-02 14:46 ` Marcel Apfelbaum
2013-09-09 12:16 ` Marcel Apfelbaum [this message]
2013-09-02 14:13 ` [Qemu-devel] [PATCH RFC 2/3] hw/pci: add MemoryRegion ops for unassigned pci addresses Marcel Apfelbaum
2013-09-02 14:42 ` Peter Maydell
2013-09-02 15:46 ` Marcel Apfelbaum
2013-09-02 14:48 ` Michael S. Tsirkin
2013-09-02 14:51 ` Marcel Apfelbaum
2013-09-02 14:13 ` [Qemu-devel] [PATCH RFC 3/3] hw/pci-host: catch acesses to " Marcel Apfelbaum
2013-09-02 14:39 ` Peter Maydell
2013-09-02 15:42 ` Marcel Apfelbaum
2013-09-02 15:48 ` Andreas Färber
2013-09-02 15:53 ` Peter Maydell
2013-09-02 15:58 ` Peter Maydell
2013-09-02 16:00 ` Michael S. Tsirkin
2013-09-02 16:05 ` Peter Maydell
2013-09-02 16:17 ` Michael S. Tsirkin
2013-09-02 16:02 ` Marcel Apfelbaum
2013-09-02 15:57 ` Michael S. Tsirkin
2013-09-02 14:30 ` [Qemu-devel] [PATCH RFC 0/3] pci: complete master abort protocol Peter Maydell
2013-09-02 14:39 ` Marcel Apfelbaum
2013-09-02 14:43 ` Peter Maydell
2013-09-02 15:49 ` Marcel Apfelbaum
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=1378729016.3072.16.camel@localhost.localdomain \
--to=marcel.a@redhat.com \
--cc=afaerber@suse.de \
--cc=aliguori@us.ibm.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--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).