Hi all, In linux-2.6.35.4, the page size of kernel image is 2M, which means that the entity in pmd is PFN pointing to physical page. For research, I want to change the page size of kernel image to 4K. I modified the content of pmd to make each entity of pmd point to a new page table. Here is the my related code: --------------------------------------------------------- 542 pte = alloc_low_page(&pte_phys); // allocate a new page for page table 544 last_map_addr = phys_pte_init_remap(pte, address, end, new_prot); // initiate the entity of new page table 545 unmap_low_page(pte); 546 547 spin_lock(&init_mm.page_table_lock); 548 pmd_populate_kernel(&init_mm, pmd, __va(pte_phys)); // modify this pmd entiity, make it point to the address of new page table. 549 550 spin_unlock(&init_mm.page_table_lock); ------------------------------------------------------------------------------------ After adding those code to kernel source, I test the new complied kernel, but the kernel always reboot and can't work. Thinking long time, I can't fix where the bug is. Any suggestions for me? Thanks, Lee
Hi... On Fri, Jan 7, 2011 at 10:40, lichangshou <chungzhou@gmail.com> wrote:
Hi all, In linux-2.6.35.4, the page size of kernel image is 2M, which means that the entity in pmd is PFN pointing to physical page. For research, I want to change the page size of kernel image to 4K. I modified the content of pmd to make each entity of pmd point to a new page table.
OK hold it right there...what does PMD have to do with page size change? Isn't that like falling back from using hugetlb to usual page size? -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
participants (2)
-
lichangshou -
Mulyadi Santosa