Up: SGI performer Frequently Asked Questions (FAQ)
Next: -23- How do I make GL calls from within a IRIS Performer program?
Previous: -21- Binary Compatibility on different releases
Subject:   -22- Guaranteeing Real Time performance
Date: 8 Apr 94 00:00:01 EST

  - Run as root so that Performer can lock your process to
    a particular CPU (if using pfuLockCPU) and give it a
    non-degrading priority.

  - Be sure to kill any clocks, gr_osview, or other tools that may
    wake up and draw themselves, so as to avoid graphics context
    switches.

  - When multiprocessing, make sure the executable is on a local file
    system.

  - There is a new real-time kernel directive for Onyx/Challenge
    processors for directing system interrupts away from real-time
    processors.

    In the file /var/sysgen/system/irix.sm, Search for NOINTR and
    below the comment explaining NOINTR, add the line

	NOINTR: 1 2 3 4 ..etc..

    where you list the CPUs that you intend to do real-time
    processing on.  Then reboot.  This can be done on 5.2+
    Onyx/Challenge systems but wasn't covered in the base IRIX5
    documentation.  Be sure -not- to specify CPU 0, as you will want
    it to be available for necessary interrupts.

  - With IRIS GL, real-time performance can only be guaranteed if you
    have one window rendering at a time, per pipe.

    If more than one application is rendering to the same hardware
    pipeline, the (hardware) graphics pipe has to switch back & forth
    between each GL window's context several hundred times per
    second.  This is horribly inefficient and the graphics pipe will
    instruct the "other" process to block while its context is
    switched out.

  - Since having other (cpu-based) applications running can also
    effect real-time performance, it's sometimes desirable to
    minimize the number of daemons and other processes.  If you have
    problems achieving real-time behavior, try the pfuLockCPU in
    libpfutil.  You might also try turning off the desktop support
    and other daemons that are not crucial to your application,
    e.g.:

       % touch ~/.disableDesktop
       or
       % mkdir ~/.desktop-<machinename>
       % touch ~/.desktop-<machinename>/nodesktop

    and for total removal do:

       % chkconfig desktop off
       % chkconfig objectserver off
       % chkconfig directoryserver off
       % chkconfig fontserver off
       % chkconfig soundscheme off

Up: SGI performer Frequently Asked Questions (FAQ)
Next: -23- How do I make GL calls from within a IRIS Performer program?
Previous: -21- Binary Compatibility on different releases