Re: [PATCH 5.10 020/104] ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled

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

 



Hi!

> [ Upstream commit 06862d789ddde8a99c1e579e934ca17c15a84755 ]
> 
> We get suspcious RCU usage splats with cpuidle in several places in
> omap_enter_idle_coupled() with the kernel debug options enabled:
> 
> RCU used illegally from extended quiescent state!
> ...
> (_raw_spin_lock_irqsave)
> (omap_enter_idle_coupled+0x17c/0x2d8)
> (omap_enter_idle_coupled)
> (cpuidle_enter_state)
> (cpuidle_enter_state_coupled)
> (cpuidle_enter)
> 
> Let's use RCU_NONIDLE to suppress these splats. Things got changed around
> with commit 1098582a0f6c ("sched,idle,rcu: Push rcu_idle deeper into the
> idle path") that started triggering these warnings.

I just wanted to check... AFAICT RCU_NONIDLE puts some quite heavy
instrumentation around each statement; does it makes sense to group
the statements into one in cases like this?

Best regards,
								Pavel

> @@ -194,9 +194,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
>  		    mpuss_can_lose_context)
>  			gic_dist_disable();
>  
> -		clkdm_deny_idle(cpu_clkdm[1]);
> -		omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
> -		clkdm_allow_idle(cpu_clkdm[1]);
> +		RCU_NONIDLE(clkdm_deny_idle(cpu_clkdm[1]));
> +		RCU_NONIDLE(omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON));
> +		RCU_NONIDLE(clkdm_allow_idle(cpu_clkdm[1]));
>  
>  		if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
>  		    mpuss_can_lose_context) {

-- 
http://www.livejournal.com/~pavelmachek

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux