Re: [PATCH 1/3] make migrate disable/enable conditioned onsoftirq_nestcnt transition

From: Sebastian Andrzej Siewior
Date: Sun Dec 15 2013 - 09:46:52 EST


* Steven Rostedt | 2013-12-05 19:45:30 [-0500]:

>On Fri, 6 Dec 2013 00:42:22 +0100
>Nicholas Mc Guire <der.herr@xxxxxxx> 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@xxxxxxxxxxx>
Thanks.

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/