Specifications
CHAPTER 6. REQUIREMENTS VERIFICATION 60
open("/proc/ial_event_received", O_RDONLY);
This system call causes iallatency to store the current jiffies into receive jiffies.
Once the the second measuring point is stored, it is possible to gather the two values of
event jiffies and receive jiffies by accessing the second proc interface of the kernel
driver:
open("/proc/ial_get_data", O_RDONLY);
This causes the kernel driver to report the values of event jiffies and receive jiffies
by generating a kernel log entry. Once the measuring data are reported, the kernel driver sets
both variables back to zero.
Both the mo dification of the kernel input drivers and the implementation of the kernel driver
have been realized by causing as less overhead as possible. This ensures the measurement to
be accurate. For example, it would have been possible to let the input device driver invoke
printk() to issue a log entry to the kernel log in order to gather the first measuring point.
Correspondingly, the user space application could report the current uptime of the system
(second measuring point) once the input event is received. However, this approach would have
implied too much overhead and thus, caused imprecise measurements.
All performed measurements have been accomplished on a system clocked at 750 MHz
running the Linux kernel version 2.6.9. The tests were performed by gathering t
2
for 50 times
at low system load and another 50 times at high system load. The average low system load was
0.65. The high system load had an average of 2.42. The value of the system load describes the
average number of processes which are ready to run. The load 1.0 indicates that the system’s
CPU is fully utilized by the running processes. A load less than 1.0 means that the CPU is not
fully utilized. Correspondingly, a load greater than 1.0 implies that the CPU is overwhelmed
with work—more processes are ready to run than the CPU is able to serve.
The event interface has been investigated regarding the time an input event needs to reach
user space. Figure 6.2 shows the results of the passes. At low system load, the following
time intervals have been measured for t
2
: t
min
= 1ms and t
max
= 8ms. The average time
interval of all passes is t
avg
= 1.94ms. The corresponding values for t
2
at high system load are:
t
min
= 1ms and t
max
= 14ms, resulting in an average time interval t
avg
= 4ms.
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
0
2
4
6
8
10
12
14
16
Pass
High Load
Low Load
/ ms
2
t
Figure 6.2: Keyboard Event Time Interval