On Wed, Apr 16, 2014 at 09:06:24AM -0700, Eric Dumazet wrote:
> From: Eric Dumazet <[email protected]>
> 
> Calling rcu_bh_qs() after every softirq action is not really needed.
> 
> What RCU needs is at least one rcu_bh_qs() per softirq round to note a
> quiescent state was passed for rcu_bh
> 
> Note for Paul and myself : this could be inlined as a single instruction
> and avoid smp_processor_id()
> (sone this_cpu_write(rcu_bh_data.passed_quiesce, 1))
> 
> Signed-off-by: Eric Dumazet <[email protected]>

Looks plausible -- will give it a go!  If nothing breaks, queued for
3.16.

                                                        Thanx, Paul

> ---
>  kernel/softirq.c |    4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/kernel/softirq.c b/kernel/softirq.c
> index b50990a5bea0..b9b2d4906848 100644
> --- a/kernel/softirq.c
> +++ b/kernel/softirq.c
> @@ -232,7 +232,6 @@ asmlinkage void __do_softirq(void)
>       bool in_hardirq;
>       __u32 pending;
>       int softirq_bit;
> -     int cpu;
> 
>       /*
>        * Mask out PF_MEMALLOC s current task context is borrowed for the
> @@ -247,7 +246,6 @@ asmlinkage void __do_softirq(void)
>       __local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET);
>       in_hardirq = lockdep_softirq_start();
> 
> -     cpu = smp_processor_id();
>  restart:
>       /* Reset the pending bitmask before enabling irqs */
>       set_softirq_pending(0);
> @@ -276,11 +274,11 @@ restart:
>                              prev_count, preempt_count());
>                       preempt_count_set(prev_count);
>               }
> -             rcu_bh_qs(cpu);
>               h++;
>               pending >>= softirq_bit;
>       }
> 
> +     rcu_bh_qs(smp_processor_id());
>       local_irq_disable();
> 
>       pending = local_softirq_pending();
> 
> 

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

Reply via email to