All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Blue Swirl <blauwirbel@gmail.com>,
	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 16:19:51 +0200	[thread overview]
Message-ID: <4EAD5D07.6060004@redhat.com> (raw)
In-Reply-To: <4EAD5B6B.204@codemonkey.ws>

On 10/30/2011 04:12 PM, Anthony Liguori wrote:
> On 10/30/2011 09:02 AM, Avi Kivity wrote:
>> This somewhat controversial patchset converts internal arithmetic in the
>> memory API to 128 bits.
>>
>> It has been argued that with careful coding we can make 64-bit work as
>> well.  I don't think this is true in general - a memory router can
>> adjust
>> addresses either forwards or backwards, and some buses (PCIe) need the
>> full 64-bit space - though it's probably the case for all the
>> configurations
>> we support today.  Regardless, the need for careful coding means
>> subtle bugs,
>> which I don't want in a core API that is driven by guest supplied
>> values.
>
> The primary need for signed arithmetic is aliases, correct?

> Where do we actually make use of this in practice?   I think having
> negative address spaces is a weird aspect of the memory api and wonder
> if refactoring it away is a better solution tot he problem.
>

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.

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

  reply	other threads:[~2011-10-30 14:20 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 [this message]
2011-10-30 14:59     ` Blue Swirl
2011-10-30 15:10       ` Avi Kivity
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=4EAD5D07.6060004@redhat.com \
    --to=avi@redhat.com \
    --cc=anthony@codemonkey.ws \
    --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.