[Info-vax] Looking for suggestions for new $GETDVI item codes

Bob Gezelter gezelter at rlgsc.com
Thu Jan 15 09:23:54 EST 2015


On Thursday, January 15, 2015 at 12:21:37 AM UTC-5, Stephen Hoffman wrote:
> On 2015-01-15 01:56:24 +0000, David Froble said:
> 
> > Maybe I'm painting with a "too broad" brush, but, today memory is cheap 
> > and plentiful.  Why not make anything that might possibly have a large 
> > value a quadword.  Yeah, lots of work up front, but perhaps not much 
> > more work to do 50-100 (or whatever) than just a few.
> 
> Sure.  Great idea.  But it's more than a little work.   For everybody.  
>   The client applications will have to be reviewed and modified to use 
> the new itemcodes, or to expect the newly- and optionally-extended 
> return fields from the existing itemcodes here.   While existing and 
> unmodified applications might not fail, the applications also won't 
> work as expected when presented with an 6 TiB disk spindle or a 32 TiB 
> RAID6 volume, or whatever other fields were extended to quadwords.  
> These existing and unmodified applications will likely either get an 
> error code they might not expect, or they'll get and process what is 
> bogus data, depending on what approach VSI might decide to do here, if 
> VSI decides to promote fields.  More than a few existing OpenVMS 
> applications haven't made it to ODS-5 support after all, so there'll be 
> more than a few that won't get updated for quadword returns...  
> Probably fodder for a major release (V9, V10, etc), given the amount of 
> effort and change and churn that would be involved here, too.
> 
> 
> -- 
> Pure Personal Opinion | HoffmanLabs LLC

David,

I second Hoff's comment, with an add-on.

Extension to quadwords is probably a good long-term goal, however care is needed. As Hoff noted, it is not just a base software issue. The impact of such a change would ricochet through customer's existing code base with side effects ranging from annoying (mis-formatted output) to catastrophic (production processes stop running).

I would advocate for an approach which is both deliberate and embracive. First, qwuadwords responses are probably the right long-term destination. However, I would take the following steps to ease the transition and preserve presently operating images (including shared middleware and emulated/translated images).

- define a datatype for "disk block count" in the user system service header files (e.g., DVI$DiskBlockCountReturn). Presently, that would equate to 32 bits, later being defined to 64 bits. This would allow savy coders to write code that compiled correctly on BOTH old and future platforms.

- adopt (and DOCUMENT) the convention that if a value is too large, the maximum value representable in the field will be returned (e.g., LONG_MAX, ULONG_MAX, ..._). Coded and compiled optimized correctly (e.g., result = (value > xxx_MAX) xxx_MAX : value) this should require at most a handful of extra instructions in the code path.

- use disjoint itemcodes for the returning of 64-bit returns, preserving the old item codes for back compatibility.

The above is probably incomplete, but it summarizes an approach which will benefit all minimizing disruption)

- Bob Gezelter, http://www.rlgsc.com



More information about the Info-vax mailing list