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