[Info-vax] Volatile, was: Re: yet another sys$qiow question
Johnny Billquist
bqt at softjar.se
Thu Aug 27 05:45:47 EDT 2015
On 2015-08-27 04:14, David Froble wrote:
> John Reagan wrote:
>> Looking at the code, the updating of the IOSB is done very carefully.
>> There
>> are EVAX_MB builtins used in the code (it is in Macro32) and they make
>> very
>> sure that the first longword is always filled in last (with an MB between
>> storing into the 2nd longword and storing into the 1st longword). I also
>> found code that worries about misaligned IOSBs to ensure atomic updating
>> (including letting an alignment fault occur just to get proper
>> synchronization).
>>
>> Looking in just the [SYS] facility (so that doesn't even count
>> drivers, RMS,
>> RTLs, etc.), I found 389 uses of the MB instruction. That EVAX_MB
>> builtin is
>> mapped to the 'mf' instruction for Itanium. There are equivalent
>> instructions for x86 although the stronger memory ordering rules might
>> make
>> some of them unnecessary (but I doubt that the Macro compiler will be
>> able to
>> figure that out without human assistance)
>
>
> Ok, a question. Just curious.
>
> Do you have any feel for how much time might be saved by monitoring the
> IOSB status instead of using one of the signaling methods, such as an
> AST or event flag?
Polled I/O is not a sane way to go. WIth ASTs or event flags, you
normally do not "monitor" them. You just wait until they happen.
Monitoring the IOSB only makes sense if you want to do the occasional
check. Then it is much better that reading out the event flags.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
More information about the Info-vax
mailing list