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