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