Re: sched: serial port lockdep warning when offlining CPUs

From: Levin, Alexander (Sasha Levin)
Date: Thu Sep 28 2017 - 07:50:28 EST


On Thu, Sep 28, 2017 at 08:36:07PM +0900, Sergey Senozhatsky wrote:
>On (09/28/17 19:30), Sergey Senozhatsky wrote:
>> lib/ratelimit.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/ratelimit.c b/lib/ratelimit.c
>> index 08f8043cac61..bddc55834c2e 100644
>> --- a/lib/ratelimit.c
>> +++ b/lib/ratelimit.c
>> @@ -48,7 +48,8 @@ int ___ratelimit(struct ratelimit_state *rs, const char *func)
>> if (time_is_before_jiffies(rs->begin + rs->interval)) {
>> if (rs->missed) {
>> if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE)) {
>> - pr_warn("%s: %d callbacks suppressed\n", func, rs->missed);
>> + printk_deferred(KERN_WARN "%s: %d callbacks suppressed\n",
>
>oops... s/KERN_WARN/KERN_WARNING/
>
>sorry about that.

Okay, that seems to have delt with the callbacks supressed issue.

I also seem to be hitting it as a result of the scheduler triggering a WARN, where print_stack_trace(), for example, just uses printk().

Now I'm not sure what's your approach here, do we keep converting printk to printk_deferred one by one until we whacked every mole?

--

Thanks,
Sasha