All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yang Shi" <yang.s@alibaba-inc.com>
To: Waiman Long <longman@redhat.com>, tglx@linutronix.de
Cc: linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH 2/2] lib: debugobjects: touch watchdog to avoid softlockup when !CONFIG_PREEMPT
Date: Tue, 28 Nov 2017 02:52:19 +0800	[thread overview]
Message-ID: <a8ec6c5e-1152-e129-fd47-ddb76398a17b@alibaba-inc.com> (raw)
In-Reply-To: <1a6f92f5-2c12-1276-916b-fd2848899e5c@redhat.com>



On 11/27/17 10:18 AM, Waiman Long wrote:
> On 11/27/2017 12:54 PM, Yang Shi wrote:
>> Hi Waiman,
>>
>> The second patch of this series.
>>
>> Thanks,
>> Yang
>>
>>
>> On 11/17/17 11:43 AM, Yang Shi wrote:
>>> There are nested loops on debug objects free path, sometimes it may take
>>> over hundred thousands of loops, then cause soft lockup with
>>> !CONFIG_PREEMPT
>>> occasionally, like below:
>>>
>>>   ...
>>>
>>> The code path might be called in either atomic or non-atomic context,
>>> so touching softlockup watchdog instead of calling cond_resched() which
>>> might fall asleep. However, it is unnecessary to touch the watchdog
>>> every loop, so just touch the watchdog at every 10000 (best estimate)
>>> loops.
>>>
>>> Signed-off-by: Yang Shi <yang.s@alibaba-inc.com>
> 
> I do have some concern about suppressing the soft lockup warning
> entirely. If the system feels unresponsive for a certain period of time
> (e.g. 22s), most users would like to know what is going on. It can be a
> custom message with less scary warning. Alternatively, some opt-out

I'm not sure if it is necessary for debug code since the 
unresponsiveness is introduced by debug config and is expected somehow, 
so the user is supposed to know what they are doing, and it sounds 
preferred to disregard the soft lockup message reported by object debug 
for the most time.

We do have some other examples which suppress soft lockup completely in 
kernel, i.e. kdb debug, printing some verbose debug or error message, 
some slow driver code, etc.

> mechanism can be added to explicitly disable soft lookup warning for
> debugobjs is OK as long as it is not the default.
If we really want to some opt-out, we should be able to add a proc knob 
to disable soft lockup as the patch does, but not default. If this is 
too overkilling, we may just add some comment in the Kconfig help text 
to tell users the side effect.

Thanks,
Yang

> 
> Cheers,
> Longman
> 

  reply	other threads:[~2017-11-27 18:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-17 19:43 [RFC PATCH 1/2] lib: debugobjects: export max loops counter Yang Shi
2017-11-17 19:43 ` [RFC PATCH 2/2] lib: debugobjects: touch watchdog to avoid softlockup when !CONFIG_PREEMPT Yang Shi
2017-11-27 17:54   ` Yang Shi
2017-11-27 18:18     ` Waiman Long
2017-11-27 18:52       ` Yang Shi [this message]
2017-11-27 19:36         ` Waiman Long
2017-11-28  0:28           ` Yang Shi
2017-11-27 17:53 ` [RFC PATCH 1/2] lib: debugobjects: export max loops counter Yang Shi
2017-11-27 18:08   ` Waiman Long
2017-11-27 18:53     ` Yang Shi

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=a8ec6c5e-1152-e129-fd47-ddb76398a17b@alibaba-inc.com \
    --to=yang.s@alibaba-inc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=tglx@linutronix.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.