From: "Michael S. Tsirkin" <mst@redhat.com>
To: Marcel Apfelbaum <marcel.a@redhat.com>
Cc: peter.maydell@linaro.org, aliguori@us.ibm.com,
jan.kiszka@siemens.com, qemu-devel@nongnu.org,
pbonzini@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v4 1/3] memory: allow MemoryRegion's priority field to accept negative values
Date: Sun, 15 Sep 2013 20:18:48 +0300 [thread overview]
Message-ID: <20130915171848.GA22396@redhat.com> (raw)
In-Reply-To: <1379261801-16969-2-git-send-email-marcel.a@redhat.com>
On Sun, Sep 15, 2013 at 07:16:39PM +0300, Marcel Apfelbaum 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 commit log is confusing: priorities are always local.
It should say something like this instead:
When regions overlap, priority can be used to specify
that a given region should obscure others.
Allow the priority to be negative, so tha the opposite
can be done: specify that other regions should obscure
a given one.
Acked-by: Michael S. Tsirkin <mst@redhat.com>
>
> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> ---
> Changes from v3:
> - Addressed Peter Maydell comments
> - Removed unnecessary changes to priority of MemoryListener
> - Ensured that priority is now signed in all related places
>
> hw/core/sysbus.c | 4 ++--
> include/exec/memory.h | 4 ++--
> include/hw/sysbus.h | 2 +-
> memory.c | 4 ++--
> 4 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c
> index b84cd4a..146f50a 100644
> --- a/hw/core/sysbus.c
> +++ b/hw/core/sysbus.c
> @@ -49,7 +49,7 @@ void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq)
> }
>
> static void sysbus_mmio_map_common(SysBusDevice *dev, int n, hwaddr addr,
> - bool may_overlap, unsigned priority)
> + bool may_overlap, int priority)
> {
> assert(n >= 0 && n < dev->num_mmio);
>
> @@ -81,7 +81,7 @@ void sysbus_mmio_map(SysBusDevice *dev, int n, hwaddr addr)
> }
>
> void sysbus_mmio_map_overlap(SysBusDevice *dev, int n, hwaddr addr,
> - unsigned priority)
> + int priority)
> {
> sysbus_mmio_map_common(dev, n, addr, true, priority);
> }
> diff --git a/include/exec/memory.h b/include/exec/memory.h
> index ebe0d24..480dfbf 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;
> @@ -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/include/hw/sysbus.h b/include/hw/sysbus.h
> index bb50a87..f5aaa05 100644
> --- a/include/hw/sysbus.h
> +++ b/include/hw/sysbus.h
> @@ -68,7 +68,7 @@ void sysbus_init_ioports(SysBusDevice *dev, pio_addr_t ioport, pio_addr_t size);
> void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq);
> void sysbus_mmio_map(SysBusDevice *dev, int n, hwaddr addr);
> void sysbus_mmio_map_overlap(SysBusDevice *dev, int n, hwaddr addr,
> - unsigned priority);
> + int priority);
> void sysbus_add_io(SysBusDevice *dev, hwaddr addr,
> MemoryRegion *mem);
> void sysbus_del_io(SysBusDevice *dev, MemoryRegion *mem);
> diff --git a/memory.c b/memory.c
> index 5a10fd0..f49d31a 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;
> @@ -1506,7 +1506,7 @@ void memory_region_set_enabled(MemoryRegion *mr, bool enabled)
> void memory_region_set_address(MemoryRegion *mr, hwaddr addr)
> {
> MemoryRegion *parent = mr->parent;
> - unsigned priority = mr->priority;
> + int priority = mr->priority;
> bool may_overlap = mr->may_overlap;
>
> if (addr == mr->addr || !parent) {
> --
> 1.8.3.1
next prev parent reply other threads:[~2013-09-15 17:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-15 16:16 [Qemu-devel] [PATCH v4 0/3] pci: implement upstream master abort protocol Marcel Apfelbaum
2013-09-15 16:16 ` [Qemu-devel] [PATCH v4 1/3] memory: allow MemoryRegion's priority field to accept negative values Marcel Apfelbaum
2013-09-15 17:18 ` Michael S. Tsirkin [this message]
2013-09-15 17:25 ` Peter Maydell
2013-09-15 17:34 ` Peter Maydell
2013-09-15 16:16 ` [Qemu-devel] [PATCH v4 2/3] docs/memory: Explicitly state that MemoryRegion priority is signed Marcel Apfelbaum
2013-09-15 17:33 ` Peter Maydell
2013-09-15 16:16 ` [Qemu-devel] [PATCH v4 3/3] hw/pci: handle downstream pci master abort Marcel Apfelbaum
2013-09-15 17:30 ` Michael S. Tsirkin
2013-09-15 17:32 ` Peter Maydell
2013-09-15 18:32 ` Marcel Apfelbaum
2013-09-15 20:25 ` Michael S. Tsirkin
2013-09-15 20:40 ` Peter Maydell
2013-09-15 21:07 ` Michael S. Tsirkin
2013-09-15 21:41 ` Peter Maydell
2013-09-16 6:14 ` Michael S. Tsirkin
2013-09-16 6:57 ` Peter Maydell
2013-09-15 18:26 ` 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=20130915171848.GA22396@redhat.com \
--to=mst@redhat.com \
--cc=afaerber@suse.de \
--cc=aliguori@us.ibm.com \
--cc=jan.kiszka@siemens.com \
--cc=marcel.a@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 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.