Re: [PATCH 01/02] OMAP3 CPUidle driver

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

 



"Rajendra Nayak" <rnayak@xxxxxx> writes:

>> "Rajendra Nayak" <rnayak@xxxxxx> writes:
>> 
>> > This patch adds the OMAP3 cpuidle driver. Irq enable/disable is done
>> > in the core cpuidle driver before it queries the governor for the
>> > next state.
>> 
>> Can you explain why you need the IRQ/FIQ disable added to 
>> cpuidle_idle_call()
>> 
>
> This was done to prevent any interrupts firing in between a 
> cpuidle_curr_governor->select() and target_state->enter().

I understand that, but I still don't understand exactly what you're
trying to prevent.  Did you have a specific bug that this prevented?

> An interrupt in between could end up with a previously selected 
> state to be programmed.

Remember that this function _is_ the idle loop, meaning when this runs
nothing else is happening.  After the select, if other system activity
has happened (e.g. and interrupt, or thread wakeup etc.), it will run
before the target_state->enter() because of the check for
need_resched().

> Any suggestions on a better way to handle this?

Just drop the IRQ/FIQ disables altogether.

Using previous versions of the CPUidle patches, I'm using unmodified
CPUidle code without any problems.

Kevin

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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux