Tao Chen wrote:
Hello,

There is a dead lock condition in my driver code. I do not understand the message "Deadlock: cycle in blocking chain", how does it happen? How do I avoid it?

Tom


panic[cpu0]/thread=ffffff0003eddc80: Deadlock: cycle in blocking chain ffffff0003eddaa0 genunix:turnstile_block+9f3 ()
ffffff0003eddb20 unix:mutex_vector_enter+38d ()
ffffff0003eddb50 qla:qla_link_state_machine+22 ()
ffffff0003eddb70 qla:qla_timer+78 () ffffff0003eddbd0 genunix:callout_execute+b1 ()
ffffff0003eddc60 genunix:taskq_thread+1dc ()
ffffff0003eddc70 unix:thread_start+8 ()
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]

classic deadlock:

thread A holds lock 1
thread B holds lock 2

thread A now attempts to acquire lock 2
thread B now attempts to acquire lock 1

Solaris will detect an arbitrary number of threads in the
blocking chain...

You need to grab nested locks in a consistent order...

- Bart



--
Bart Smaalders                  Solaris Kernel Performance
[EMAIL PROTECTED]               http://blogs.sun.com/barts
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to