Confused by function names cpuidle_install_idle_handler/cpuidle_uninstall_idle_handler
Anand Moon
moon.linux at yahoo.com
Tue Jul 22 10:43:58 EDT 2014
Hi Meraj,
Please look at the following commit this will help clear you confusion
git commit id : a0bfa1373859e9d11dc92561a8667588803e42d8
patch :0001-cpuidle-stop-depending-on-pm_idle.patch
To generate following patch:
#git format-patch -1 a0bfa1373859e9d11dc92561a8667588803e42d8
0001-cpuidle-stop-depending-on-pm_idle.patch
-Anand Moon
On Tuesday, July 22, 2014 7:28 PM, Mohammad Merajul Islam Molla <meraj.enigma at gmail.com> wrote:
Hello,
As mentioned, the code excerpt was from kernel version 3.0.
In recent kernel (version 3.16.0-rc4), the code for the two mentioned
functions looks as below -
/**
* cpuidle_install_idle_handler - installs the cpuidle idle loop handler
*/
void cpuidle_install_idle_handler(void)
{
if (enabled_devices) {
/* Make sure all changes finished before we switch to
new idle */
smp_wmb();
initialized = 1;
}
}
/**
* cpuidle_uninstall_idle_handler - uninstalls the cpuidle idle loop
handler
*/
void cpuidle_uninstall_idle_handler(void)
{
if (enabled_devices) {
initialized = 0;
kick_all_cpus_sync();
}
}
That is the source of confusion. There is no pm_idle handler installed
(or uninstalled) anymore.
--
Thanks,
-Meraj
On Tue, Jul 22, 2014 at 4:54 PM, Mulyadi Santosa
<mulyadi.santosa at gmail.com> wrote:
> On Fri, Jul 18, 2014 at 11:07 PM, Mohammad Merajul Islam Molla
> <meraj.enigma at gmail.com> wrote:
>> Hello,
>>
>> In drivers/cpuidle/cpuidle.c, there are two functions
>> cpuidle_install_idle_handler & cpuidle_uninstall_idle_handler. The
>> names seem confusing to me as they don't install any handler, rather
>> set 'initialized' variable to 1/0.
>>
>> In v3.0 kernel, these functions used to look as below where they
>> installed and uninstalled some handler function -
>>
>> void cpuidle_install_idle_handler(void)
>> 123 {
>> 124 if (enabled_devices && (pm_idle != cpuidle_idle_call)) {
>> 125 /* Make sure all changes finished before we switch
>> to new idle */
>> 126 smp_wmb();
>> 127 pm_idle = cpuidle_idle_call;
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> pm_idle is the callback handler, and it is assigned to
> cpuidle_idle_call. I think this what it means by "install"
>
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
More information about the Kernelnewbies
mailing list