CPU overhead

Dan Williams dcbw at redhat.com
Sun Apr 8 22:39:21 EDT 2007


On Sun, 2007-04-08 at 19:27 -0700, Hal Murray wrote:
> Can anybody confirm that it's reasonable for a Geode to take 5 cycles per 
> iteration for an empty loop?
>     for (j = 0; j < xxx; j++) {}
> The same binary on a Celeron takes 2 cycles.
> 
> If yes, I can confirm that the system overhead is close to 0.  It looks like 
> about 1%, maybe 0.9%.
> 
> If not, I'm confused and/or I have an interesting glitch to track down.
> 
> 
> Long story:
> 
>   I have a collection of hacks for investigating performance.
> 
>   One of them forks a low priority thread per CPU that does nothing but eat 
> up all the cycles.  Any cycles it doesn't get are system overhead and/or used 
> by the application you are testing.  This is the only approach I have found 
> for accurately measuring CPU utilization for things like network test 
> programs.  Sampling from the scheduler clock (like top does) gets 
> synchronized with the network too easily.
> 
> 
> 
> Odds and ends:
> 
> The (measured) CPU speed is 363 MHz.  That's reasonable if you start at 366 
> and round down a bit for the spread spectrum EMI reduction hack.
> 
> Best TCP receive goes at 66 to 67 megabits/sec.  Send is 48-49.  I haven't 
> investigated.  That's using a USB Ethernet dongle.

Which firmware are you using with this?  The ones with the branch
prediction bug workaround enabled (older ones) or with the branch
prediction bug workaround _disabled_ (newer ones like Q2B8x)?

Dan





More information about the Devel mailing list