[alsa-devel] [RFC PATCH 1/2] regmap: add configurable lock class key for lockdep

Lars-Peter Clausen lars at metafoo.de
Thu Jun 25 17:47:41 CEST 2015


On 06/25/2015 05:33 PM, Mark Brown wrote:
> On Thu, Jun 25, 2015 at 05:03:00PM +0200, Lars-Peter Clausen wrote:
>> On 06/25/2015 03:21 PM, Arjan van de Ven wrote:
>
>>> wouldn't it be better to use the mutex_lock_nested() and co to explicitly
>>> express your hierarchy?
>
>> That would require that the hierarchy is known in advance. The hierarchy
>> depends on the hardware topology. Different systems will have different
>> hierarchies where the relationship between locks can change and it will be
>> hard to find a hierarchy that works across all topologies.
>
> It depends on what you use as the key for the nested locking stuff.  If
> you assign a key per regmap (casting the pointer to an integer, using an
> IDR or something).  I don't know if that creates problems for the
> locking code, I'd not expect so but then I'd not have expected the
> problem in the first place.

The maximum number of subclasses is 8 per lockclass, so a IDR that 
increments which each created regmap instance wouldn't really work.

And while on the other hand we probably wont have a hierarchy deeper than 8 
nested regmap instances it is not trivial to figure out which instance is at 
which level.

>
> As far as I can tell we're likely to end up needing a key per regmap or
> something similar.
>

Since the number of lockdep classes itself is also limited we should avoid 
creating extra lockdep classes when we can. I think the approach which 
having the option of specifying a lockdep class in the regmap config will be 
ok. The only case it can't handle if we nest instances with the same config, 
but I don't really see valid use scases for that at the moment.


More information about the Alsa-devel mailing list