Alexander Kolbasov wrote:
>> The PowerTop prototype is getting to be in pretty good shape. It's
>> tracking wake-ups from all the relevant events:
>>
>> - timeouts / callouts
>> - cyclic firings (including clock)
>> - Interrupts
>>
>
> That's really cool!
>
> A couple of comments:
>
> usr/src/uts/common/io/cpudrv.c:
>
>
> 540 DTRACE_PROBE3(cpu_change_speed,
> 541 processorid_t, cpudsp->cpu_id,
> 542 uint_t, cpupm->cur_spd ? cpupm->cur_spd->speed : 0,
> 543 uint_t, new_spd->speed);
>
> I suggest rewriting this probe as
>
> DTRACE_PROBE3(cpu_change_speed,
> cpudrv_devstate_t *, cpudsp,
> cpudrv_pm_t *, cpupm,
> cpudrv_pm_spd_t *, new_spd)
>
> This should reduce disabled probe effect because all these dereferences and
> conditionals are actually executed even when the probe is disabled.
>
Agreed. Thanks. This will require additional dereferencing on behalf of
the client, but eventually that would be hidden behind translators anyway.
> usr/src/uts/i86pc/os/mp_pc.c:
>
> 246 void
> 247 mach_cpu_idle(void)
> 248 {
> 249 DTRACE_PROBE1(cstate_transition, uint_t, 1);
> 250
> 251 tlb_going_idle();
> 252 i86_halt();
> 253 tlb_service();
> 254
> 255 DTRACE_PROBE1(cstate_transition, uint_t, 0);
> 256 }
>
> This is a bit odd - why do you need to pass extra 1/0 argument instead of
> using different names for in/out transitions?
>
The 1/0 is the c-state that we are transitioning to, since we only
support C1 currently, it's a bit hard coded...but that will probably
change when we have support for deeper c-states.
Thanks
-Eric
> - akolb
>
>