[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

Seeking information on DECthreads upcalls?

» close window

The Question is:

 
What do upcalls and the linker option /threads_enable=upcalls mean on
OpenVMS VAX. Is two-level scheduling and upcalls actually implemented on
OpenVMS VAX ? Why then the section "Two-Level Scheduling on OpenVMS" in the
Guide to DECthreads "applies to Open
VMS Alpha systems only" ? Is there a similar document for OpenVMS VAX
systems ?
 


The Answer is :

 
  The short answer is, the /THREADS_ENABLE qualifier on the LINKER command
  is supposed to be ignored on VAX, just as the on-line HELP text for the
  LINKER indicates.  This is because upcalls are not supported on OpenVMS
  VAX.
 
  The real answer is considerably more complicated.  Origianally, Compaq
  had intended to provide upcalls on OpenVMS VAX as well as on OpenVMS
  Alpha, keeping the platforms' offerings as uniform as possible.  However,
  while this was a relatively straightforward exercise from the perspective
  of the DECthreads library -- DECthreads is implemented using a common
  source base between OpenVMS VAX and OpenVMS Alpha -- the OpenVMS executive
  code is completely separate for the two platforms, so the upcalls work was
  performed as separate projects.  While other related ancillary efforts,
  such as the support in the LINKER for the /THREADS_ENABLE qualifier, were
  completed and documented, the support within the executive ran into
  complications, not the least of which was a requirement to avoid any
  "perturbing" of existing OpenVMS VAX applications.  The initial coding
  was completed, but it was not integrated nor tested, and as a result it
  was and is not currently supported.
 
  But, the story doesn't end there.  The support in the OpenVMS VAX
  executive was actually shipped, but it was expected to remain as latent
  support:  while an application could enable upcalls via the LINKER
  qualifier, the DECthreads code was never supposed to actually request
  them from the OpenVMS executive.  But, the DECthreads code which made
  the request was in a piece of conditionally compiled code which, after
  some point in time between the release of V7.1 and the release of the
  latest V7.1 patch, became active.  So, if you are on a V7.2 or a recently
  patch V7.1 system, you actually can enable upcalls on VAX.  Of course,
  they don't work, but you can enable them.  Nevertheless, as as the
  OpenVMS Wizard indicated, they are unsupported.
 
  If Compaq should ever receive sufficient business justification for the
  addition of multi-threading on VAX, Compaq is in a position to perform
  the necessary testing to complete the work.  Until that time, upcalls
  do not work on OpenVMS VAX.  Likely the next functional release of
  OpenVMS (if not an ECO prior to then) will disable the upcalls.
 

answer written or last revised on ( 7-OCT-1999 )

» close window