PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dtrace SunOS 5.10 T2000



f0rtex
05-04-2007, 15:35
Hallo Leute

Ich habe ein Programm, wleches ich mittels DTrace-Scipts analysiere.



#!/usr/sbin/dtrace -s

sched:::off-cpu
/curlwpsinfo->pr_state == SSLEEP && execname == "checkqueue"/
{
/***
* We're sleeping. Trach our sobj type.
***/
self->sobj = curlwpsinfo->pr_stype;
self->bedtime = timestamp;
}

sched:::off-cpu
/curlwpsinfo->pr_state == SRUN && execname == "checkqueue"/
{
self->bedtime = timestamp;
}

sched:::on-cpu
/self->bedtime && !self->sobj && execname == "checkqueue"/
{
@["preempted"] = quantize(timestamp - self->bedtime);
self->bedtime = 0;
}

sched:::on-cpu
/self->sobj && execname == "checkqueue"/
{
@[self->sobj == SOBJ_MUTEX ? "kernel-level lock" :
self->sobj == SOBJ_RWLOCK ? "rwlock" :
self->sobj == SOBJ_CV ? "condition variable" :
self->sobj == SOBJ_SEMA ? "semaphore" :
self->sobj == SOBJ_USER ? "user-level lock" :
self->sobj == SOBJ_USER_PI ? "user-level prio-inheriting lock" :
self->sobj == SOBJ_SHUTTLE ? "shuttle" : "unknown"] =
quantize(timestamp - self->bedtime);

self->sobj = 0;
self->bedtime = 0;
}


Wenn ich das Script starte, bekomme ich folgende Fehlermeldung



./whyProcSleep.d
dtrace: script './whyProcSleep.d' matched 6 probes
dtrace: error on enabled probe ID 1 (ID 470: sched:unix:resume:off-cpu): invalid address (0x0) in action #1 at DIF offset 56
^C

kernel-level lock
value ------------- Distribution ------------- count
16384 | 0
32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
65536 |@@@@@@@@@@@ 2
131072 | 0

condition variable
value ------------- Distribution ------------- count
16384 | 0
32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 166
65536 |@ 6
131072 | 0
262144 | 1
524288 | 0
1048576 | 1
2097152 | 0
4194304 |@@@ 14
8388608 | 0

preempted
value ------------- Distribution ------------- count
8192 | 0
16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11538
32768 |@@@@@@@@@@@@@ 5379
65536 | 6
131072 | 1
262144 | 0


Das Script scheint jedoch zu laufen, da es mir eine Zusammenfassung generiert.

Was jemand, was ich an der Probe 1 falsch gemacht habe?

Danke für die Hilfe
f0rtex