Confused by function names cpuidle_install_idle_handler/cpuidle_uninstall_idle_handler

Mohammad Merajul Islam Molla meraj.enigma at gmail.com
Tue Jul 22 09:56:53 EDT 2014


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



More information about the Kernelnewbies mailing list