Lines Matching +full:slew +full:- +full:rate
62 * optimizes away tail-calls -- so the following frames are optimized away:
68 * frame cannot be tail-call eliminated, yielding four frames in this case.
71 * provider should ideally figure this out on-the-fly by hitting one of its own
92 #define PROF_PREFIX_PROFILE "profile-"
93 #define PROF_PREFIX_TICK "tick-"
128 * system resources by creating a slew of profile probes). At mod load time,
129 * this gets its value from PROFILE_MAX_DEFAULT or profile-max-probes if it's
140 profile_probe_t *prof = pcpu->profc_probe; in profile_fire()
143 late = dtrace_gethrtime() - pcpu->profc_expected; in profile_fire()
144 pcpu->profc_expected += pcpu->profc_interval; in profile_fire()
146 dtrace_probe(prof->prof_id, CPU->cpu_profile_pc, in profile_fire()
147 CPU->cpu_profile_upc, late, 0, 0); in profile_fire()
155 dtrace_probe(prof->prof_id, CPU->cpu_profile_pc, in profile_tick()
156 CPU->cpu_profile_upc, 0, 0, 0); in profile_tick()
181 (void) strcpy(prof->prof_name, name); in profile_create()
182 prof->prof_interval = interval; in profile_create()
183 prof->prof_cyclic = CYCLIC_NONE; in profile_create()
184 prof->prof_kind = kind; in profile_create()
185 prof->prof_id = dtrace_probe_create(profile_id, in profile_create()
193 int i, j, rate, kind; in profile_provide() local
235 if ((rate = profile_rates[i]) == 0) in profile_provide()
239 PROF_PREFIX_PROFILE, rate); in profile_provide()
240 profile_create(NANOSEC / rate, n, PROF_PROFILE); in profile_provide()
244 if ((rate = profile_ticks[i]) == 0) in profile_provide()
248 PROF_PREFIX_TICK, rate); in profile_provide()
249 profile_create(NANOSEC / rate, n, PROF_TICK); in profile_provide()
255 name = desc->dtpd_name; in profile_provide()
269 j = strlen(name) - len; in profile_provide()
274 for (j = strlen(name); j >= len; j--) { in profile_provide()
285 for (; j >= len; j--) { in profile_provide()
289 val += (name[j] - '0') * mult; in profile_provide()
297 * Look-up the suffix to determine the multiplier. in profile_provide()
311 * The default is frequency-per-second. in profile_provide()
327 ASSERT(prof->prof_cyclic == CYCLIC_NONE); in profile_destroy()
342 pcpu->profc_probe = prof; in profile_online()
344 hdlr->cyh_func = profile_fire; in profile_online()
345 hdlr->cyh_arg = pcpu; in profile_online()
346 hdlr->cyh_level = CY_HIGH_LEVEL; in profile_online()
348 when->cyt_interval = prof->prof_interval; in profile_online()
349 when->cyt_when = dtrace_gethrtime() + when->cyt_interval; in profile_online()
351 pcpu->profc_expected = when->cyt_when; in profile_online()
352 pcpu->profc_interval = when->cyt_interval; in profile_online()
361 ASSERT(pcpu->profc_probe == arg); in profile_offline()
374 ASSERT(prof->prof_interval != 0); in profile_enable()
377 if (prof->prof_kind == PROF_TICK) { in profile_enable()
382 when.cyt_interval = prof->prof_interval; in profile_enable()
385 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
391 if (prof->prof_kind == PROF_TICK) { in profile_enable()
392 prof->prof_cyclic = cyclic_add(&hdlr, &when); in profile_enable()
394 prof->prof_cyclic = cyclic_add_omni(&omni); in profile_enable()
405 ASSERT(prof->prof_cyclic != CYCLIC_NONE); in profile_disable()
408 cyclic_remove(prof->prof_cyclic); in profile_disable()
409 prof->prof_cyclic = CYCLIC_NONE; in profile_disable()
419 if (CPU->cpu_profile_pc != 0) { in profile_mode()
425 if (prof->prof_kind == PROF_TICK) { in profile_mode()
428 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_mode()
478 "profile-max-probes", PROFILE_MAX_DEFAULT); in profile_attach()