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, David Gibson <dwg@au1.ibm.com>
Subject: Re: [Qemu-devel] [PULL 0/3] 128-bit support for the memory API
Date: Sun, 30 Oct 2011 17:10:51 +0200	[thread overview]
Message-ID: <4EAD68FB.9090209@redhat.com> (raw)
In-Reply-To: <CAAu8pHu5rrs5TK+dHikoSwMakSOf2aFGLmWVwNShBQ4CBuJzDg@mail.gmail.com>

On 10/30/2011 04:59 PM, Blue Swirl wrote:
> >
> > There is no direct use of signed arithmetic in the API (just in the
> > implementation).  Aliases can cause a region to move in either the
> > positive or negative direction, and this requires either signed
> > arithmetic or special casing the two directions.
> >
> > Signed arithmetic is not the only motivation - overflow is another.
> > Nothing prevents a user from placing a 64-bit 4k BAR at address
> > ffff_ffff_ffff_f000; we could move to base/limit representation, but
> > that will likely cause its own bugs.  Finally, we should be able to
> > represent both a 0-sized region and a 2^64 sized region.
>
> It looks like 64 bit saturating arithmetic could also work. 

Depends when you saturate.  The standard example (vga) takes a alias of
(say) 0xe01a0000 and aliases it into 0x000a0000.  So you need to adjust
addresses downwards by -0xe0100000.  That brings the start of the real
region (0xe0000000) into the negative territory.  Saturating it there
would break it.

> It should
> also be possible to work only with (start, end) address pairs and
> never with start + size, then 2^64 shouldn't be an issue.

Then 0 becomes an issue (end < start).

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

  reply	other threads:[~2011-10-30 15:11 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-30 14:02 [Qemu-devel] [PULL 0/3] 128-bit support for the memory API Avi Kivity
2011-10-30 14:02 ` [Qemu-devel] [PATCH 1/3] Add support for 128-bit arithmetic Avi Kivity
2011-10-30 14:02 ` [Qemu-devel] [PATCH 2/3] memory: use 128-bit integers for sizes and intermediates Avi Kivity
2011-10-30 14:02 ` [Qemu-devel] [PATCH 3/3] Adjust system and pci address spaces to full 64-bit Avi Kivity
2011-10-30 14:12 ` [Qemu-devel] [PULL 0/3] 128-bit support for the memory API Anthony Liguori
2011-10-30 14:19   ` Avi Kivity
2011-10-30 14:59     ` Blue Swirl
2011-10-30 15:10       ` Avi Kivity [this message]
2011-10-31  0:36     ` David Gibson
2011-10-31 10:27       ` Avi Kivity
2011-10-31 16:05 ` Anthony Liguori
2011-11-01  0:54   ` David Gibson
2011-11-01  8:43     ` Avi Kivity
2011-11-01 12:59       ` Anthony Liguori
2011-11-01 13:48         ` Andreas Färber
2011-11-02 10:17           ` Avi Kivity
2011-11-01 18:08 ` Anthony Liguori
2011-11-02 10:10   ` Avi Kivity
2011-11-03 13:09     ` Anthony Liguori

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=4EAD68FB.9090209@redhat.com \
    --to=avi@redhat.com \
    --cc=blauwirbel@gmail.com \
    --cc=dwg@au1.ibm.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 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.