[ag-automation] Adding OSADL patch to 2.6.33.7 increases latency and CPU usage?

Grant Edwards grant.b.edwards at gmail.com
Wed May 9 21:57:25 CEST 2012


I've been doing some interrupt latency testing using a board running a
400MHz ARM9 (an Atmel at19sam9g20).  I'm measuring interrupt latency
of an ISR attached to external interrupt IRQ0.

I built three kernels from scratch and ran the same test on all three:

 2.6.30          the kernel we've been using (no OSADL patches)
 2.6.33.7        without OSADL real-time patches
 2.6.33.7-30rt   with OSADL real-time patches

I don't have enough data to say much about worst-case latency, but
after looking a thousand or two samples for each...

 * 2.6.30 and 2.6.33.7 are the same: there is as much variation
   between test runs as there is between kernels.

 * Typical latency with OSADL patch is 3X the latency without it.

 * CPU idle time during test is 10% with OSADL patch and 30% without
   it.

IOW: the OSADL real-time patch for 2.6.33.7 makes both the typical
interrupt latency and the CPU usage significantly worse.

Typical latency on a heavily loaded system w/o the OSADL patch is
5-15us.

Typical latency on the same system w/ the OSADL patch is 15-50us (I've
never seen latency below 15us with the OSADL patch).

Is this the expected behavior?

I don't have enough data to state conclusively what the worst-case
latencies are, but it looks like in all cases they're 200-250us.

In all cases the kernel was configured to be the most preemptible it
could be.  In the 2.6.33.5-30rt kernel I don't have any of the tracers
enabled.

The kernel configurations are as identical as I could make them.  In
the 2.6.33.7-30rt case, I started with the .config file used to build
the other 2.6.33.7 kernel and ran old-config making sure to select the
"fully preemptible" option when it asked.

Why would a "vanilla" 2.6.33.7 AT91 kernel perform so much better than
one with the OSADL realtime patch?

-- 
Grant


More information about the ag-automation mailing list