* Ran Shalit <ranshalit@xxxxxxxxx> [151125 11:49]: > On Wed, Nov 25, 2015 at 8:50 PM, Tony Lindgren <tony@xxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html