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 :
>> http://lxr.linux.no/linux+v2.6.33/arch/mips/include/asm/mach-generic/spaces.h
>
> 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.

http://www.johnloomis.org/microchip/pic32/memory/memory.html

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

kseg2 is already 1 GB address space?


-Nobin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/