[Info-vax] OpenVMS async I/O, fast vs. slow

Craig A. Berry craigberry at nospam.mac.com
Tue Nov 7 17:44:58 EST 2023


On 11/6/23 6:18 PM, Arne Vajhøj wrote:
> On 11/6/2023 6:31 AM, Johnny Billquist wrote:

>> Read ahead is something that the system can easily do both for normal 
>> I/O and memory mapped I/O. It's just a question of speculative reads 
>> assuming some pattern by the program. Most commonly that you are 
>> reading files sequentially from start to finish.
> 
> $QIO(w) and $IO_PERFORM(W) could.
> 
> But at least for $QIO(W) then I would be very surprised if it did. It is
> from before VIOC/XFC so originally it did not have anywhere to
> store read ahead data. VMS engineering could have changed
> behavior when VIOC/XFC was introduced. But I doubt it.

Are you saying that you think merely using $QIO bypasses XFC?  If so,
how do you think SHOW MEM/CACHE can give you "Total QIOs"?  And note
this from the performance management manual page 72:
"I/O service can be optimized at the application level by using RMS 
global buffers to share caches among processes. This method offers the 
benefit of satisfying an I/O request without issuing a QIO; whereas 
system memory software cache (that is, XFC) is checked to satisfy QIOs."

https://docs.vmssoftware.com/docs/vsi-openvms-performance-management-manual.pdf

> $IO_PERFORM(W) maybe. But I think the spirit is still
> "do exactly what the developer asked for and nothing more".

Here it would make more sense that the buffered object you are required
to provide is the only "cache" you get.  But I don't know the internals.




More information about the Info-vax mailing list