All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH] memory: transaction API
Date: Thu, 21 Jul 2011 16:50:02 +0300	[thread overview]
Message-ID: <4E282E8A.40606@redhat.com> (raw)
In-Reply-To: <4E2826E1.6090404@siemens.com>

On 07/21/2011 04:17 PM, Jan Kiszka wrote:
> On 2011-07-21 14:58, Avi Kivity wrote:
> >  On 07/21/2011 03:52 PM, Jan Kiszka wrote:
> >>>
> >>>   The problem is that "update" can change lots of things.  offset, size,
> >>>   whether it's mmio or RAM, read-onlyness, even the wierd things like
> >>>   coalesced mmio.  So it's either a function with 324.2 parameters (or a
> >>>   large struct), or it's a series of functions with demarcation as to
> >>>   where the update begins and ends.
> >>
> >>  We do not need to provide update support for each and every bit, but for
> >>  the common cases. memory_region_update_alias(region, offset, size) would
> >>  be an excellent first candidate IMO.
> >
> >  It's not enough, look at cirrus and PAM.
>
> It's a perfect fit for cirrus, but PAM indeed requires set_readonly in
> addition.
>

It isn't a pefect fit for cirrus.  If the mode changes in a way that 
makes mapping the map as RAM possible, or vice versa, and if the banks 
are contiguous, then _update() results in two mappings or unmappings, 
while _commit() results in just one (since m_r_update_topology() merges 
the two adjacent regions).

> I also think now that describing a memory region offline via a struct
> and then passing that to an atomic add/del/update would be a more handy
> and future-proof API than an increasing number set functions.

Maybe.  But it's not sufficient for atomic changes involving multiple 
regions.

btw, there is another implementation issue involving SMP - if a region 
that obscures the middle of another region is removed, we'll have two 
regions removed and replaced with a larger one.  That causes some memory 
to be temporarily inaccessible.  I don't think it's a problem in 
practice, but if it is, we can fix it by stopping all vcpus if we detect 
this condition, and by adding an atomic 
change-memory-map-and-get-dirty-log ioctl to kvm.

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2011-07-21 13:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-21 10:21 [PATCH] memory: transaction API Avi Kivity
2011-07-21 10:38 ` Jan Kiszka
2011-07-21 12:05   ` Avi Kivity
2011-07-21 12:08     ` Avi Kivity
2011-07-21 12:09     ` Jan Kiszka
2011-07-21 12:13       ` Avi Kivity
2011-07-21 12:52         ` Jan Kiszka
2011-07-21 12:58           ` Avi Kivity
2011-07-21 13:17             ` Jan Kiszka
2011-07-21 13:50               ` Avi Kivity [this message]
2011-07-21 14:32                 ` Jan Kiszka
2011-07-21 14:39                   ` Avi Kivity
2011-07-21 15:05                     ` Jan Kiszka
2011-07-21 15:05                       ` [Qemu-devel] " Jan Kiszka
2011-07-21 15:11                       ` Avi Kivity
2011-07-21 15:11                         ` [Qemu-devel] " Avi Kivity
2011-07-21 11:04 ` Ferry Huberts
2011-07-21 12:07   ` Avi Kivity
2011-07-21 12:26     ` Ferry Huberts
2011-07-21 12:46       ` Avi Kivity
2011-07-21 12:56         ` Ferry Huberts

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=4E282E8A.40606@redhat.com \
    --to=avi@redhat.com \
    --cc=jan.kiszka@siemens.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.