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 06/17][V2] ARM: OMAP4: cpuidle - use the omap4_idle_data variable directly
Date: Thu, 19 Apr 2012 16:49:12 +0200	[thread overview]
Message-ID: <4F9025E8.9020707@linaro.org> (raw)
In-Reply-To: <87r4vw8qfd.fsf@ti.com>

On 04/10/2012 12:56 AM, Kevin Hilman wrote:
> Daniel Lezcano<daniel.lezcano@linaro.org>  writes:
>
>> We are storing the 'omap4_idle_data' in the private data field
>> of the cpuidle device. As we are using this variable only in this file,
>> that does not really make sense. Let's use the global variable directly
>> instead dereferencing pointers in an idle critical loop.
>
> Did you notice a performance impact before this change?

No, I didn't and I don't think I will be able to measure it. But by 
experience, when dereferencing a pointer that could leads to a cache 
miss and impact the performances. That may not be the case here, so I 
won't argue with that as I won't able to prove it :)

>> Also, that simplfies the code.
>
> possibly, but at the expense of clean abstractions which IMO helps readability.
>
> Unless there is a real performance hit here (which I doubt), I'd prefer
> to leave this as is.

There are two reasons of this change. We are storing 'state_count' times 
a pointer in a private structure for state_usage but the information is 
already available in the file and easily accessible.
Also, this is set in the fill_cstate function I am removing to let all 
the initialization to be done at compile time.

Furthermore, I don't get why we have a 'driver data' area in a structure 
which is dedicated for the states statistics, IMHO that does not help 
understanding. My mid-term cleanup is to kill the 'driver_data' field in 
the cpuidle core because I don't think it is at the right place.

An idea I had for consolidate all the cpuidle driver was to use the 
containerof macro to define the architecture specific structure and 
declare inside this structure the cpuidle driver and the devices. It is 
similar on how are implemented the 'routes' for the network stack or the 
cgroup subsystems, there is a core engine handling generic structure 
which a contained by the specific structure related to the engine's 
user. That helps a lot for readability.

Well this is an idea but before I have to unify the cpuidle drivers code 
to make it clear what is doable or not.



-- 
  <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:[~2012-04-19 14:49 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-04 20:12 [PATCH 00/17][V2] ARM: OMAP3/4 : cpuidle34xx and cpuidle44xx cleanups Daniel Lezcano
2012-04-04 20:12 ` [PATCH 01/17][V2] ARM: OMAP4: cpuidle - Remove unused valid field Daniel Lezcano
2012-04-04 20:12 ` [PATCH 02/17][V2] ARM: OMAP4: cpuidle - Declare the states with the driver declaration Daniel Lezcano
2012-04-09 22:37   ` Kevin Hilman
2012-04-19 13:58     ` Daniel Lezcano
2012-04-23 14:06       ` Daniel Lezcano
2012-04-23 17:08         ` Kevin Hilman
2012-04-23 22:11           ` Daniel Lezcano
2012-04-24  0:27             ` Kevin Hilman
2012-04-04 20:12 ` [PATCH 03/17][V2] ARM: OMAP4: cpuidle - Remove the cpuidle_params_table table Daniel Lezcano
2012-04-04 20:12 ` [PATCH 04/17][V2] ARM: OMAP4: cpuidle - fix static omap4_idle_data declaration Daniel Lezcano
2012-04-09 22:38   ` Kevin Hilman
2012-04-04 20:12 ` [PATCH 05/17][V2] ARM: OMAP4: cpuidle - Initialize omap4_idle_data at compile time Daniel Lezcano
2012-04-04 20:12 ` [PATCH 06/17][V2] ARM: OMAP4: cpuidle - use the omap4_idle_data variable directly Daniel Lezcano
2012-04-09 22:56   ` Kevin Hilman
2012-04-19 14:49     ` Daniel Lezcano [this message]
2012-04-04 20:12 ` [PATCH 07/17][V2] ARM: OMAP4: cpuidle - remove omap4_idle_data initialization at boot time Daniel Lezcano
2012-04-09 22:40   ` Kevin Hilman
2012-04-04 20:12 ` [PATCH 08/17][V2] ARM: OMAP3: cpuidle - remove rx51 cpuidle parameters table Daniel Lezcano
2012-04-04 20:12 ` [PATCH 09/17][V2] ARM: OMAP3: define cpuidle statically Daniel Lezcano
2012-04-04 20:12 ` [PATCH 10/17][V2] ARM: OMAP3: cpuidle - remove the 'valid' field Daniel Lezcano
2012-04-09 23:13   ` Kevin Hilman
2012-04-19 14:02     ` Daniel Lezcano
2012-04-04 20:12 ` [PATCH 11/17][V2] ARM: OMAP3: cpuidle - remove cpuidle_params_table Daniel Lezcano
2012-04-09 23:12   ` Kevin Hilman
2012-04-04 20:12 ` [PATCH 12/17][V2] ARM: OMAP3: define statically the omap3_idle_data Daniel Lezcano
2012-04-04 20:12 ` [PATCH 13/17][V2] ARM: OMAP3: cpuidle - use omap3_idle_data directly Daniel Lezcano
2012-04-04 20:12 ` [PATCH 14/17][V2] ARM: OMAP3 : cpuidle - simplify next_valid_state Daniel Lezcano
2012-04-04 20:12 ` [PATCH 15/17][V2] ARM: OMAP3: set omap3_idle_data as static Daniel Lezcano
2012-04-04 20:12 ` [PATCH 16/17][V2] ARM: OMAP3/4: consolidate cpuidle Makefile Daniel Lezcano
2012-04-04 20:12 ` [PATCH 17/17][V2] ARM: OMAP3: cpuidle - set global variables static Daniel Lezcano
2012-04-09 23:23 ` [PATCH 00/17][V2] ARM: OMAP3/4 : cpuidle34xx and cpuidle44xx cleanups Kevin Hilman
2012-04-19 14:03   ` Daniel Lezcano

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=4F9025E8.9020707@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).