Re: [PATCH 24/28] locking/lockdep: Remove !dir in lock irq usage check

From: Peter Zijlstra
Date: Thu Apr 25 2019 - 16:03:46 EST


On Wed, Apr 24, 2019 at 06:19:30PM +0800, Yuyang Du wrote:
> In mark_lock_irq(), the following checks are performed:
>
> ----------------------------------
> | -> | unsafe | read unsafe |
> |----------------------------------|
> | safe | F B | F* B* |
> |----------------------------------|
> | read safe | F? B* | - |
> ----------------------------------
>
> Where:
> F: check_usage_forwards
> B: check_usage_backwards
> *: check enabled by STRICT_READ_CHECKS
> ?: check enabled by the !dir condition
>
> From checking point of view, the special F? case does not make sense,
> whereas it perhaps is made for peroformance concern. As later patch will
> address this issue, remove this exception, which makes the checks
> consistent later.
>
> With STRICT_READ_CHECKS = 1 which is default, there is no functional
> change.

Oh man.. thinking required and it is way late.. anyway this whole read
stuff made me remember we had a patch set on readlocks last year.

https://lkml.kernel.org/r/20180411135110.9217-1-boqun.feng@xxxxxxxxx

I remember reviewing that a few times and then it dropped on the floor,
probably because Spectre crap or something sucked up all my time again :/

Sorry Boqun!