From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
Cc: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>,
linux-acpi@vger.kernel.org, linux-pm@lists.linux-foundation.org,
trenn@suse.de
Subject: Re: [linux-pm] acpi_idle and max_cpus
Date: Tue, 19 Jun 2012 09:18:04 +0200 [thread overview]
Message-ID: <4FE027AC.8010607@linaro.org> (raw)
In-Reply-To: <4FE0243C.4040600@linux.vnet.ibm.com>
On 06/19/2012 09:03 AM, Srivatsa S. Bhat wrote:
> On 06/19/2012 12:24 PM, Deepthi Dharwar wrote:
>
>> On 06/18/2012 06:24 PM, Daniel Lezcano wrote:
>>
>>> On 06/18/2012 02:25 PM, Deepthi Dharwar wrote:
>>>> Hi Daniel,
>>>>
>>>> On 06/18/2012 01:48 AM, Daniel Lezcano wrote:
>>>>
>>>>> On 06/15/2012 05:28 PM, Daniel Lezcano wrote:
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I have a dual core Intel T9500.
>>>>>>
>>>>>> I boot the cpu with the acpi_idle driver and intel_idle enabled in the
>>>>>> config.
>>>>>>
>>>>>> The kernel is booted with maxcpus=1.
>>>>>>
>>>>>> After the system has boot, I put cpu1 online via sysfs.
>>>>>>
>>>>>> But I don't see any 'cpuidle' directory in the cpu's sysfs entry:
>>>>>>
>>>>>> /sys/devices/system/cpu/cpu1/cpuidle (?)
>>>>>>
>>>>>> When I look at the code I see the notifier is present for hotplug in
>>>>>> processor_driver.c and the cpuidle intel init routine should be called
>>>>>> there.
>>>>>>
>>>>
>>>>
>>>> Yes, we have a hotplug notifier.
>>>> Commit 99b72508 by Thomas Renninger fixed this issue.
>>>>
>>>> Please let me know which kernel version you are running and what is idle
>>>> driver registered ?
>>>
>>> The kernel version is 3.5.0-rc1
>>> The registered driver is acpi_idle (with intel_idle if I am not wrong).
>>>
>>> Thomas's patch is in this version.
>>>
>>> Maybe I am wrong but I think the patch is not correct because:
>>>
>>> static int __cpuinit acpi_processor_add(struct acpi_device *device)
>>> {
>>>
>>> ...
>>>
>>> #ifdef CONFIG_SMP
>>> if (pr->id >= setup_max_cpus && pr->id != 0)
>>> return 0;
>>> #endif
>>>
>>> ...
>>>
>>> per_cpu(processors, pr->id) = pr;
>>>
>>> ...
>>> }
>>>
>>> With max_cpus=1 we exit before setting up 'pr'.
>>>
>>> So the condition in:
>>>
>>> static int acpi_cpu_soft_notify(...)
>>> {
>>>
>>> unsigned int cpu = (unsigned long)hcpu;
>>> struct acpi_processor *pr = per_cpu(processors, cpu);
>>>
>>> if (action == CPU_ONLINE && pr) {
>>>
>>> ...
>>> }
>>>
>>> Is always false because pr == NULL
>>>
>>> I did the change but I don't still see the 'cpuidle' directory
>>> appearing, I suspect also pr->flags.need_hotplug_init is not correctly
>>> initialized but I did not investigate more.
>>>
>>
>>
>> Well looks like variable maxcpus holds the key here.
>>
>
>
> Whose equivalent is setup_max_cpus inside the kernel, as Daniel mentioned.
>
>> When I am booting the system, say with 2 out of 4 available cpus,
>> set via maxcpus variable with intel_idle or acpi_idle and onlining the
>> other 2 cpus later via sysfs, I dont see cpufreq or cpuidle dir in the
>> sysfs path.
>>
>> # cd /sys/devices/system/cpu/cpu2
>> xxx:/sys/devices/system/cpu/cpu2# ls
>> crash_notes node0 online
>> xxx:/sys/devices/system/cpu/cpu2# echo 1 > online
>> xxx:/sys/devices/system/cpu/cpu2# ls
>> cache crash_notes node0 online thermal_throttle topology
>>
>> So looks like its designed that way for now.
>
>
> I don't think so. Looks more like a bug than a design ;-)
>
>> So if maxcpus=X, X<Y where Y is no of available cpus.
>> Enabling the Y-X cpus later after the boot via sysfs is not enabling
>> cpuidle and cpufreq .
>>
>> The question is, do we want to modify this behavior ?
>>
>
>
> Yes we do, and that's Daniel's pain point as well. I don't think there is
> any good reason why the cpuidle directory must _not_ be exported for cpus
> that are onlined later.
Yes and if I refer to the code, it is supposed to do that.
I added Thomas in Cc.
Thanks
-- Daniel
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-06-19 7:18 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-15 15:28 acpi_idle and max_cpus Daniel Lezcano
2012-06-17 20:18 ` Daniel Lezcano
2012-06-18 12:25 ` Deepthi Dharwar
2012-06-18 12:54 ` [linux-pm] " Daniel Lezcano
2012-06-19 6:54 ` Deepthi Dharwar
2012-06-19 7:03 ` Srivatsa S. Bhat
2012-06-19 7:18 ` Daniel Lezcano [this message]
2012-06-19 15:30 ` Thomas Renninger
2012-06-25 11:25 ` [PATCH] acpi, cpuidle: Register with cpuidle even if cpu is onlined after boot (beyond maxcpus) Srivatsa S. Bhat
2012-06-25 13:53 ` Thomas Renninger
2012-06-25 13:53 ` Thomas Renninger
2012-06-25 16:03 ` Srivatsa S. Bhat
2012-06-25 16:03 ` Srivatsa S. Bhat
2012-06-26 9:29 ` Thomas Renninger
2012-06-26 9:41 ` Daniel Lezcano
2012-06-26 9:41 ` Daniel Lezcano
2012-06-26 9:58 ` Srivatsa S. Bhat
2012-06-26 9:58 ` Srivatsa S. Bhat
2012-06-26 10:42 ` Daniel Lezcano
2012-06-26 10:42 ` Daniel Lezcano
2012-06-26 11:01 ` Thomas Renninger
2012-06-26 11:01 ` Thomas Renninger
2012-06-27 9:07 ` [PATCH] acpi: intel_idle : break dependency between modules Daniel Lezcano
2012-06-27 9:07 ` Daniel Lezcano
2012-06-27 13:06 ` Thomas Renninger
2012-06-27 13:06 ` Thomas Renninger
[not found] ` <201206271506.29034.trenn-l3A5Bk7waGM@public.gmane.org>
2012-06-28 8:03 ` Daniel Lezcano
2012-06-28 8:03 ` Daniel Lezcano
2012-06-28 8:46 ` [PATCH v2] " Daniel Lezcano
2012-06-28 8:46 ` Daniel Lezcano
2012-06-28 11:24 ` Srivatsa S. Bhat
2012-06-28 11:27 ` Daniel Lezcano
2012-06-28 11:27 ` Daniel Lezcano
2012-06-28 11:56 ` Srivatsa S. Bhat
2012-06-28 11:56 ` Srivatsa S. Bhat
2012-06-28 19:24 ` Rafael J. Wysocki
2012-06-29 8:39 ` Daniel Lezcano
2012-06-29 8:39 ` Daniel Lezcano
2012-06-29 22:27 ` Rafael J. Wysocki
2012-06-29 22:27 ` Rafael J. Wysocki
2012-07-01 19:36 ` Daniel Lezcano
2012-07-01 19:36 ` Daniel Lezcano
2012-06-27 16:16 ` [PATCH] " Srivatsa S. Bhat
2012-06-27 16:16 ` [linux-pm] " Srivatsa S. Bhat
2012-06-28 7:34 ` Thomas Renninger
2012-06-28 11:23 ` Srivatsa S. Bhat
2012-06-28 11:23 ` [linux-pm] " Srivatsa S. Bhat
2012-06-26 11:07 ` [PATCH] acpi, cpuidle: Register with cpuidle even if cpu is onlined after boot (beyond maxcpus) Srivatsa S. Bhat
2012-06-26 11:07 ` [linux-pm] " Srivatsa S. Bhat
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FE027AC.8010607@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=deepthi@linux.vnet.ibm.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=trenn@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.