lkml.org 
[lkml]   [2013]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 1/3] make migrate disable/enable conditioned on softirq_nestcnt transition
* Steven Rostedt | 2013-12-05 19:45:30 [-0500]:

>On Fri, 6 Dec 2013 00:42:22 +0100
>Nicholas Mc Guire <der.herr@hofr.at> wrote:
>> --- a/kernel/softirq.c
>> +++ b/kernel/softirq.c
>> @@ -569,8 +569,8 @@ static void do_current_softirqs(int need_rcu_bh_qs)
>>
>> void local_bh_disable(void)
>> {
>> - migrate_disable();
>> - current->softirq_nestcnt++;
>> + if (++current->softirq_nestcnt == 1)
>> + migrate_disable();
>> }
>> EXPORT_SYMBOL(local_bh_disable);
>>
>> @@ -584,8 +584,8 @@ void local_bh_enable(void)
>> do_current_softirqs(1);
>> local_irq_enable();
>>
>> - current->softirq_nestcnt--;
>> - migrate_enable();
>> + if (--current->softirq_nestcnt == 0)
>> + migrate_enable();
>
>I wonder if we should add a:
>
> BUG_ON(current->softirq_nestcnt < 0);

We have a WARN_ON() in each enable path. That one in local_bh_enable()
isn't part of the context here. If you want to s/WARN_/BUG_/ then I
would prefer not to since there are a few people with no UART and this
could break the system while the current sollution keeps the system
running.

>As for the patch, I haven't found anything wrong with it.
>
>Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
Thanks.

Sebastian


\
 
 \ /
  Last update: 2013-12-15 16:21    [W:0.098 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site