[Trac #905] The libertas driver causes a 33% slowdown.

Zarro Boogs per Child bugtracker at laptop.org
Tue Mar 6 17:30:33 EST 2007


#905: The libertas driver causes a 33% slowdown.
----------------------------------+-----------------------------------------
 Reporter:  cjb                   |        Owner:  marcelo
     Type:  defect                |       Status:  new    
 Priority:  blocker               |    Milestone:  BTest-3
Component:  kernel                |   Resolution:         
 Keywords:  relnote, performance  |  
----------------------------------+-----------------------------------------
Comment (by wmb at firmworks.com):

 Here is a summary of the problem details:

 a) The GX chip has a bug whereby DMA to cached memory intermittently
 causes instruction execution errors - the branch target cache sometimes
 yields incorrect results when a cache snoop happens at just the wrong
 time.

 b) The standard workaround for that bug is to use some special diagnostic
 features to force a 4-cycle CPU stall on a DMA-induced cache snoop.

 c) Under most system loads, the performance degradation of that workaround
 is between 1% and 4% - usually an acceptable amount.

 d) USB network interfaces require repetitive polling at the USB
 transaction level in order to accept incoming packets with low latency.
 This is just the way that USB works.  The polling is done automatically by
 the USB host interface hardware, without CPU intervention.  However, that
 polling results in repetitive DMA accesses to a descriptor, at short
 intervals (a few microseconds or less).

 e) This repetitive DMA to a single location is a worst case for the branch
 cache interaction, resulting in >30% slowdown of other code executing on
 the CPU.

 f) Turning off the workaround (b) risks random application and kernel
 crashes, so that option is not attractive.

 g) We have verified that, if the USB descriptor is in uncached memory, the
 slowdown does not occur.

-- 
Ticket URL: <http://dev.laptop.org/ticket/905#comment:5>
One Laptop Per Child <http://laptop.org/>



More information about the Bugs mailing list