> From: Michael Bloom <mabl...@dslextreme.com>

> nanosleep() would give you the exact timing needed.  I'm very much against 
>polling the time as a solution because it could use up a lot of CPU cycles 
>that 
>other processes would love to have.  
>
> "spinning" when there are ways that are more accurate (not to mention 
>friendlier to other processes who'd like some CPU time) to simulate timing,  
>is 
>not the best choice, in my opinion.


Hi Michael,

First off, the whole issue was about the code that gets executed only when 
console ROM is active.
Once the bootstrap is started, it is irrelevant.

Second, on most platforms you are lucky to get sleep interval with granularity 
around 1 ms.
Never mind 100 us, let alone 1 us.
Having system call that takes its argument in nanosecond or femtosecond  units 
does not mean host OS timer events are actually processed at this resolution.

But even if they magically were, the cost for no-op system call  
(userland-kernel-userland context roundtrip) on 3+ GHz x64 CPU is about 1 us,  
which is approximately the amount of the delay introduced by  rom_read_delay 
loop. The overhead of creating timer entry -- merely  creating the entry, 
without any processing of it -- would exceed the  delay required.
_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to