mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Waiman Long <longman@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>, Will Deacon <will.deacon@arm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-kernel@vger.kernel.org,
	Bart Van Assche <bvanassche@acm.org>
Subject: Re: [PATCH 0/2] locking/lockdep: Track number of zapped classes & report abuse
Date: Wed, 5 Dec 2018 10:37:14 -0500	[thread overview]
Message-ID: <44b51e88-acf8-0bd4-1f85-3b8e7ca76bd7@redhat.com> (raw)
In-Reply-To: <0c6c14e0-2c85-d4b7-bfa6-345cfae0d8b2@redhat.com>

On 11/30/2018 09:38 AM, Waiman Long wrote:
> On 11/29/2018 05:48 PM, Peter Zijlstra wrote:
>> On Thu, Nov 29, 2018 at 05:41:35PM -0500, Waiman Long wrote:
>>> When a kernel module is repeatedly load and unload, it will eventually
>>> exhaust the lockdep entries resulting in a bug message. This is a use
>>> case that the current lockdep code cannot support.
>>>
>>> This patchset tracks the number of zapped classes and print a warning if
>>> too many lockdep entries are wasted because of too many module unloading.
>>> For example,
>>>
>>> [ 2490.651531] BUG: MAX_LOCKDEP_KEYS too low!
>>> [ 2490.669925] turning off the locking correctness validator.
>>> [ 2490.669925] Please attach the output of /proc/lock_stat to the bug report
>>> [ 2490.669926] ========================================================
>>> [ 2490.669927] WARNING: 6499 out of 8191 locks have been destroyed
>>> [ 2490.669927] through kernel module unload operations.
>>> [ 2490.669928] The corresponding lockdep entries are not reusable.
>>> [ 2490.669928] The system might have run out of lockdep entries because
>>> [ 2490.669929] of repeated kernel module load and unload operations.
>>> [ 2490.669929] Lockdep cannot support this particular use case.
>>> [ 2490.669930] --------------------------------------------------------
>> Have a look here:
>>
>>   https://lkml.kernel.org/r/20181128234325.110011-1-bvanassche@acm.org
> Thanks for the pointer, I will take a look at that.
>
> Cheers,
> Longman
>
I have finished reviewing Bart's v2 patch. It enables the reuse of
lock_classes[] and list_entries[] entries. However, the stack_trace[],
lock_chains[] and chain_hlocks[] entries will still be exhausted over
time. So it doesn't completely solve the issue that I am looking at.

As a side note, an alternative way of solving the workqueue lockdep
problem may be to mark the lockdep key as special that it will hash the
actual lock address as part of the key so that each unique lock of the
same key will have its own unique lock class. That may be able to fix
the issue as well. Just a thought.

Cheers,
Longman



      reply	other threads:[~2018-12-05 15:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 22:41 Waiman Long
2018-11-29 22:41 ` [PATCH 1/2] locking/lockdep: Annotate #else/#endif's that are far from #if Waiman Long
2018-11-29 22:41 ` [PATCH 2/2] locking/lockdep: Track number of zapped classes & report abuse Waiman Long
2018-11-29 22:48 ` [PATCH 0/2] " Peter Zijlstra
2018-11-30 14:38   ` Waiman Long
2018-12-05 15:37     ` Waiman Long [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44b51e88-acf8-0bd4-1f85-3b8e7ca76bd7@redhat.com \
    --to=longman@redhat.com \
    --cc=bvanassche@acm.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®