Rob Jenkins (robj++at++sgi.com)
Thu, 19 Nov 1998 02:50:19 -0800
There are some general tips in the FAQs, I'm not going to duplicate them
all here.
OS/patches:
In my experience it's not worth spending too much time diagnosing a
realtime problem if you don't have fairly recent OS or at least recent
patches. Things change with each patch/OS release, overall you're more
likely to fix problems than make new ones.
Refs
The best refs for understanding Irix real time features/tools are the
Insight books 'REACT Real-time Programmer's Guide', 'The IRIX System
Administrators Guide', and 'WindView for IRIX Programmer's Guide'. From
Irix 6.5 onwards there is the tool IrixView to replace Windview which
has a guide too.
Tools
par -rQQ will show CPU sceduling activity. Either let it run, piped to a
file ( and perhaps filtered with grep to prune the output ) or, if you
problem has a periodic cycle, say every second then run par -rQQt2 say
to run it for 2 seconds. Pipe the output to a file, what you're looking
for is any performer processes being kicked off a CPU by system things,
look for 'preempt' and 'preempt short' in the process summary, that
means a process got kicked off before it's time slice was up ( bad ).
Windview/IrixView give a great graphical view of system scheduling so
easier to spot where Irix is yanking your performer processes.
Those tools will help diagnose what is causing a glitch so help target
what to optimise, there are general things you can do first though:
Assuming that you do the things described in the FAQs ( run as root,
locked processes to CPUs, isolate CPUs, set NOINTR directive on pf CPUs,
kill xclocks etc ):
setenv PFNFYLEVEL 6 before running the application. Then look at the
'Performer Process State' type messages to trace which processes run on
which CPUs and see that the multiprocessing control functions worked OK.
the mpadmin tool will show you the state of your CPUs with the -s
option.
There are likely to be system functions you can chkconfig off. This
varies, depending on what the machine has to do, if it's dedicated to
running your app, off the network then there will be many things you can
turn off. Note just doing chkconfig network off will result in several
other things not starting. The obvious things to turn off are mentioned
in the FAQs, things like desktop, objectserver , directoryserver etc.
The best way to work out what else to do is ( first save the output of
chkconfig so you can get back to the original state if you need to :-) )
then for each thing that is on look at the man page for chkconfig or for
the daemon itself for a description of what it does, eg man mediad, to
see if it makes sense to turn it off. I went through this on an Onyx2
iR, deskside recently, destined to run standalone doing nothing but a pf
app, I reckoned the following things could be turned off, it hasn't been
tested yet and you list could be very different but it shows the kind of
scope you might have:
autofs automount bsdlpr cached cachefs cpumeter desktop lockd lp mediad
mmscd network networker nfs ns_fasttrack pcnfsd routed sdpd sendmail
snetd soundscheme webface
Some of those would probably go off just by turning of the network
anyway.
So, in summary. The general steps are:
Do the stuff in the FAQs
get up to date patches
turn off extra chkconfig flags that seem sensible from man page
descriptions
If you still have a problem, try to narrow it down with par,
Windview/IrixView. The REACT Prog Guide is great for picking up the
concepts of what Irix does and will help in understanding the problem.
Cheers
Rob
-- ________________________________________________________________ Rob Jenkins Silicon Graphics mailto:robj++at++sgi.com
This archive was generated by hypermail 2.0b2 on Thu Nov 19 1998 - 03:35:43 PST