All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC v1] Add declarations for hierarchical memory region API
Date: Sun, 22 May 2011 15:18:02 +0300	[thread overview]
Message-ID: <4DD8FEFA.1020604@redhat.com> (raw)
In-Reply-To: <BANLkTi=i84nt0z0p9rFTv_O30rQaFiiZ7w@mail.gmail.com>

On 05/22/2011 03:06 PM, Blue Swirl wrote:
> On Sun, May 22, 2011 at 2:36 PM, Avi Kivity<avi@redhat.com>  wrote:
> >  On 05/22/2011 12:32 PM, Blue Swirl wrote:
> >>
> >>  >>    >      +void memory_region_add_coalescing(MemoryRegion *mr,
> >>  >>    >      +                                  target_phys_addr_t offset,
> >>  >>    >      +                                  target_phys_addr_t size);
> >>  >>    >      +/* Disable MMIO coalescing for the region. */
> >>  >>    >      +void memory_region_clear_coalescing(MemoryRegion *mr);
> >>  >>
> >>  >>    Perhaps the interface could be more generic, like
> >>  >>    +void memory_region_set_property(MemoryRegion *mr, unsigned flags);
> >>  >>    +void memory_region_clear_property(MemoryRegion *mr, unsigned flags);
> >>  >>
> >>  >
> >>  >    Coalescing is a complex property, not just a boolean attribute.  We
> >>  >  probably
> >>  >    will have a number of boolean attributes later, though.
> >>
> >>  But what is the difference between adding coalescing to an area and
> >>  setting the bit property 'coalescing' to an area? At least what you
> >>  propose now is not so complex that it couldn't be handled as a single
> >>  bit.
> >
> >  Look at the API - add_coalescing() sets the coalescing property on a
> >  subrange of the memory region, not the entire region.
>
> Right, but doesn't the same apply to any other properties, they may
> apply to a full range or just a subrange?

We'll know when we have more properties.  I expect most will be region-wide.


> >
> >  Subregions are first-class regions.  In fact all regions are subregions
> >  except the root.
>
> Oh, I see now. Maybe the comments should describe this. Or perhaps the
> terms should be something like 'bus/bridge/root' and 'region' instead
> of 'region' and 'subregion'?

Problem is, memory_region_add_subregion() adds both sub-bridges and leaf 
regions.

It's quite possible that BAR 0 will be a leaf region, and BAR 1 will be 
a sub-bridge.

Can you suggest an alternative naming for the API?


> >  It's a tree of regions, each level adding an offset, clipping, and perhaps
> >  other attributes, with the leaves providing actual memory (mmio or RAM).
>
> I thought that there are two classes of regions, like PCI device vs. a
> single BAR.

It's true in a way, except the mapping is not 1:1.

-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


  reply	other threads:[~2011-05-22 12:18 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-19 14:12 [RFC v1] Memory API Avi Kivity
2011-05-19 14:12 ` [Qemu-devel] " Avi Kivity
2011-05-19 14:12 ` [RFC v1] Add declarations for hierarchical memory region API Avi Kivity
2011-05-19 14:12   ` [Qemu-devel] " Avi Kivity
2011-05-19 19:07   ` Alex Williamson
2011-05-20  9:18     ` Avi Kivity
2011-05-20  9:18       ` [Qemu-devel] " Avi Kivity
2011-05-19 19:27   ` Jan Kiszka
2011-05-19 19:27     ` [Qemu-devel] " Jan Kiszka
2011-05-20  9:20     ` Avi Kivity
2011-05-20  9:20       ` [Qemu-devel] " Avi Kivity
2011-05-19 20:43   ` Anthony Liguori
2011-05-20  9:23     ` Avi Kivity
2011-05-20 14:06       ` Richard Henderson
2011-05-20 14:06         ` Richard Henderson
2011-05-20 14:31         ` Anthony Liguori
2011-05-20 14:31           ` Anthony Liguori
2011-05-20 14:40           ` Richard Henderson
2011-05-20 14:40             ` Richard Henderson
2011-05-20 14:46             ` Anthony Liguori
2011-05-20 18:16               ` Blue Swirl
2011-05-20 18:16                 ` Blue Swirl
2011-05-22  6:40                 ` Avi Kivity
2011-05-22  6:40                   ` Avi Kivity
2011-05-22  6:39               ` Avi Kivity
2011-05-22  6:39                 ` [Qemu-devel] " Avi Kivity
2011-05-22 15:46                 ` Anthony Liguori
2011-05-22 15:52                   ` Avi Kivity
2011-05-22  6:38           ` Avi Kivity
2011-05-22  6:38             ` Avi Kivity
2011-05-22 15:44             ` Anthony Liguori
2011-05-22 15:44               ` [Qemu-devel] " Anthony Liguori
2011-05-22 15:56               ` Avi Kivity
2011-05-22 15:56                 ` [Qemu-devel] " Avi Kivity
2011-05-22  7:01         ` Avi Kivity
2011-05-22  7:01           ` [Qemu-devel] " Avi Kivity
2011-05-19 21:04   ` Stefan Weil
2011-05-20  9:26     ` Avi Kivity
2011-05-19 21:11   ` Stefan Hajnoczi
2011-05-19 21:11     ` [Qemu-devel] " Stefan Hajnoczi
2011-05-20  9:28     ` Avi Kivity
2011-05-20  9:28       ` [Qemu-devel] " Avi Kivity
2011-05-20 17:59   ` Blue Swirl
2011-05-22  6:45     ` Avi Kivity
2011-05-22  9:32       ` Blue Swirl
2011-05-22  9:32         ` [Qemu-devel] " Blue Swirl
2011-05-22 11:36         ` Avi Kivity
2011-05-22 12:06           ` Blue Swirl
2011-05-22 12:18             ` Avi Kivity [this message]
2011-05-22 15:32               ` Blue Swirl
2011-05-22 15:36                 ` Avi Kivity
2011-05-22  7:04     ` Avi Kivity
2011-05-22  7:04       ` [Qemu-devel] " Avi Kivity

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=4DD8FEFA.1020604@redhat.com \
    --to=avi@redhat.com \
    --cc=blauwirbel@gmail.com \
    --cc=kvm@vger.kernel.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.