Re: [PATCH v2 2/6] locking/lockdep: Throw away all lock chains with zapped class

From: Waiman Long
Date: Mon Jan 13 2020 - 10:44:43 EST


On 1/13/20 10:18 AM, Peter Zijlstra wrote:
> On Mon, Dec 16, 2019 at 10:15:13AM -0500, Waiman Long wrote:
>> If a lock chain contains a class that is zapped, the whole lock chain is
>> now invalid.
> Possibly. But I'm thinking that argument can/should be made mode elaborate.
>
> Suppose we have A->B->C, and we're about to remove B.
>
> Now, I suppose the trivial argument goes that if we remove the text that
> causes A->B, then so B->C will no longer happen. However, that doesn't
> mean A->C won't still occur.
>
> OTOH, we might already have A->C and so our resulting chain would be a
> duplicate. Conversely, if we didn't already have A->C and it does indeed
> still occur (say it was omitted due to the redundant logic), then we
> will create this dependency the next time we'll encounter it.
I will prefer having it only when it actually happens rather than
leaving a partial chain behind assuming that it may happen.
>
> Bart, do you see a problem with this reasoning?
>
> In short, yes, I think you're right and we can remove the whole thing.
> But please, expand the Changelog a bit, possibly add some of this
> reasoning into a comment.
>
Yes, I will elaborate more in the changelog.

Cheers,
Longman