[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