* Ran Shalit <ransha...@gmail.com> [151125 11:49]:
> On Wed, Nov 25, 2015 at 8:50 PM, Tony Lindgren <t...@atomide.com> wrote:
>
> We actually want the deeper state, but not in the price of performance...
> So I thought of these possibilities:
> 1. configure the sleep state to check activity for a longer time than
> micro seconds (several seconds). If there is non activity in that long
> period, only than will move to retention. I am not sure if there is
> such configuration parameter . Maybe one of the following parameters
> can be configured for this option ?
> 
> 46 struct cpuidle_params {
>  47         u32 exit_latency;       /* exit_latency = sleep + wake-up
> latencies */
>  48         u32 target_residency;
>  49         u8 valid;               /* validates the C-state */
>  50 };
> 
> 2. Another option can be to write a kernel module which check if there
> is ethernet activity for X seconds, if there is none - it will enable
> power management , otherwise - it will disable the power management.

It really should be implemented with the standard pm_runtime calls in the
Ethernet driver. Maybe you can clk_get some parent clock from the Ethernet
driver that will block the idle state?

> These maybe can solve the ethernet issue, but I still not sure why
> there is constantly incrementation in the retention state, as if it
> enter and leave the state all periodically. Is it becuase some
> task/thread/process in the system (I guess it can be a kernel process
> actually) ?

I think what you're seeing is the kernel idle code incrementing it
every time the SoC hits idle.

Regards,

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

Reply via email to