Hi Aubrey,
Thanks for your reminder.
After reading relative code, I have some questions about DTrace
prober trigger point in deep C path. On SPARC and non-deep-C idle path,
DTrace probers have been placed as closer as possible to the point that
CPU enters into/exits from hardware idle state. On deep C state path,
the prober trigger points have been pulled out a little. I heard there were
some discussions about prober trigger points but I missed those
discussions. Could anybody give some hints about those discussions?
As you have mentioned, patchset for CPU idle notifcation will
cause visible behaviour changes. Actually, there are two visible changes.
First, in current implementation, if CPU is waken up after
checking "if (using_hpet_timer == B_FALSE)", the DTrace probers will
be triggered. With new patchset, DTrace probers will only be triggered
if CPU id waken up after checking
"if (*mcpu_mwait == MWAIT_HALTED)"
or
"if (*mcpu_mwait == MWAIT_WAKEUP_IPI)".
That means Dtrace probers may be triggered less times with new patchset.
Second, with new patchset, Dtrace prober will be triggered later
on entering side and earlier on exiting side. On entering side, the difference
is small, about ten machine instructions. On exiting side, the difference is
bigger because it may need to reprogram the LAPIC timer. I have no
concrete idea about the real difference on exiting side, do you have any
data about that?
I'm not familiar with powertop implementation, could anybody give
us some estimation about the impacts that above changes will have on
powertop?
Thanks!
Li, Aubrey <> wrote:
> Liu, Jiang wrote:
>
>> 5) Removed cpu_dtrace_idle_probe() and moved dtrace probe for
>> idle event into CPU idle framework as built-in callback.
>
> The behavior is changed here. Previously we did the idle time to be
> all the time the CPU was not executing threads, and now it became
> just the time CPU was in a C-state. PowerTOP report probably has a
> noticeable difference. Because previously PowerTop would report time
> spent doing C-state setup+cleanup as part of idle time (not executing
> other threads).
>
> Any thoughts?
>
> Thanks,
> -Aubrey
Liu Jiang (Gerry)
OpenSolaris, OTC, SSG, Intel