On Thu, Nov 10, 2011 at 12:08:39PM +0200, Kostik Belousov wrote: > 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.
Maybe it would be easier to implement entire check in a function where you have more flexibility and just use function's result in assertion? -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com
pgpxsshfBUvqN.pgp
Description: PGP signature