From: Wolfgang Grandegger <wg@domain.hid>
To: Jan Kiszka <jan.kiszka@domain.hid>
Cc: xenomai-help <xenomai@xenomai.org>
Subject: Re: [Xenomai-help] gpioirqbench: measuring external interrupt latencies
Date: Mon, 25 Feb 2008 09:28:47 +0100 [thread overview]
Message-ID: <47C27C3F.9080307@domain.hid> (raw)
In-Reply-To: <47C27772.1060005@domain.hid>
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.
prev parent reply other threads:[~2008-02-25 8:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-22 21:53 [Xenomai-help] gpioirqbench: measuring external interrupt latencies Wolfgang Grandegger
2008-02-23 14:06 ` Jan Kiszka
2008-02-23 20:27 ` Wolfgang Grandegger
2008-02-25 8:08 ` Jan Kiszka
2008-02-25 8:28 ` Wolfgang Grandegger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47C27C3F.9080307@domain.hid \
--to=wg@domain.hid \
--cc=jan.kiszka@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.