Original Mail was sent at 2010/05/14 10:38:43 CEST
Hi,
I reported the power_end tracing problem earlier this year
(http://lkml.org/lkml/2010/2/24/79) and sent a patch which worked for my
system. However this patch would have not worked on other systems (as
for example Arjans). It would had lead to a double posting of these
events.
However. Here's a diff that should fix the problem on the correct spot.
The reason that it worked for Arjan and not for me is that his system
uses drivers/acpi/processor_idle.c when idling, mine uses the cpu_idle
thread from arch/x86/kernel/process_64.c.
A comparable idle thread also exists for 32 bit x86, so I added it in
process_32.c too.
However, is there any standard about where to report the start and end
events? Currently it's the idle routine, which creates the power_start
event, the routine which calls the idle_routine on the other hand
creates the power_end event.
For these patches, I'm not sure whether the power_end event should even
be reported. On kernels, which use the repnop loop when idling, there
won't be a switch to another c-state and therefore no power_start event,
the power_end event could belong to. Would that be a problem? If it
would, the only way to fix this would be to move the power_end events
into the idle routines, since cpu_idle is dumb and does not know whats
behind pm_idle.