[PATCH v2 7/7] ARM: smp: Add runtime PM support for CPU hotplug

Alan Stern stern at rowland.harvard.edu
Sat Sep 5 08:39:20 PDT 2015


On Sat, 5 Sep 2015, Grygorii Strashko wrote:

> On 09/04/2015 09:45 PM, Alan Stern wrote:
> > On Fri, 4 Sep 2015, Grygorii Strashko wrote:
> > 
> >> There is one "small" problem with such approach :(
> >>
> >> - It's incompatible with -RT kernel, because PM runtime can't be used
> >> in atomic context on -RT.
> > 
> > Can you explain this more fully?  Why can't runtime PM be used in
> > atomic context in the -rt kernels?
> >  
> 
> See:
>  http://lwn.net/Articles/146861/
>  https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#How_does_the_CONFIG_PREEMPT_RT_patch_work.3F
> 
> spinlock_t
>     Critical sections are preemptible. The _irq operations (e.g., spin_lock_irqsave())
>  do -not- disable hardware interrupts. Priority inheritance is used to prevent priority
>  inversion. An underlying rt_mutex is used to implement spinlock_t in PREEMPT_RT. 
> 
> As result, have to do things like:
> https://lkml.org/lkml/2015/8/18/161
> https://lkml.org/lkml/2015/8/18/162
> 
> Sorry for brief reply - Friday/Sat night :)

I see.  Although we normally think of interrupt contexts as being
atomic, in an -rt kernel this isn't true any more because things like
spin_lock_irq don't actually disable interrupts.

Therefore it would be correct to say that in -rt kernels, runtime PM
can be used in interrupt context (if the device is marked as irq-safe),
but not in atomic context.  Right?

Alan Stern




More information about the linux-arm-kernel mailing list