[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/38273: "lockdebug_barrier: spin lock held" from ld_ataraid_start_raid0()
The following reply was made to PR kern/38273; it has been noted by GNATS.
From: "Greg A. Woods" <woods%planix.com@localhost>
To: NetBSD GNATS <gnats-bugs%NetBSD.org@localhost>
Cc: NetBSD Kernel Bug People <kern-bug-people%netbsd.org@localhost>
Subject: Re: kern/38273: "lockdebug_barrier: spin lock held" from
Date: Fri, 25 Apr 2008 13:13:42 -0400
I've been trying my hand at looking deeper at this problem but I'm
having a difficult time figuring out which lock is which, and at this
point I'm not even sure if the mutex_vector_enter() in the stack
backtrace is the same as mutex_enter() in the source or not.
The first line in ldstart() is:
Then a little bit later, before any mutex_exit(&sc->sc_mutex) there's a
call, through the sc_start function pointer, to the ld_ataraid_start_raid0()
The only locking I can see that ld_ataraid_start_raid0() does is:
Is that the same lock as is used in ldstart(), i.e. the sc_mutex?
Interestingly I see that before and after calling biodone(), ldstart()
releases and then re-acquires the sc_mutex (if I'm interpreting this
Should the same be done before calling the sc_start function?
Or should ld_ataraid_start_raid0() not be doing any locking at all?
Greg A. Woods
<woods%planix.com@localhost> +1 416 489-5852 x122
Main Index |
Thread Index |