Re: [PATCH v2] cgroup: disable irqs while holding css_set_lock
From: Tejun Heo <tj@kernel.org>
Date: 2016-06-17 05:36:30
Also in:
lkml
From: Tejun Heo <tj@kernel.org>
Date: 2016-06-17 05:36:30
Also in:
lkml
Hello, On Thu, Jun 16, 2016 at 09:12:32PM -0300, Daniel Bristot de Oliveira wrote:
The use of the irq spin_(un)lock_irq() assumes that the code is always called with IRQs enabled. But that is not always true in this case, as we call cgroup_free() in the hard IRQ context, and unconditionally enable IRQ in this context is a problem. So we need to use irqsave/restore. Discussing with rostedt, we figured that this needs to be IRQ safe (using irqsave/restore) in the PREEMPT RT too, so I need to code a v3 of this patch using raw_spin_*() functions to avoid this problem in the -rt kernel as well. Do you see any problems on this?
Use of raw_spin is fine but I don't see how, say, rebind_subsystems() or cgroup_setup_root() can ever be called with irq disabled given that they assume sleepable context. Please use _irq and _irqsave appropriately depending on the circumstances. Thanks. -- tejun