Performance Evaluation

Home

Testing Environment

CPU Pentium II 450MHz
Memory 256MB
VME Adaptor SBS Model-617
OS Linux 2.4.18 (Vine Linux 2.5)
KiNOKO Ver. 1.0.13 (RC1)

VME Device Driver Performance

We read out data from a memory module on a VME bus 100 times with varying data sizes, from 2kB to 1024kB varying 2kB at a time, and measured the time it took. The module we used is SMP used by TKO.

The following graphs are data size versus processing time. Processing time was calculated from the time it took to read out data once and the total time it took for each data packet.

We fitted the results for data sizes of 2kB to 20kB on a straight line and calculated the transfer rates (the slopes) and the overheads (the intercepts) which turned out to be the following.
VME PIO Transfer Rate 1.52 MB/sec
VME PIO Overhead 36 usec
VME DMA Transfer Rate 13.7 MB/sec
VME DMA Overhead 970 usec

DataBuffer Performance

We measured the time it took to transfer 256MB of data that was divided into packeges of known sizes using a 256kB buffer.
We fitted results for packet sizes of 1kB to 50kB on a straight line and calculated the actual data transfer speed (the slope) and the overhead (the intercept) which turned out to be the following.
DataBuffer transfer speed 128.3 MB/sec
Data Buffer Overhead 58.3 usec

Readout Script Overhead

We estimate the script's overhead by using script-controlled tinykinoko and also the C native code that accesses the device driver directly to perform the process of reading data by DMA from 2 memory modules using the VME interupt, and comparing the time it takes to start DMA after the interupt. The program and script used are the following.
The C native code that directly accesses the driver: driver-performance-test.c
Readout script used in tinykinoko: ScriptPerformenceTest.kts
We measured the time it took using a logic analyzer directly connected to the backplane of the VME. We used an IRQ line to readout when the interrupt was requested and a LWORD line for the start of DMA. The following is the screen of the logic analyzer when measuring this. We are triggering with IRQ3. We can see that on the right half of the screen, DMA transfer has begun.
Page-1 Large Page-2 Large
The measurement results are the following (all measurements were made manually so there are only a few datapoints). Please note that these measurements include MA startup processing time on top of system interrupting response time.
From this graph, the average time it took to process in the two ways of accessing becomes the following.
Directly Accessing the Driver 146.5 usec
Via Script 293.5 usec
If we assume the script overhead to be simply the difference in these two times, the following is what we get.
Script Overhead 147.0 usec

Summary

Pentium II 450MHz, 256MB Memory, Linux 2.4.18, KiNOKO 1.0.13 (RC1)
VME PIO Transfer Rate 1.52 MB/sec
VME PIO Overhead 36 usec
VME DMA Transfer Rate 13.7 MB/sec
VME DMA Overhead 970 usec
Data Buffer Transfer Rate 128.3 MB/sec
Data Buffer Overhead 58.3 usec
Script Overhead 147 usec

Edited by: Enomoto Sanshiro