[PATCH 0/2]GPIO Loopback Benchmark Tool
chensong at tj.kylinos.cn
Fri Jul 3 08:37:15 CEST 2020
In general, we use cyclictest and latency to evaluate the determinism of our real
time system. As we know, cyclictest and latency use hrtimer to set up a timer and
calculate jitter by comparing expected wakeup time and real wakeup time.
Besides that, we can also use GPIO to evaluate more modules in different scenarios.
In this case, i apply 2 GPIO ports, one is set as output, the other is interrupt,
at the same time, connect them with a cable. Once an signal is sent from output pin,
an interrupt will be raised in interrupt pin immediately.
Timestamps are recorded before gpio_set_value and interrupt handler respectively, the
diff between them is jitter.
There is also an RT task running in the user space, which collects the information and
output the summary at the end of the test. What's more, it also records the timestamps
in user space, syscall overhead is included.
Further, Making a little change will enable the tool working with latency box,once a
signal from latency box is received in interrupt pin, the tool can send a signal at
output pin as response. (I haven't got the latency box, so this function is not in
demo/posix/cobalt: App of gpio loopback benchmark
kernel/driver/testing: Driver of gpio loopback benchmark
demo/posix/cobalt/Makefile.am | 6 +
demo/posix/cobalt/gpioloop.c | 516 +++++++++++++++++++++++++++++++++++++
kernel/drivers/testing/Kconfig | 7 +
kernel/drivers/testing/Makefile | 3 +
kernel/drivers/testing/gpiobench.c | 288 +++++++++++++++++++++
5 files changed, 820 insertions(+)
create mode 100644 demo/posix/cobalt/gpioloop.c
create mode 100644 kernel/drivers/testing/gpiobench.c
More information about the Xenomai