Re:GPF and IRQ performance
Posted: Tue Oct 18, 2005 2:51 am
Hi,
OK, it's official - I'm a noob...
I did get GC and GNC around the wrong way. "GC.img" does do the cache flushing, while "GNC.img" doesn't. To make matters worse, "IC.img" is identical to "INC.img", and both flush the cache.
This means the corrected results would be:
[tt]Athlon XP 2000+ machine:
GPF with caching: 257 cycles per interrupt
AMD Athlon 64 3000+:
Standard with cache flushing: 804 cycles per interrupt
GPF with caching: 307 cycles per interrupt
GPF with cache flushing: 696 cycles per interrupt[/tt]
This makes sense, but also means that for the Athlon 64 the extra overhead of the GPF is much closer to a normal interrupt and less than the overhead of a cache miss. In this case avoiding that extra cache miss may be worth doing...
Taking this into consideration, which method is better depends on how often IRQs occur and which CPU you're using.
Cheers,
Brendan
OK, it's official - I'm a noob...
I did get GC and GNC around the wrong way. "GC.img" does do the cache flushing, while "GNC.img" doesn't. To make matters worse, "IC.img" is identical to "INC.img", and both flush the cache.
This means the corrected results would be:
[tt]Athlon XP 2000+ machine:
GPF with caching: 257 cycles per interrupt
AMD Athlon 64 3000+:
Standard with cache flushing: 804 cycles per interrupt
GPF with caching: 307 cycles per interrupt
GPF with cache flushing: 696 cycles per interrupt[/tt]
This makes sense, but also means that for the Athlon 64 the extra overhead of the GPF is much closer to a normal interrupt and less than the overhead of a cache miss. In this case avoiding that extra cache miss may be worth doing...
Taking this into consideration, which method is better depends on how often IRQs occur and which CPU you're using.
Cheers,
Brendan