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
GPF and IRQ performance
Re:GPF and IRQ performance
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:GPF and IRQ performance
(( fully sympathizing with all you, people, that are currently busy with RDTSC performance monitoring for OSdev as i'm doing here for my job ))
Re:GPF and IRQ performance
?Pype.Clicker wrote: (( fully sympathizing with all you, people, that are currently busy with RDTSC performance monitoring for OSdev as i'm doing here for my job ))