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

From: H. Peter Anvin
Date: Wed Apr 07 2010 - 13:24:38 EST

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.


H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

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