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