Panic on current amd64

Hans Petter Selasky hps at selasky.org
Tue Mar 31 07:10:36 UTC 2015


On 03/31/15 02:15, Konstantin Belousov wrote:
> On Tue, Mar 31, 2015 at 02:51:47AM +0300, Konstantin Belousov wrote:
>> On Tue, Mar 31, 2015 at 01:41:04AM +0300, Gleb Smirnoff wrote:
>>> On Tue, Mar 31, 2015 at 12:30:04AM +0200, Hans Petter Selasky wrote:
>>> H> On 03/30/15 23:19, Gleb Smirnoff wrote:
>>> H> > On Sat, Mar 28, 2015 at 03:02:28PM -0700, Manfred Antar wrote:
>>> H> > M> I get the following panic on current svn ver  r280793:
>>> H> > M>
>>> H> > M> Sat Mar 28 14:41:28 PDT 2015
>>> H> > M>
>>> H> > M> FreeBSD/amd64 (pozo.com) (ttyu0)
>>> H> > M>
>>> H> > M> panic: Invalid CPU in callout 16
>>> H> >
>>> H> > The same happened to me in the OFED code. After investigation
>>> H> > it appeared that for some unknown reason, the OFED code used
>>> H> > /usr/include/sys/callout.h instead of SYSDIR/sys/callout.h,
>>> H> > that yield in wrong value passing as parameter.
>>> H> >
>>> H> > I failed to reproduce the problem. :( So, the fix is a rebuild
>>> H> > of kernel. But the right fix is to understand what went wrong
>>> H> > in the previous build.
>>> H>
>>> H> How did you compile the OFED stuff? Did you set the SYSDIR variable when
>>> H> building?
>>>
>>> I just have this in my kernel config:
>>>
>>> options         OFED
>>> device          mlxen
>>
>> Quick grep of the sys/ofed immediately shows the following:
>>
>> sys/ofed/include/linux/wait.h:#include <sys/param.h>
>> sys/ofed/include/linux/wait.h:#include <sys/systm.h>
>> sys/ofed/include/linux/wait.h:#include <sys/sleepqueue.h>
>> sys/ofed/include/linux/wait.h:#include <sys/kernel.h>
>> sys/ofed/include/linux/wait.h:#include <sys/proc.h>
>>
>> ys/ofed/include/linux/timer.h:#include <sys/callout.h>
>> sys/ofed/include/linux/types.h:#include <sys/cdefs.h>
>> sys/ofed/include/linux/types.h:#include <sys/types.h>
>> sys/ofed/include/linux/types.h:#include <sys/param.h>
>> sys/ofed/include/linux/types.h:#include <sys/systm.h>
>>
>> and so on.
>
> Err, I am sorry, scratch this.

Hi,

Could you:

cd sys/amd64/conf
config YOURCONFIG

cd ../compile/YOURCONFIG
less Makefile

and see if it includes something outside /sys ?

OFED uses its own CFLAGS and check if some include directives have space 
after the "-Ixxxspace", because then this simple flag conversion will fail:

OFEDCFLAGS=     ${CFLAGS:N-I*} ${OFEDINCLUDES} ${CFLAGS:M-I*} ${OFEDNOERR}

Thank you!

--HPS



More information about the freebsd-current mailing list