Re: [PATCH] kernel/cpu: Distinct name for cpu_hotplug.dep_map

From: Chris Wilson
Date: Fri Aug 05 2016 - 06:27:20 EST


On Thu, Jun 09, 2016 at 02:48:39PM +0300, Joonas Lahtinen wrote:
> Use distinctive name for cpu_hotplug.dep_map to avoid the actual
> cpu_hotplug.lock appearing as cpu_hotplug.lock#2 in lockdep splats.
>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
> Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: trivial@xxxxxxxxxx
> Acked-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
> ---
> This time CC'ing trivial@xxxxxxxxxx too in the hopes of finally getting this in.
> ---
> kernel/cpu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index d948e44..d74199d 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -155,7 +155,7 @@ static struct {
> .wq = __WAIT_QUEUE_HEAD_INITIALIZER(cpu_hotplug.wq),
> .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock),
> #ifdef CONFIG_DEBUG_LOCK_ALLOC
> - .dep_map = {.name = "cpu_hotplug.lock" },
> + .dep_map = STATIC_LOCKDEP_MAP_INIT("cpu_hotplug.dep_map", &cpu_hotplug.dep_map),
> #endif
> };


Going by

/*
* Static locks do not have their class-keys yet - for them the key
* is the lock object itself:
*/
if (unlikely(!lock->key))
lock->key = (void *)lock;

this is the right choice for .key (as lock here is the dep_map).

Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
-Chris

--
Chris Wilson, Intel Open Source Technology Centre