Re: [PATCH v2 2/2] debugobjects: Disable lockdep tracking of debugobjects internal locks

From: Peter Zijlstra
Date: Tue Sep 25 2018 - 11:33:12 EST


On Tue, Sep 25, 2018 at 10:41:09AM -0400, Waiman Long wrote:
> diff --git a/lib/debugobjects.c b/lib/debugobjects.c
> index 70935ed91125..68d72ed9ca22 100644
> --- a/lib/debugobjects.c
> +++ b/lib/debugobjects.c
> @@ -1106,8 +1106,15 @@ void __init debug_objects_early_init(void)
> {
> int i;
>
> - for (i = 0; i < ODEBUG_HASH_SIZE; i++)
> + /*
> + * We don't need lockdep to verify correctness of debugobjects
> + * internal locks.
> + */
> + lockdep_set_novalidate_class(&pool_lock);
> + for (i = 0; i < ODEBUG_HASH_SIZE; i++) {
> raw_spin_lock_init(&obj_hash[i].lock);
> + lockdep_set_novalidate_class(&obj_hash[i].lock);
> + }
>
> for (i = 0; i < ODEBUG_POOL_SIZE; i++)
> hlist_add_head(&obj_static_pool[i].node, &obj_pool);

NAK, we do not _EVER_ set novalidate if it can at all be avoided.

If there is a severe performance problem with lockdep, try and cure
that. But really, who runs lockdep kernels on 8 sockets?