ramana polamarasetti wrote:
Hi,

Recently we hit a problem with one of our file
systems where 2 kernel threads were killed holding a kmutex. Due to this all the applications which use
the fs blocked waiting for the kmutex.
I am wondering why there is no synchronization type
equivalent to USYNC_PROCESS_ROBUST (which esse
ntially releases the pthread_mutex if the owner dies)
for kmutex.
I am sure many must have had this kind of problem,
will there be any issue if the mutex held by a dead thread be released after some time?

kthreads don't die; if a mutex is held forever,
there's a bug.


You need to break out mdb/kmdb and find out who holds
the lock.


Its actually the user thread that got killed but the corresponding kthread held 
the mutex for ever.

  It sounds like a system call returned with kernel locks held.
  Whenever a thread returns to userland from the kernel, all locks
  taken in the kernel must be released.

  Dave

_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to