Re: [PATCH 3/3] trace points: power: remove 'cpu_id' from trace_cpu_idle

Thomas Renninger
2011-08-22T08:27:48Z

On Saturday, August 20, 2011 04:40:09 AM Ming Lei wrote:
> Hi,
>
> 2011/8/20 Thomas Renninger <trenn@suse.de>:
> > On Friday, August 19, 2011 05:04:04 PM tom.leiming@gmail.com wrote:
> >> From: Ming Lei <tom.leiming@gmail.com>
> >>
> >> This patch removes the 'cpu_id' parameter of the cpu_idle
> >> trace point, based on the ideas below:
> >>
> >> - the cpu_id which is passed to trace point is always the current
> >> cpu
> > Are you sure this will always be true?
>
> It is sure at least now, the only place to pass 'dev->cpu' is inside
> cpuidle_idle_call,
It was known that cpu_id is always the current cpu with current
implementation when this got introduced.
But the perf events API must not change back and forth for userspace
compatibility. Therefore the cpu_id was added in case
that future implementations want to pass info where the current cpu
is not the cpu which is sent to the sleep state.

> smp_processor_id() can't be used safely in preemptible context.
I expect the only side effect that could happen is that if smp_process_id
is interrupted you get the wrong core id on a cpu idle trace event.
This only happens if cpuidle is not used and even then should happen
very rarely, nothing to worry for a debug tool like that.
And it should get fixed if these idle functions get fully integrated into
cpuidle at some point of time.

Thomas