On Wed, Sep 14, 2016 at 6:42 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > On Tue, Sep 13, 2016 at 09:38:29PM +0200, Peter Zijlstra wrote: > >> > > I _think_ you propose to keep track of all prior held locks and then use >> > > the union of the held list on the block-chain with the prior held list >> > > from the complete context. >> > >> > Almost right. Only thing we need to do to consider the union is to >> > connect two chains of two contexts by adding one dependency 'b -> a'. >> >> Sure, but how do you arrive at which connection to make. The document is >> entirely silent on this crucial point. >> >> The union between the held-locks of the blocked and prev-held-locks of >> the release should give a fair indication I think, but then, I've not >> thought too hard on this yet. > > s/union/intersection/ > > those that are in both sets. Precisely speaking, I introduces separate chains. For example, 1. Held-locks of the blocked, A -> B -> C (which original lockdep builds) 2. Prev-held-locks of the release G -> H -> I (which original lockdep builds, too) 3. Cross chain (which I introduced newly) C -> G Then the 'A -> B -> C -> G -> H -> I' can be traversed when bfs is performed. -- Thanks, Byungchul -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>