Re: [v2 PATCH] rcutree/rcu_bh_qs: disable irq while calling rcu_preempt_qs()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Tiejun Chen | 2013-12-18 17:51:49 [+0800]:

>Any callers to the function rcu_preempt_qs() must disable irqs in
>order to protect the assignment to ->rcu_read_unlock_special. In
>RT case, rcu_bh_qs() as the wrapper of rcu_preempt_qs() is called
>in some scenarios where irq is enabled, like this path,
>
>do_single_softirq()
>    |
>    + local_irq_enable();
>    + handle_softirq()
>    |    |
>    |    + rcu_bh_qs()
>    |        |
>    |        + rcu_preempt_qs()
>    |
>    + local_irq_disable()
>
>So here we'd better disable irq directly inside of rcu_bh_qs() to
>fix this, otherwise the kernel may be freezable sometimes as
>observed. And especially this way is also kind and safe for the
>potential rcu_bh_qs() usage elsewhere in the future.
>
>Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx>
>Signed-off-by: Bin Jiang <bin.jiang@xxxxxxxxxxxxx>
Applied.

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




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux