Bug 14900

Summary: 3.3-RELEASE panic in pmap_pte_quick()
Product: Base System Reporter: Thomas David Rivers <rivers>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 3.3-RELEASE   
Hardware: Any   
OS: Any   

Description Thomas David Rivers 1999-11-15 18:00:00 UTC
 I have seen, every-now-and-then, panics with 3.3-RELEASE.  
 
 After observing when these occur, I was able to put together
 a sequence of programs to run which will cause the panic.

 My debugging of the kernel indicates that pmap_pte_quick() 
 is being passed a bad `pmap' parm.  Although, I'm unable
 to take it from there.

 Here's the traceback:

	pmap_pte_quick()+12
	pmap_ts_referenced()
	vm_pageout_page_stats()
	vm_pageout()
	kproc_start()
	fork_trampoline()

 The particular instruction which causes the panic is:

	movl 0(%edx,%eax,4),%ecx

 which comes from the source line:

	if (pde = (unsigned) pmap->pm_pdir[va >> PDRSHIFT]) {

 this is the instruction to reference the pm_pdir array. %edx
 should contain a correct value for pmap->pm_pdir, but contains
 trash (or, at least an address outside of the kernel's address
 table.)  %edx is loaded from the in-coming `pmap' parm.

How-To-Repeat: 
	I have the reproduction - unfortunately it involves running
	a purchase program, so I'm not at liberty to hand it out.

	I will be happy to test any potential fixes.
Comment 1 Søren Schmidt freebsd_committer freebsd_triage 2001-05-30 10:15:26 UTC
State Changed
From-To: open->closed

Upgrade to 4.3 and get back to us if problem persists.