Re: INFO: possible circular locking dependency detected

From: Steven Rostedt
Date: Thu Jul 14 2011 - 13:47:01 EST


egad! Looking at this code more, there's nothing keeping
t->rcu_read_unlock_special safe! If it can be modified by the kthread,
and current, then we must use atomic operations or modify under lock.
Otherwise the old read/modify/write can corrupt it.

t->rcu_read_unlock_special &= ~RCU_READ_UNLOCK_BLOCKED;

is done before the lock is taken in rcu_read_unlock_special. If the
kthread is running rcu_boost() then its code:

t->rcu_read_unlock_special |= RCU_READ_UNLOCK_BOOSTED;

Can even negate the removing of the RCU_READ_UNLOCK_BLOCKED!

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/