From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <47BF446E.50300@domain.hid> Date: Fri, 22 Feb 2008 22:53:50 +0100 From: Wolfgang Grandegger MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010905010908040101070509" Subject: [Xenomai-help] gpioirqbench: measuring external interrupt latencies List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai-help This is a multi-part message in MIME format. --------------010905010908040101070509 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hello, I'm proud to announce "gpioirqbench", a benchmark tool to measure external interrupt latencies. It is derived from Jan's irqbench [1] for the PC. Instead of using the serial or parallel port, it uses GPIO pins on embedded systems. It measures the time between the generation of an interrupt triggered by a GPIO pin and the reply by either the interrupt service routine, a kernel-space task or a user-space task. As reply, another GPIO pin will be toggled. The setup consists of two systems, the log host and the test target. The log host triggers the interrupt on the test target and measures the latency. This benchmark is primarily for Xenomai/RTDM, but it can also be used for plain Linux or even Linux-rt (with the real-time preemption patch). I have done a series of latency measurements with the embedded PowerPC evaluation board Icecube-Freescale-MPC5200 and Sequoia-AMCC-440EPx. The results are listed below: 1) Board: Motorola MPC5200 (IceCube) CPU: MPC5200 v1.0, Core v1.1 at 396 MHz Bus 132 MHz, IPB 66 MHz, PCI 33 MHz OS: DENX Linux 2.6.24.2 "arch/powerpc" and Xenomai 2.4.2. with ELDK 4.2 and root filesystem via NFS Min Max Xenomai user space task (-t0): 13us 119us Xenomai kernel space task (-t1): 7us 82us Xenomai interrupt handler (-t2): 2us 47us Plain Linux user space task : 31us 5749us cyclictest -t1 -p80 -n -i1000 : 11us 89us latency -p1000 : 8us 92us 2) Board: Sequoia - AMCC PPC440EPx Evaluation Board, Rev. F, PCI=33 MHz CPU: AMCC PowerPC 440EPx Rev. A at 528 MHz (PLB=132, OPB=66, EBC=66 MHz) OS: DENX Linux 2.6.24.2 "arch/ppc" and Xenomai 2.4.2. with Ubuntu 7.04 on a USB-Disk and with a ATI Radeon 9200 card Min Max Xenomai user space task (-t0): 5us 74us Xenomai kernel space task (-t1): 4us 49us Xenomai interrupt handler (-t2): 2us 29us Plain Linux user space task : 4us 1291us As non-rt load I used "while ls; do ls /bin; done" in one and "while ./hackbench 10; do ./calibrator 400 32M cali; sleep 30; done" in a second telnet session. The tests ran for 1.5 hours, each. We will show the Sequoia board in action on the Embedded Workd fair in Nuremberg next week as Xenomai demo with an Oscilloscope connected to visualize the interrupt latencies measured with "gpioirqbench". If you are around, feel free to visit us at Hall 12, Booth 12-246. I have attached the "gpioirqbench" distribution. It can be adapted to other embedded system with little effort. For further information, check the README inside. Wolfgang. [1] http://www.rts.uni-hannover.de/xenomai/lxr/source/doc/txt/irqbench.txt --------------010905010908040101070509 Content-Type: application/x-bzip; name="gpioirqbench-0.9.0.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="gpioirqbench-0.9.0.tar.bz2" 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 Pw/FrXCqEKFT/8XckU4UJAtHD02A --------------010905010908040101070509--