diff --git a/en_US.ISO8859-1/books/faq/book.sgml b/en_US.ISO8859-1/books/faq/book.sgml index c464be194f..d2a24e9f10 100644 --- a/en_US.ISO8859-1/books/faq/book.sgml +++ b/en_US.ISO8859-1/books/faq/book.sgml @@ -4008,10 +4008,10 @@ kern.timecounter.hardware: TSC -> i8254 This means that a function that may sleep was called while - holding a mutex (or other unsleepable) lock held. + a mutex (or other unsleepable) lock was held. The reason this is an error is because mutexes are not - intended to be held for long periods of time as they are + intended to be held for long periods of time; they are supposed to only be held to maintain short periods of synchronization. This programming contract allows device drivers to use mutexes to synchronize with the rest of the kernel @@ -4019,7 +4019,7 @@ kern.timecounter.hardware: TSC -> i8254 Hence it is imperative that no subsystem in the kernel block for an extended period while holding a mutex. - To catch such errors assertions may be added to the kernel + To catch such errors, assertions may be added to the kernel that interact with the witness subsystem to emit a warning or fatal error (depending on the system configuration) when a potentially blocking call is made while holding a mutex.