Jan Kiszka wrote: > Wolfgang Grandegger wrote: >> Jan Kiszka wrote: >>> Wolfgang Grandegger wrote: >>>> 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). >>> Nice stuff! Still I have a few conceptual questions: :-> >> >> I did expect them ;-). >> >>> 1. Why do you need a Xenomai measurement host? On first glance, you are >>> just spinning on the reply for the RT target. Why not use plain Linux >>> for this to increase portability? Most beautiful would be a pure >>> userspace approach like for irqbench. What prevents this here? >> >> Well, I'm not a hardware expert and therefore it was not obvious to me >> how to connect GPIO pins to the standard PC. To avoid electrical >> incompatibilities, I chose my good old TQM855L module as log host. >> I agree, that this solution is rather special and that the one for >> irqbench would be much better. Any ideas how to interface GPIO pins with >> the PC? > > Misunderstanding: I'm not talking about porting the host part to a PC, > that is a different thing and surely involves some hardware work (unless > the PC board already has compatible IO ports). I was talking about > running the host part on _plain_ Linux on whatever arch providing the IO > hardware, and maybe also running it without a kernel helper (by poking > directly into to IO - if that is feasible). Latency-wise there is no > need for a RTOS on the host side as you run the critical part with IRQs > disabled.
A "good" processor does *not* allow to enable/disable interrupts in user-space. Therefore a pure user-space solution with interrupts disabled is not possible on PowerPC. My first idea was to use a software independent hardware timer and to stop it by an external signal (in capture mode). Nevertheless, using a standard PC as log host is still attractive. Maybe there are some cheap GPIO-PCI cards avaliable. >> >>> 2. Do you see a chance to integrate the target'S GPIO interface into the >>> exiting irqbench backend? That would make it easy to merge the >>> Xenomai version into the tree. >> >> In the end I preferred to make a separated distribution, as various >> parts are very hardware specific and the driver can also be built as >> normal Linux character device driver. > > I don't want to replace your distribution, I want to enhance the Xenomai > benchmark that comes with the releases. And maybe I also want to trigger > the development of more standard benchmark tools (compatible kernel/user > APIs on the targets, reusable host-side tools). :) Yep. Wolfgang. _______________________________________________ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help