CPU overhead
Hal Murray
hmurray at megapathdsl.net
Sun Apr 8 22:27:53 EDT 2007
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.
--
These are my opinions, not necessarily my employer's. I hate spam.
More information about the Devel
mailing list