Lines Matching refs:prof

230 profile_probe(profile_probe_t *prof, hrtime_t late)  in profile_probe()  argument
256 dtrace_probe(prof->prof_id, pc, upc, late, 0, 0); in profile_probe()
264 profile_probe_t *prof = pcpu->profc_probe; in profile_fire() local
269 profile_probe(prof, late); in profile_fire()
278 profile_probe_t *prof = arg; in profile_tick() local
280 profile_probe(prof, 0); in profile_tick()
281 prof->prof_expected += prof->prof_interval; in profile_tick()
282 callout_schedule_sbt(&prof->prof_cyclic, in profile_tick()
283 prof->prof_expected, 0, C_DIRECT_EXEC | C_ABSOLUTE); in profile_tick()
289 profile_probe_t *prof; in profile_create() local
303 prof = kmem_zalloc(sizeof (profile_probe_t), KM_SLEEP); in profile_create()
305 prof->prof_interval = interval; in profile_create()
306 prof->prof_cyclic = CYCLIC_NONE; in profile_create()
308 prof->prof_interval = nsec_to_sbt(interval); in profile_create()
309 callout_init(&prof->prof_cyclic, 1); in profile_create()
311 prof->prof_kind = kind; in profile_create()
312 prof->prof_id = dtrace_probe_create(profile_id, in profile_create()
314 profile_aframes, prof); in profile_create()
453 profile_probe_t *prof = parg; in profile_destroy() local
456 ASSERT(prof->prof_cyclic == CYCLIC_NONE); in profile_destroy()
458 ASSERT(!callout_active(&prof->prof_cyclic) && prof->prof_pcpus == NULL); in profile_destroy()
460 kmem_free(prof, sizeof (profile_probe_t)); in profile_destroy()
471 profile_probe_t *prof = arg; in profile_online() local
475 pcpu->profc_probe = prof; in profile_online()
480 when->cyt_interval = prof->prof_interval; in profile_online()
501 profile_probe_t *prof = parg; in profile_enable() local
506 ASSERT(prof->prof_interval != 0); in profile_enable()
509 if (prof->prof_kind == PROF_TICK) { in profile_enable()
511 hdlr.cyh_arg = prof; in profile_enable()
513 when.cyt_interval = prof->prof_interval; in profile_enable()
516 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
519 omni.cyo_arg = prof; in profile_enable()
522 if (prof->prof_kind == PROF_TICK) { in profile_enable()
523 prof->prof_cyclic = cyclic_add(&hdlr, &when); in profile_enable()
525 prof->prof_cyclic = cyclic_add_omni(&omni); in profile_enable()
533 profile_probe_t *prof = parg; in profile_disable() local
535 ASSERT(prof->prof_cyclic != CYCLIC_NONE); in profile_disable()
538 cyclic_remove(prof->prof_cyclic); in profile_disable()
539 prof->prof_cyclic = CYCLIC_NONE; in profile_disable()
545 profile_enable_omni(profile_probe_t *prof) in profile_enable_omni() argument
550 prof->prof_pcpus = kmem_zalloc((mp_maxid + 1) * sizeof(pcpu), KM_SLEEP); in profile_enable_omni()
553 prof->prof_pcpus[cpu] = pcpu; in profile_enable_omni()
554 pcpu->profc_probe = prof; in profile_enable_omni()
555 pcpu->profc_expected = sbinuptime() + prof->prof_interval; in profile_enable_omni()
556 pcpu->profc_interval = prof->prof_interval; in profile_enable_omni()
565 profile_disable_omni(profile_probe_t *prof) in profile_disable_omni() argument
570 ASSERT(prof->prof_pcpus != NULL); in profile_disable_omni()
572 pcpu = prof->prof_pcpus[cpu]; in profile_disable_omni()
573 ASSERT(pcpu->profc_probe == prof); in profile_disable_omni()
579 kmem_free(prof->prof_pcpus, (mp_maxid + 1) * sizeof(pcpu)); in profile_disable_omni()
580 prof->prof_pcpus = NULL; in profile_disable_omni()
587 profile_probe_t *prof = parg; in profile_enable() local
589 if (prof->prof_kind == PROF_TICK) { in profile_enable()
590 prof->prof_expected = sbinuptime() + prof->prof_interval; in profile_enable()
591 callout_reset_sbt(&prof->prof_cyclic, in profile_enable()
592 prof->prof_expected, 0, profile_tick, prof, in profile_enable()
595 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_enable()
596 profile_enable_omni(prof); in profile_enable()
604 profile_probe_t *prof = parg; in profile_disable() local
606 if (prof->prof_kind == PROF_TICK) { in profile_disable()
607 ASSERT(callout_active(&prof->prof_cyclic)); in profile_disable()
608 callout_stop(&prof->prof_cyclic); in profile_disable()
609 callout_drain(&prof->prof_cyclic); in profile_disable()
611 ASSERT(prof->prof_kind == PROF_PROFILE); in profile_disable()
612 profile_disable_omni(prof); in profile_disable()