[Lguest] rmmod lg causes system to crash

Balaji Rao balajirrao at gmail.com
Fri Dec 28 19:39:50 EST 2007


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



More information about the Lguest mailing list