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
next prev parent 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).