UNM home page SSL home page
Interrupt Latency Timer
Using Myrinet



Introduction

      ITimer will time how long it takes for an interrupt to get serviced, from the point it is first generated to the point where execution reaches the interrupt handler routine. A myrinet card is used to generate the interrupt, so one is obviously required to use this tool.

      The concept is simple: the Myrinet Control Program (MCP) running on the NIC starts a timer and immediately generates an interrupt. When the interrupt handler routine in the driver is called, it tells the MCP that it got the interrupt through shared memory on the card. The MCP then stops the timer and reports the latency back to the driver and the user.

Usage

      The tool is currently only available for x86 and compatible machines running Linux. The first step is to install a Myrinet card into a PCI slot on your machine. Then, download the two files below. The first is the driver module and the second is a simple script to perform a few routine installation tasks.
      Place these files in the same directory. You will probably have to change the permissions of the install script to make it executeable, so execute the command "chmod 700 ITIMER_INSTALL". The module must be inserted by root, so do an "su" if you're not already root. Now, simply type "./ITIMER_INSTALL". The interrupt timing routine is executed as soon as the MCP is loaded, so you should see the results immediately. Just repeat the last command ("./ITIMER_INSTALL") to run it again. If you want to remove the module when you're finished, type "/sbin/rmmod itimer" (while still root).

Future Plans

      A fully functional
GM implementation, modified and developed by Edgar León, was used as a basis for construction, so a lot of extra functionality is still present. Future plans include cutting out as much unnecessary functionality as possible, making it a much simpler and smaller tool that only times interrupt latencies. During this downsizing, try to remove most or all of the machine dependant code, so the tool can easily be run on all architectures.

Results




Riley Wilson