From: Thomas Renninger <trenn@suse.de>
To: arjan@linux.intel.com
Cc: jean.pihet@newoldbits.com, mingo@elte.hu, rjw@sisk.pl,
linux-omap@vger.kernel.org, linux-pm@lists.linux-foundation.org,
linux-trace-users@vger.kernel.org,
Robert Schoene <robert.schoene@tu-dresden.de>
Subject: Re: [PATCH 4/4] PERF: fix power:cpu_idle double end events
Date: Wed, 27 Oct 2010 17:42:04 +0200 [thread overview]
Message-ID: <201010271742.04545.trenn@suse.de> (raw)
In-Reply-To: <1288136605-10526-5-git-send-email-trenn@suse.de>
On Wednesday 27 October 2010 01:43:25 Thomas Renninger wrote:
> cpu_idle events (transition into sleep state and exiting) are
> both fired in pm_idle().
>
> Entering sleep state and exiting should always get fired inside
> pm_idle() already.
>
> This is a revert of commit c882e0feb937af4e5b991cbd1c
Robert: I expect you tested this on a machine with no cpuidle
driver registered?
I should have had a deeper look at this at once, done so now:
Current cpu_idle, power_start/end (same before my changes) behavior
on X86 is rather weird (without this patch):
if pm_idle is:
poll_idle -> should throw double end events
default_idle -> only throws power_start, your patch
fixed that, but in the generic cpu_idle
thread function which always gets executed
also if pm_idle != default_idle
So Robert fixed this case, but at the wrong place.
cpuidle_idle_call -> depends whether intel_idle or acpi_idle
driver registered:
intel_idle -> throws a cpu idle state event, still double end
events (one from cpuidle, one from
process_{32,64}.c, due to Robert's patch
acpi_idle -> whether a power_start event is thrown at all
depends on (cmp with acpi_idle_do_entry()):
cx->entry_method == ACPI_CSTATE_FFH
will end up in a power_start event via:
acpi_processor_ffh_cstate_enter(cx)
mwait_idle_with_hints()
but it will not in case of:
cx->entry_method == ACPI_CSTATE_HALT
or IO based switching (the else path there):
/* IO port based C-state */
Again without this(my) patch you get:
poll_idle -> double end events
default_idle -> all is fine (with your patch)
cpuidle_idle_call
intel_idle registered -> double end events
acpi_idle registered -> double end events
start events may not be thrown
at all.
perf timechart can handle double end events, this may be
the reason this was overseen.
Argh, I tried to come up with patches, but run out of
time. I will send something soon.
I also found a bug in my userspace stuff: I forgot to convert
u64 to u32..., sorry about that.
I try to resend everything tomorrow.
Thomas
next prev parent reply other threads:[~2010-10-27 15:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-26 23:43 Cleanup and fixes for power trace events Thomas Renninger
2010-10-26 23:43 ` [PATCH 1/4] PERF: Do not export power_frequency, but power_start event Thomas Renninger
2010-10-26 23:43 ` [PATCH 2/4] PERF(kernel): Cleanup power events V3 Thomas Renninger
2010-10-26 23:43 ` [PATCH 3/4] PERF(userspace): Adjust perf timechart to the new " Thomas Renninger
2010-10-26 23:43 ` [PATCH 4/4] PERF: fix power:cpu_idle double end events Thomas Renninger
2010-10-27 15:42 ` Thomas Renninger [this message]
2010-11-01 8:11 ` Robert Schöne
2010-11-04 8:57 ` Thomas Renninger
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=201010271742.04545.trenn@suse.de \
--to=trenn@suse.de \
--cc=arjan@linux.intel.com \
--cc=jean.pihet@newoldbits.com \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=linux-trace-users@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rjw@sisk.pl \
--cc=robert.schoene@tu-dresden.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox