Re: [RFC PATCH 02/12] locking/lockdep: Add a new terminal lock type

From: Waiman Long
Date: Sat Nov 10 2018 - 19:28:16 EST


On 11/10/2018 09:17 AM, Peter Zijlstra wrote:
> On Thu, Nov 08, 2018 at 03:34:18PM -0500, Waiman Long wrote:
>> A terminal lock is a lock where further locking or unlocking on another
>> lock is not allowed. IOW, no forward dependency is permitted.
>>
>> With such a restriction in place, we don't really need to do a full
>> validation of the lock chain involving a terminal lock. Instead,
>> we just check if there is any further locking or unlocking on another
>> lock when a terminal lock is being held.
>> @@ -263,6 +270,7 @@ struct held_lock {
>> unsigned int hardirqs_off:1;
>> unsigned int references:12; /* 32 bits */
>> unsigned int pin_count;
>> + unsigned int flags;
>> };
> I'm thinking we can easily steal some bits off of the pin_count field if
> we have to.

OK, I will take a look at that.

Cheers,
Longman