Hi Linaro
I am a software engineer from Qualcomm. I want to know that if Linaro can change its memory page size in kernel ?
As my CPU is arm-v7, it supports 4k/64k/1M/16M page size translation, but in my linux kernel whose version is 2.6.38, the page size is always 4K,
Do the linux-linaro support different page size in kernel?
Hi Xu, Qiang,
I doubt if it has anything todo with linaro kernel. ARM linux code is programming the page sizes as 4K.
From my experience playing with the page tables, you will have to fiddle
with the section size and page size programming in the ARM mmu initialization. Depending on kernel split, you store the page table pointers in TTBR0 and TTBR1, which point to 1MB sections each. The entries here are marked to point to 4k pages, You will have to change them to point to 64K. I don't know someone who has tried huge pages(64K) in public domain for v7 yet.
Note: Theoretically it should be possible for the kernel to work with 4K pages, and user space to allocate 64K pages. It is a messy change (as it involves changes to process management as well) Even I am interested to explore more on this. But tied up with something else at the moment :(
Regards, Subash
On Wed, Aug 28, 2013 at 12:05 AM, Xu, Qiang qiangxu@qti.qualcomm.comwrote:
Hi Linaro****
I am a software engineer from Qualcomm. I want to know that if Linaro can change its memory page size in kernel ?****
As my CPU is arm-v7, it supports 4k/64k/1M/16M page size translation, but in my linux kernel whose version is 2.6.38, the page size is always 4K,***
Do the linux-linaro support different page size in kernel?****
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
On 10 September 2013 05:46, Subash Patel subashrp@gmail.com wrote:
Hi Xu, Qiang,
I doubt if it has anything todo with linaro kernel. ARM linux code is programming the page sizes as 4K.
Steve Capper sent out some cool patches for Transparent Huge Pagetables
http://lists.linaro.org/pipermail/linaro-kernel/2013-August/006574.html
They applied fine to linux-linaro-core-tracking and seem to work.
If you want to change the whole kernel to hugepages, you have to recook or meddle your rootfs with a library preload. But those patches just hide huge pages in linear allocations of smaller pages, so nobody notices.
-Andy
From my experience playing with the page tables, you will have to fiddle with the section size and page size programming in the ARM mmu initialization. Depending on kernel split, you store the page table pointers in TTBR0 and TTBR1, which point to 1MB sections each. The entries here are marked to point to 4k pages, You will have to change them to point to 64K. I don't know someone who has tried huge pages(64K) in public domain for v7 yet.
Note: Theoretically it should be possible for the kernel to work with 4K pages, and user space to allocate 64K pages. It is a messy change (as it involves changes to process management as well) Even I am interested to explore more on this. But tied up with something else at the moment :(
Regards, Subash
On Wed, Aug 28, 2013 at 12:05 AM, Xu, Qiang qiangxu@qti.qualcomm.com wrote:
Hi Linaro
I am a software engineer from Qualcomm. I want to know that if Linaro can change its memory page size in kernel ?
As my CPU is arm-v7, it supports 4k/64k/1M/16M page size translation, but in my linux kernel whose version is 2.6.38, the page size is always 4K,
Do the linux-linaro support different page size in kernel?
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev