Re: question about disabling interrupts for workqueue pool?

From: Tejun Heo
Date: Tue Jun 25 2013 - 19:01:38 EST


Hello, Steven.

On Tue, Jun 25, 2013 at 06:52:34PM -0400, Steven Rostedt wrote:
> Now my question is, are those local_irq_*() calls just for synchronizing
> with sched RCU? If so, can you use rcu_read_lock_sched() instead?

Hmmm... using local_irq_disable/enable() is more consistent as
irq-safe locks are used widely in workqueue. Also, using
rcu_read_lock_sched() would mean that we'll have
spin_lock_irq_save/restore() nested inside preempt_disable/enable(),
which is a bit silly in upstream kernel.

That said, both paths you pointed out are rather cold, so I don't
think it'd matter. Please feel free to send a patch with comment
explaining why local irq flipping, which fits better there, isn't
being used.

Thanks.

--
tejun
--
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/