Confused by function names cpuidle_install_idle_handler/cpuidle_uninstall_idle_handler
Mohammad Merajul Islam Molla
meraj.enigma at gmail.com
Tue Jul 22 11:07:47 EDT 2014
Hi Anand,
Thanks for your reply. I looked up the patch.
Question:
Should these functions be renamed now that they don't
do what they used to do earlier?
--
Thanks,
-Meraj
On Tue, Jul 22, 2014 at 8:43 PM, Anand Moon <moon.linux at yahoo.com> wrote:
> 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