Lines Matching refs:prof

231 profile_probe(profile_probe_t *prof, hrtime_t late)  in profile_probe()  argument
257 dtrace_probe(prof->prof_id, pc, upc, late, 0, 0); in profile_probe()
265 profile_probe_t *prof = pcpu->profc_probe; in profile_fire() local
270 profile_probe(prof, late); in profile_fire()
279 profile_probe_t *prof = arg; in profile_tick() local
281 profile_probe(prof, 0); in profile_tick()
282 prof->prof_expected += prof->prof_interval; in profile_tick()
283 callout_schedule_sbt(&prof->prof_cyclic, in profile_tick()
284 prof->prof_expected, 0, C_DIRECT_EXEC | C_ABSOLUTE); in profile_tick()
290 profile_probe_t *prof; in profile_create() local
304 prof = kmem_zalloc(sizeof (profile_probe_t), KM_SLEEP); in profile_create()
305 (void) strcpy(prof->prof_name, name); in profile_create()
307 prof->prof_interval = interval; in profile_create()
308 prof->prof_cyclic = CYCLIC_NONE; in profile_create()
310 prof->prof_interval = nsec_to_sbt(interval); in profile_create()
311 callout_init(&prof->prof_cyclic, 1); in profile_create()
313 prof->prof_kind = kind; in profile_create()
314 prof->prof_id = dtrace_probe_create(profile_id, in profile_create()
316 profile_aframes, prof); in profile_create()
455 profile_probe_t *prof = parg; in profile_destroy() local
458 ASSERT(prof->prof_cyclic == CYCLIC_NONE); in profile_destroy()
460 ASSERT(!callout_active(&prof->prof_cyclic) && prof->prof_pcpus == NULL); in profile_destroy()
462 kmem_free(prof, sizeof (profile_probe_t)); in profile_destroy()
473 profile_probe_t *prof = arg; in profile_online() local
477 pcpu->profc_probe = prof; in profile_online()
482 when->cyt_interval = prof->prof_interval; in profile_online()
503 profile_probe_t *prof = parg; in profile_enable() local
508 ASSERT(prof->prof_interval != 0); in profile_enable()
511 if (prof->prof_kind == PROF_TICK) { in profile_enable()
513 hdlr.cyh_arg = prof; in profile_enable()
515 when.cyt_interval = prof->prof_interval; in profile_enable()
518 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
521 omni.cyo_arg = prof; in profile_enable()
524 if (prof->prof_kind == PROF_TICK) { in profile_enable()
525 prof->prof_cyclic = cyclic_add(&hdlr, &when); in profile_enable()
527 prof->prof_cyclic = cyclic_add_omni(&omni); in profile_enable()
535 profile_probe_t *prof = parg; in profile_disable() local
537 ASSERT(prof->prof_cyclic != CYCLIC_NONE); in profile_disable()
540 cyclic_remove(prof->prof_cyclic); in profile_disable()
541 prof->prof_cyclic = CYCLIC_NONE; in profile_disable()
547 profile_enable_omni(profile_probe_t *prof) in profile_enable_omni() argument
552 prof->prof_pcpus = kmem_zalloc((mp_maxid + 1) * sizeof(pcpu), KM_SLEEP); in profile_enable_omni()
555 prof->prof_pcpus[cpu] = pcpu; in profile_enable_omni()
556 pcpu->profc_probe = prof; in profile_enable_omni()
557 pcpu->profc_expected = sbinuptime() + prof->prof_interval; in profile_enable_omni()
558 pcpu->profc_interval = prof->prof_interval; in profile_enable_omni()
567 profile_disable_omni(profile_probe_t *prof) in profile_disable_omni() argument
572 ASSERT(prof->prof_pcpus != NULL); in profile_disable_omni()
574 pcpu = prof->prof_pcpus[cpu]; in profile_disable_omni()
575 ASSERT(pcpu->profc_probe == prof); in profile_disable_omni()
581 kmem_free(prof->prof_pcpus, (mp_maxid + 1) * sizeof(pcpu)); in profile_disable_omni()
582 prof->prof_pcpus = NULL; in profile_disable_omni()
589 profile_probe_t *prof = parg; in profile_enable() local
591 if (prof->prof_kind == PROF_TICK) { in profile_enable()
592 prof->prof_expected = sbinuptime() + prof->prof_interval; in profile_enable()
593 callout_reset_sbt(&prof->prof_cyclic, in profile_enable()
594 prof->prof_expected, 0, profile_tick, prof, in profile_enable()
597 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
598 profile_enable_omni(prof); in profile_enable()
606 profile_probe_t *prof = parg; in profile_disable() local
608 if (prof->prof_kind == PROF_TICK) { in profile_disable()
609 ASSERT(callout_active(&prof->prof_cyclic)); in profile_disable()
610 callout_stop(&prof->prof_cyclic); in profile_disable()
611 callout_drain(&prof->prof_cyclic); in profile_disable()
613 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_disable()
614 profile_disable_omni(prof); in profile_disable()