Hi rusty, I get an error saying bad pgd 00637027 when i do an rmmod lg and sooner or later i get a recursive fault and the system hangs.
I traced this to the function unmap_kernel_range which unmaps pgds, puds, pmds , finally the ptes. the ptes. What happens is, when it tries to unmap pmds, the pmd_none_or_clear_bad prints out this message. What i found surprising is, in the 2-level page table setup, where pgd == pmd == pud, neither pgd_none_or_clear_bad or pud_none_or_clear_bad indicate an error but pmd_none_or_clear_bad does. I run the kernel in qemu where I do an 'info mem' in the monitor, and i see two mappings that are above ffc00000 (is it the vDSO or something ?). ffe16000 - ffe17000 and ffffb000 - ffffc000 And I think when map_switcher tries to get a vmarea around ffc0000, it uses the pgd_entry of the above mentioned mappings which is BAD according to pmd_none_or_clear_bad. Are the above mentioned mappings are causing the problem ?If they are the vDSO, can we disable them ? Please help me fix this. regards, balaji rao _______________________________________________ Lguest mailing list [email protected] https://ozlabs.org/mailman/listinfo/lguest
