linux-mips
[Top] [All Lists]

Re: 2GB userspace limitation in ABI N32

To: "Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: 2GB userspace limitation in ABI N32
From: David Daney <ddaney.cavm@gmail.com>
Date: Wed, 10 Oct 2012 10:34:21 -0700
Cc: Rich Felker <dalias@aerifal.cx>, linux-mips@linux-mips.org, "Pinski, Andrew" <Andrew.Pinski@caviumnetworks.com>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=C96EoR6b6N34tszVp0EAHW+yGX3lmXTDY6Nl9YLawQQ=; b=Edpg9qLpuZgEsqVfUNaKj2LylSj98IEq9za33CwcSm10Tk7QNSPb0DecapbC61RCeq q9TXgBCmMWGu9H3xBbY0+IV1Sf2bGAxRQGzuiNlSHG2O4sWMrqUbs/dDIFZt8bCjOXqX OuMzXRieJSOHW9ipYngIgdZz40VVanGqflDl53RlONMDPB5DIbtcQuMf5Dr9VAMdvDrH bdrjC/LDz56Kv9XRWcIa4uQaUuc0l2t81xpQ+3COkgDFfHK6lj1pJrZsTFZEdGf9cbM+ PlqmksWsVh48ZsVppCHti2waEHwwfwnh3cidyJnw4z0ojoXb0QcG5xW29TLI5YjU7MdO kmEw==
In-reply-to: <alpine.LFD.2.02.1210101805410.21287@eddie.linux-mips.org>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
References: <CAMJ=MEfFsJH6Cqkow7-w3a352iYiWWi+ubOSJaqhh2bp2MqPZg@mail.gmail.com> <20121010080756.GC6740@linux-mips.org> <20121010125700.GR254@brightrain.aerifal.cx> <5075A8D8.2080704@gmail.com> <alpine.LFD.2.02.1210101805410.21287@eddie.linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0
On 10/10/2012 10:10 AM, Maciej W. Rozycki wrote:
On Wed, 10 Oct 2012, David Daney wrote:

The only disadvantage of doing this is that the code will be slightly
larger/slower as it takes three instructions to load a zero extended 32-bit
pointer verses two for n32-2GB.

  And of course such code will only run on 64-bit processors that not only
support 64-bit data, but 64-bit addressing as well.

That's right. All of this assumes a fully 64-bit operating system kernel (Linux).

It is not really very interesting on 'small' systems that have less than about 1GB of RAM. And obviously impossible if 64-bit addressing is not supported.

So the interesting use cases are 'modern' systems with 4GB or more of ram installed. And only then for the subset of applications that need more than 2GB of virtual address space but will never need to consider more than 4GB.



 That is implement the
CP0.Status.UX bit rather than CP0.Status.PX only -- the latters are still
compatible with the true n32 ABI.  See also CP0.Config.AT.

   Maciej




<Prev in Thread] Current Thread [Next in Thread>