Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Kernel panic in "subr_xcall.c"

On Mon, 19 Oct 2009 09:05:43 +0100, Matthias Scheler 
> On Mon, Oct 19, 2009 at 07:28:26AM +0100, Matthias Scheler wrote:
>> Here is the stack trace of the panic (copied of the console):
>> xc_lowpri
>> pool_cache_invalidate
>> pmap_growkernel
>> I wonder whether it is related this change:
> Ok, I think I found the problem:
> 1.) pool_cache_invalidate() calls xc_broadcast() with ci = NULL.
> 2.) xc_broadcast() calls xc_lowpri() with ci = NULL.
> 3.) xc_lowpri() iterates over all CPUs but doesn't fine any
>     running CPU and therefore doesn't schedule any cross calls.
> 4.) The KASSERT() at the end of loop in xc_lowpri() triggers
>     because "xc_tailp" and "xc_headp" are both zero.

Looks like we hit the same problem:

Apparently, the check against ncpu is not enough, the kernel ends calling
pmap_growkernel() with ncpu > 1 but without any CPU considered as "running"
(SPCF_RUNNING flag set).

Which element in the boot process requires a call to pmap_growkernel()
early during boot? (full stack trace if possible).

Jean-Yves Migeon

Home | Main Index | Thread Index | Old Index