Kernel panic of "spin lock held too long"
KGB
e01630112a at yahoo.com.cn
Tue Jul 6 13:21:15 UTC 2010
Finally I resolve the kernel panic problem.
There are locks which are inited using mtx_init(&lock,name, NULL, MTX_DEF) in the function __zt_transmit_chunk ( ) in the module zaptel.ko.
And my driver module(name tej21.ko) called the function __zt_transmit_chunk() in the top half of my interrupt handler.
So I modified my driver module,moving the calling of the function __zt_transmit_chunk() into bottom halt of my interrupt handler.
------------------ Original ------------------
From: "John Baldwin"<jhb at freebsd.org>;
Date: Mon, Jun 28, 2010 09:39 PM
To: "KGB"<e01630112a at yahoo.com.cn>;
Cc: "freebsd-drivers"<freebsd-drivers at freebsd.org>;
Subject: Re: Kernel panic of "spin lock held too long"
On Sunday 27 June 2010 1:53:56 am KGB wrote:
> Hi John Baldwin:
> Thank you for your reply!
> Yes,I use an interrupt handler in my driver module and use a filter
function. In the filter function,I call the __zt_transmit_chunk function which
defined in the zaptel module(name zaptel.ko).
Try using a regular interrupt handler without a filter instead.
> ------------------ Original ------------------
> From: "John Baldwin"<jhb at freebsd.org>;
> Date: Fri, Jun 25, 2010 11:09 PM
> To: "KGB"<e01630112a at yahoo.com.cn>;
> Cc: "freebsd-drivers"<freebsd-drivers at freebsd.org>;
> Subject: Re: Kernel panic of "spin lock held too long"
>
>
> On Friday 25 June 2010 9:56:13 am KGB wrote:
> > I met the kernel dump again.The message is below.
>
> Do you use any interrupt handlers? If so, are you using a filter function?
>
> Also, you can use the 'tid' command in kgdb to switch to a thread via a tid
to
> avoid having to search for a 'tid' in info threads.
>
> --
> John Baldwin
--
John Baldwin
More information about the freebsd-drivers
mailing list