#!/usr/sbin/dtrace -Cs #pragma D option quiet int exp_running_total; int exp_per_sec; ts_preempt:entry / ((tsproc_t *)args[0]->t_cldata)->ts_timeleft == 0 / { self->procp = (struct proc *)args[0]->t_procp; self->pid = self->procp->p_pidp->pid_id; self->lwpid = args[0]->t_tid; exp_cnt++; @x[self->pid, self->lwpid] = count(); } tick-1sec { printf("Exp count: %d\n",exp_cnt); exp_running_total += exp_cnt; } END { printf("TS time quantum expired...\n"); printf("%-8s %-8s %-8s\n","PID","LWPID","CNT"); printa("%-8d %-8d %-8@d\n",@x); }