From: peter g. <pga...@li...> - 2003-03-20 08:36:07
|
Sorry for monopolising this group. Mr Stuart Menefy has provided a patch for optimising the tlb miss exception handling. I am using the 2.5.13 kernel, downloaded from sourceforge here. Changes to the files pgalloc.h and pgtable.h defining pmd_populate_kernel and pmd_page_kernel cause patch rejections. In short, The original pgalloc.h has #define pmd_populate(mm, pmd, pte) set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte))) The 2.5.13 version defines pmd_populate_kernel as previously, but change pmd_populate to set_pmd(pmd, __pmd(_PAGE_TABLE + page_to_phys(pte))) The tlb update patch defines pmd_populate to be set_pmd(pmd, __pmd(pte)) similarly, the original pgtable.h has #define pmd_page(pmd) ( (ul) _va(pmd_val) & PAGE_MASK) The 2.5.13 changes this to pmd_page_kernel, and redefines pmd_page to be (phys_to_page(pmd_val(pmd))) However the tlb update patch redefines pmd_page(pmd) to be ((ul) __va(pmd_val(pmd))) I wish to know what the TLB patch does to kernel page tables in general and what should happen here. Also would a possibly less efficient implementation that only changes entry.S to do the assembly language equivalent of pgd_offset(current->mm, address) pmd_offset(pdg, address) pte_offset(pmd, address) update ptel ldtlb rte be likely to work? Cheers -- ______________________________________________ http://www.linuxmail.org/ Now with e-mail forwarding for only US$5.95/yr Powered by Outblaze |