Subject: | |
From: | |
Reply To: | |
Date: | Fri, 12 Jan 2001 11:22:06 -0800 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Re:
> Hello listmembers. Is there a way to determine
> EXACTLY which processes within an application are
> causing excessive CM/NM switching ? As shown in
> the CPU Detail screen of GlancePlus/iX. I'm doing
I don't know, but perhaps the Glance "Process detail" (?)
screen might show the switch rate...if so, you could
look at a few of the most active processes to see their
switch rates.
<plug>
SHOT won't show the switch *rate*, but it can show the
switch depth:
:shot
SHOT: ADM +SWDEPTH
SHOT: ALL
SHOT @ FRI, JAN 12, 2001, 11:07 AM
...
? PIN CPU Process Name Pri Q Delta % Ic S Wait State
- --- ------ -------------------------- --- - ----- --- -- - ------------------
1 s 10 PROGEN.PUB.SYS 13 A Nn PROGEN_GLOBAL_PORT
...
61 332 CI.PUB.SYS 202 D Nn 2 SON, FATHER
62 288 JSMAIN.PUB.SYS 152 B Nn MsgPort#-32785
The "S" column above shows that CI.PUB.SYS has two outstanding switches
(from NM to CM, and then CM to NM). A stack trace of process 61 would
confirm this.
</plug>
Once you zero in on a process, we have some free Debug/iX macros that
can be of use (available at
http://www.allegro.com/software/hp3000/allegro.html)
(look for "SHOWSW")
Example:
:debug
$60 ($85) nmdebug > use showsw.macro
...
$61 ($85) nmdebug > show_sw
added: NM [1] SYS a.00e4fb4c SWT
Installed CM -> NM switch watcher.
added: NM [2] SYS a.00e62f24 switch_to_cm
Installed NM -> CM switch watcher.
added: NM [3] SYS a.0026ae08 terminate_process
$62 ($85) nmdebug > c
Now that I have "started" show_sw, let's do a CI command...
:showtime
n>C ?exec_cmd+$8 : NLGETLANG+$168
C>n switch marker : NLGETLANG+%37 (4)... NMFINDJCW+%36
FRI, JAN 12, 2001, 11:10 AM
:
Note that the CI switched from NM to CM ("n>C") at NLGETLANG+$168
and from CM to NM at NLGETLANG+%37 (which was approximately called from
NMFINDJCW+%36, I think).
Stan Sieler [log in to unmask]
www.allegro.com/sieler/wanted/index.html www.allegro.com/sieler
|
|
|