On Thu, Nov 10, 2011 at 07:23:23AM +0100, Pawel Jakub Dawidek wrote: > On Wed, Nov 09, 2011 at 07:31:28PM +0200, Kostik Belousov wrote: > > On Wed, Nov 09, 2011 at 05:25:43PM +0000, Konstantin Belousov wrote: > > > Author: kib > > > Date: Wed Nov 9 17:25:43 2011 > > > New Revision: 227394 > > > URL: http://svn.freebsd.org/changeset/base/227394 > > > > > > Log: > > > Stopped process may legitimately have some threads sleeping and not > > > suspended, if the sleep is uninterruptible. > > Even more, stopped process might have some threads still running in the > > kernel mode, or inhibited due to wait on blockable locks. I was unable > > to design an expression that would assert that such thread will be stopped > > at the kernel->user boundary. > > > > The assertion itself is useful and catched several bugs, but theoretically > > can cause false positives. If any report of the fired assert for kernel-mode > > thread is provided, I will remove the assertions. > > If in five years some change will make it to fire and you won't be > around, nobody will remember this e-mail of yours and someone will spend > time on looking for a bug that doesn't exist. > > If we know it can cause false positives, I'd be in favour of removing it > or changing it into a warning or at the very least moving this > information into commit log. Yes, I do agree that removing the assertion is the most straightforward solution, but on the assertion already catched more real bugs then caused headaches (my headache, BTW). Either I change the third or condition to plain P_SHOULDSTOP(), or create a way to assert exactly what I need.
pgpoaQTWT4FUl.pgp
Description: PGP signature