linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: EXYNOS: add cpuidle-exynos.max_states kernel parameter
Date: Mon, 02 Sep 2013 17:52:15 +0200	[thread overview]
Message-ID: <5224B42F.3090500@linaro.org> (raw)
In-Reply-To: <3870129.vNtjevCIAF@amdc1032>

On 09/02/2013 04:43 PM, Bartlomiej Zolnierkiewicz wrote:
> On Monday, September 02, 2013 04:24:23 PM Daniel Lezcano wrote:
>> On 09/02/2013 03:48 PM, Bartlomiej Zolnierkiewicz wrote:
>>> On Monday, September 02, 2013 03:18:51 PM Daniel Lezcano wrote:
>>>> On 09/02/2013 11:41 AM, Bartlomiej Zolnierkiewicz wrote:
>>>>> On Monday, September 02, 2013 10:54:17 AM Daniel Lezcano wrote:
>>>>>> On 08/30/2013 12:21 PM, Bartlomiej Zolnierkiewicz wrote:
>>>>>>> Add "cpuidle-exynos.max_states=" parameter to allow user to specify
>>>>>>> the maximum of allowed CPU idle states for ARM EXYNOS cpuidle driver.
>>>>>>>
>>>>>>> This change is needed because C1 state (AFTR mode) is often not able
>>>>>>> to work properly due to incompatibility with some bootloader versions.
>>>>>>>
>>>>>>> Usage examples:
>>>>>>>
>>>>>>> "cpuidle-exynos.max_states=1" disables C1 state (AFTR mode).
>>>>>>>
>>>>>>> "cpuidle-exynos.max_states=0" disables the driver completely.
>>>>>>>
>>>>>>> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
>>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>>>> Cc: Tomasz Figa <t.figa@samsung.com>
>>>>>>> Cc: Amit Daniel Kachhap <amit.daniel@samsung.com>
>>>>>>
>>>>>> There is a max_cstate option for acpi and intel idle. There is also the
>>>>>> cpuidle.off=1 option. As the semantic is the same, I think adding a
>>>>>> common cpuidle option usable for all the drivers is better.
>>>>>
>>>>> I thought about making the option common for all cpuidle drivers first
>>>>> but due to support for multiple cpuidle drivers on one machine (i.e.
>>>>> big.LITTLE), per-driver option looked like a better approach.
>>>>>
>>>>> Should I make the option common and not worry about multiple drivers on
>>>>> one machine support?
>>>>
>>>> Mmh, that's a good point.
>>>>
>>>> I am not in favor of multiple options spread across the different
>>>> drivers. Furthermore the max_cstate is used in the intel platform to
>>>> 'discover' what states the firmware supports which is not the case of
>>>> the cpuidle ARM drivers (except new PSCI based). This option does not
>>>> really fits well here.
>>>>
>>>> There is the kernel parameter 'cpuidle.off', so disabling the driver is ok.
>>>>
>>>> You converted the cpuidle driver to a platform driver. Isn't possible to
>>>> pass information in the platform data field at boot time to tell AFTR is
>>>> not supported and then act on the 'disabled' field of this state ?
>>>
>>> It might be possible but I don't know where the source of this data would
>>> be, platform specific kernel parameter? It sounds just like moving the code
>>> around and adding superfluous platform->driver code because the similar
>>> kernel parameter to disable just AFTR can be added in cpuidle-exynos driver
>>> as well.
>>
>> It is to prevent to add a new kernel parameter (with the documentation)
>> for a single driver which has a bogus idle state. If that could be
>> handled internally that would be cleaner.
> 
> If I believed that it could be handled internally I wouldn't be trying to
> add a kernel parameter to handle it.. Would I? ;)
> 
>> Can you shortly describe what happens with the bootloader and AFTR ?
> 
> AFTR just doesn't work with the custom U-Boot version that we are using
> (attempts to go into AFTR mode result in lockup) and using the upstream
> version of U-Boot is not an option since it doesn't support the hardware
> that we are using AFAIK. I also don't know exactly why it doesn't work
> (I just suspect that it reuses INFORM registers for some other purposes).

You want to add a kernel option as a work around for a bug in U-Boot ?

IMO, you should drop the hot potato to the u-boot guys :)

>> I guess you are not interested in cpuidle.off=1 because you want cpuidle
>> statistics for WFI, right ?
> 
> Right. :)



-- 
 <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

  reply	other threads:[~2013-09-02 15:52 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-30 10:21 [PATCH 2/2] ARM: EXYNOS: add cpuidle-exynos.max_states kernel parameter Bartlomiej Zolnierkiewicz
2013-09-02  8:54 ` Daniel Lezcano
2013-09-02  9:41   ` Bartlomiej Zolnierkiewicz
2013-09-02 13:18     ` Daniel Lezcano
2013-09-02 13:48       ` Bartlomiej Zolnierkiewicz
2013-09-02 14:24         ` Daniel Lezcano
2013-09-02 14:43           ` Bartlomiej Zolnierkiewicz
2013-09-02 15:52             ` Daniel Lezcano [this message]
2013-09-02 16:13               ` Bartlomiej Zolnierkiewicz

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=5224B42F.3090500@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).