Re: why choose 896MB to the start point of ZONE_HIGHMEM

From: Nobin Mathew
Date: Wed Apr 07 2010 - 22:23:30 EST

On Wed, Apr 7, 2010 at 10:44 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> On 04/07/2010 09:48 AM, Himanshu Aggarwal wrote:
>> I think for some architectures, the position of highmem is constrained
>> by hardware as well.  It is not always a kernel decision and not always
>> configurable as in case of x86.
> This is correct.
>> In case of MIPS32, low memory is between 0 and 512 MB and high memory
>> starts above 512 MB. Also the user space is of size 2 GB.
>> Please see the definition of macros PAGE_OFFSET and HIGHMEM_START at :
> Right so far...
>> This is because MIPS32 processors have KSEG0 and KSEG1 segments lying
>> between 0 and 512 MB and KSEG2/3 lies above it.
>> May be someone on the group can confirm this.
> Wrong.  I have to say this thread has been just astonishing in the
> amount of misinformation.
> On MIPS32, userspace is 0-2 GB, kseg0 is 2.0-2.5 GB and kseg1 is 2.5-3.0
> GB.  kseg2/3 (3.0-4.0 GB), which invokes the TLB, is used for the
> vmalloc/iomap/kmap area.
> LOWMEM has to fit inside kseg0, so LOWMEM is limited to 512 MB in thie
> current Linux implementation.

So what is the memory division here in mips, again 1:3?

kseg2 is already 1 GB address space?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at