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

Reply via email to