Messages in this thread | | | Date | Thu, 25 Jun 2015 17:47:41 +0200 | From | Lars-Peter Clausen <> | Subject | Re: [RFC PATCH 1/2] regmap: add configurable lock class key for lockdep |
| |
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.
| |