7.0 broken on e4500

John Baldwin jhb at freebsd.org
Fri Oct 5 23:23:42 PDT 2007


On Wednesday 03 October 2007 09:29:44 am Marius Strobl wrote:
> On Sat, Sep 29, 2007 at 09:56:45PM +0200, Kris Kennaway wrote:
> > I get this early during boot with a CVS kernel (updated from last 
December):
> > 
> > > FreeBSD/SMP: Multiprocessor System Detected: 10 CPUs
> > > panic: tsb_tte_enter: replacing valid kernel mapping
> > > cpuid = 0
> > > KDB: enter: panic
> > > [thread pid 0 tid 0 ]
> > > Stopped at      kdb_enter+0x68: ta              %xcc, 1
> > > db> wh
> > > Tracing pid 0 tid 0 td 0xc0744f80
> > > panic() at panic+0x204
> > > tsb_tte_enter() at tsb_tte_enter+0xdc
> > > pmap_enter_locked() at pmap_enter_locked+0x2d0
> > > pmap_enter() at pmap_enter+0x64
> > > kmem_malloc() at kmem_malloc+0x6e0
> > > page_alloc() at page_alloc+0x28
> > > uma_large_malloc() at uma_large_malloc+0x44
> > > malloc() at malloc+0x1b0
> > > sf_buf_init() at sf_buf_init+0xf8
> > > mi_startup() at mi_startup+0x18c
> > > btext() at btext+0x34
> > 
> 
> Do you by chance load the new kernel manually via the loader
> prompt, with the old kernel being <= 8MB in size and the new
> one > 8MB?

I get this panic on an E220R at work, but my "new" kernel is smaller.

> ll /boot/kernel/kernel* /boot/test/kernel*
-r-xr-xr-x  1 root  wheel   7821094 Feb  6  2007 /boot/kernel/kernel
-r-xr-xr-x  1 root  wheel  13902501 Feb  6  2007 /boot/kernel/kernel.symbols
-r-xr-xr-x  1 root  wheel   4534968 Oct  6 00:20 /boot/test/kernel
-r-xr-xr-x  1 root  wheel  10101980 Oct  6 00:20 /boot/test/kernel.symbols

The working kernel (~7MB) is the GENERIC kernel, and the "test" kernel
is the stripped down kernel for this machine.  In my case I'm panicing in 
pmap_remove_tte() called from pmap_enter_locked().  I added some KTR traces 
to the pmap code to try and investigate, but I'm guessing the root problem is 
that the loader doesn't properly handle telling OFW about needing to change 
the mappings when unloading and then loading a new kernel?

Hmm, it looks like currently the loader doesn't do any sort of MD callback
when unloading a file, so the loader isn't going to free up the RAM it asked 
for from OFW for the old kernel.

-- 
John Baldwin


More information about the freebsd-sparc64 mailing list