Lines Matching refs:prof

232 profile_probe(profile_probe_t *prof, hrtime_t late)  in profile_probe()  argument
258 dtrace_probe(prof->prof_id, pc, upc, late, 0, 0); in profile_probe()
266 profile_probe_t *prof = pcpu->profc_probe; in profile_fire() local
271 profile_probe(prof, late); in profile_fire()
280 profile_probe_t *prof = arg; in profile_tick() local
282 profile_probe(prof, 0); in profile_tick()
283 prof->prof_expected += prof->prof_interval; in profile_tick()
284 callout_schedule_sbt(&prof->prof_cyclic, in profile_tick()
285 prof->prof_expected, 0, C_DIRECT_EXEC | C_ABSOLUTE); in profile_tick()
291 profile_probe_t *prof; in profile_create() local
305 prof = kmem_zalloc(sizeof (profile_probe_t), KM_SLEEP); in profile_create()
306 (void) strcpy(prof->prof_name, name); in profile_create()
308 prof->prof_interval = interval; in profile_create()
309 prof->prof_cyclic = CYCLIC_NONE; in profile_create()
311 prof->prof_interval = nsec_to_sbt(interval); in profile_create()
312 callout_init(&prof->prof_cyclic, 1); in profile_create()
314 prof->prof_kind = kind; in profile_create()
315 prof->prof_id = dtrace_probe_create(profile_id, in profile_create()
317 profile_aframes, prof); in profile_create()
456 profile_probe_t *prof = parg; in profile_destroy() local
459 ASSERT(prof->prof_cyclic == CYCLIC_NONE); in profile_destroy()
461 ASSERT(!callout_active(&prof->prof_cyclic) && prof->prof_pcpus == NULL); in profile_destroy()
463 kmem_free(prof, sizeof (profile_probe_t)); in profile_destroy()
474 profile_probe_t *prof = arg; in profile_online() local
478 pcpu->profc_probe = prof; in profile_online()
483 when->cyt_interval = prof->prof_interval; in profile_online()
504 profile_probe_t *prof = parg; in profile_enable() local
509 ASSERT(prof->prof_interval != 0); in profile_enable()
512 if (prof->prof_kind == PROF_TICK) { in profile_enable()
514 hdlr.cyh_arg = prof; in profile_enable()
516 when.cyt_interval = prof->prof_interval; in profile_enable()
519 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
522 omni.cyo_arg = prof; in profile_enable()
525 if (prof->prof_kind == PROF_TICK) { in profile_enable()
526 prof->prof_cyclic = cyclic_add(&hdlr, &when); in profile_enable()
528 prof->prof_cyclic = cyclic_add_omni(&omni); in profile_enable()
536 profile_probe_t *prof = parg; in profile_disable() local
538 ASSERT(prof->prof_cyclic != CYCLIC_NONE); in profile_disable()
541 cyclic_remove(prof->prof_cyclic); in profile_disable()
542 prof->prof_cyclic = CYCLIC_NONE; in profile_disable()
548 profile_enable_omni(profile_probe_t *prof) in profile_enable_omni() argument
553 prof->prof_pcpus = kmem_zalloc((mp_maxid + 1) * sizeof(pcpu), KM_SLEEP); in profile_enable_omni()
556 prof->prof_pcpus[cpu] = pcpu; in profile_enable_omni()
557 pcpu->profc_probe = prof; in profile_enable_omni()
558 pcpu->profc_expected = sbinuptime() + prof->prof_interval; in profile_enable_omni()
559 pcpu->profc_interval = prof->prof_interval; in profile_enable_omni()
568 profile_disable_omni(profile_probe_t *prof) in profile_disable_omni() argument
573 ASSERT(prof->prof_pcpus != NULL); in profile_disable_omni()
575 pcpu = prof->prof_pcpus[cpu]; in profile_disable_omni()
576 ASSERT(pcpu->profc_probe == prof); in profile_disable_omni()
582 kmem_free(prof->prof_pcpus, (mp_maxid + 1) * sizeof(pcpu)); in profile_disable_omni()
583 prof->prof_pcpus = NULL; in profile_disable_omni()
590 profile_probe_t *prof = parg; in profile_enable() local
592 if (prof->prof_kind == PROF_TICK) { in profile_enable()
593 prof->prof_expected = sbinuptime() + prof->prof_interval; in profile_enable()
594 callout_reset_sbt(&prof->prof_cyclic, in profile_enable()
595 prof->prof_expected, 0, profile_tick, prof, in profile_enable()
598 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
599 profile_enable_omni(prof); in profile_enable()
607 profile_probe_t *prof = parg; in profile_disable() local
609 if (prof->prof_kind == PROF_TICK) { in profile_disable()
610 ASSERT(callout_active(&prof->prof_cyclic)); in profile_disable()
611 callout_stop(&prof->prof_cyclic); in profile_disable()
612 callout_drain(&prof->prof_cyclic); in profile_disable()
614 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_disable()
615 profile_disable_omni(prof); in profile_disable()