Re: [RFC] Unprepare callback for cpuidle_device

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

 



On 07/06/2011 04:23 PM, asinghal@xxxxxxxxxxxxxx wrote:
> We plan to use high resolution timers in one of our modules, with the
> requirement that we cancel these timers when the cpu goes idle and restart
> them when the cpu comes out of idle.
>
> We are cancelling the timers in cpuidle prepare callback. The problem is
> that if the need_resched() call in drivers/cpuidle/cpuidle.c returns true,
> how do we restart the timer? If the call returns false, we can restart the
> timer in the cpuidle enter callback.

Hi Amar,

I think you should not use cpuidle prepare callback at all. It may be
removed soon (see https://lkml.org/lkml/2011/6/6/261) and I think
there are better ways to achieve what you are trying to do.

I think everything should go into the enter routines (the idle routines
provided by the driver). That way you would not have to worry about
need_resched() in cpuidle.c. Also it would be a cleaner implementation
as you wouldn't touch generic cpuidle code.

>
> The solution to the problem that we have in mind is adding an unprepare
> callback to the cpuidle_device struct, and calling it if needs_resched()
> returns true. Another option is to implement deferred timers for hrtimers.
> Which of the two options is the better solution, or is there another
> feasible alternative?

As i said, everything should go inside enter routine and
you wouldn't have to use/implement prepare/unprepare callbacks.

Thanks
-Trinabh
_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux