[Top] [All Lists]

Re: 2GB userspace limitation in ABI N32

To: Ronny Meeus <>
Subject: Re: 2GB userspace limitation in ABI N32
From: David Daney <>
Date: Wed, 10 Oct 2012 11:08:49 -0700
Cc: "Maciej W. Rozycki" <>, Rich Felker <>,, "Pinski, Andrew" <>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=1As622FIsHyMUg4di5eAF0kuWtsHM/ai6C/QGdt30pc=; b=mLpNBbwxuJgDA3rh1w8yqh6UOURFe6WU5RvDkOGoEge5eEBtcv5wM7MB7PqTAalpwy fvyUnG2rB+mM6WFpucRW8MNqytRrgLq+/YxMttX4Xc6zwjY7fj1nziffajkXm/q7OiLA or2nSvu+sdOHMgjpE0t1i/aw5jjpu6JL4fcrfXWFYYP0eyHYIdOhtiJ4IQZWwCpn4GDo HEq59HwMURZJfbCWH6zOK9+shfac/OwbfLpDxZGJjf5VHNAi4gN9OgtQqmArDkuR3B5K A34MCsToNINzZ6x3iUzPNpy3sVX0Os+9JkUY8LvEA5x68AjNmB476pGcCWucmTOuEnx4 BjTw==
In-reply-to: <>
List-archive: <>
List-help: <>
List-id: linux-mips <>
List-owner: <>
List-post: <>
List-software: Ecartis version 1.0.0
List-subscribe: <>
List-unsubscribe: <>
References: <> <> <> <> <> <> <>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0
On 10/10/2012 10:49 AM, Ronny Meeus wrote:
This is exactly the platform we are targeting:
- a Cavium processor
- running 64bit Linux
- 4Gb of ram of which almost 3Gb will be used by 1 process (consisting
of multiple threads)

It would be really great that we could get help from you guys here.

As far as I know, we are not actively working on this. So, as I see it, your options are:

A) Use n64.

B) Do all the work yourself.

C) Pay someone to do the work for you.

David Daney

Many thanks for the effort you are putting into this.

On Wed, Oct 10, 2012 at 7:34 PM, David Daney <> wrote:
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
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

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

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.


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