home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / os / vms / 17544 < prev    next >
Encoding:
Internet Message Format  |  1992-11-06  |  3.7 KB

  1. Path: sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!sun-barr!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!mp.cs.niu.edu!fnnews.fnal.gov!fnnews!SNYDER
  2. From: SNYDER@d0sb10.fnal.gov
  3. Newsgroups: comp.os.vms
  4. Subject: Problems with DEC's XMI-VME adapter
  5. Date: 05 Nov 92 23:09:23 GMT
  6. Organization: SUNY Stony Brook High Energy Physics
  7. Lines: 66
  8. Message-ID: <SNYDER.92Nov5170923@d0sb10.fnal.gov>
  9. NNTP-Posting-Host: d0sb10.fnal.gov
  10.  
  11.  
  12. Hi -
  13.  
  14. I've been trying to use DEC's XMI-VME interface (DWMVA).
  15. Our machine is a Vax 6000-610 with one CPU, and we're running
  16. VMS 5.5-2HW.
  17.  
  18. The first problem occurred when i tried to connect a driver to the
  19. adapter.  The system died immediately with an INCONSTATE bugcheck.
  20. The driver was sys$examples:qsdriver.mar (which i had modified slightly,
  21. but i did not touch the DPT, DDT, or the initialization routines).
  22.  
  23. I eventually tracked this down to the following:
  24. When sysgen is connecting a driver to an adapter, it first
  25. tracks down the adapter's ADP.  Now, the ADP has a field of
  26. capability flags, ADPDISP_FLAGS, which are used by the ADPDISP macro.
  27. There is also a flag which says whether or not the rest of the flags
  28. have been initialized.  For some devices, VMS initializes this field
  29. during system initialization; for others, including the VME adapter,
  30. it does not.  Before connecting a driver, sysgen checks this ADP
  31. field and issues a fatal bugcheck if it has not been initialized.
  32. This is apparently a recent change, as this check is not present in
  33. the V5.5 source listings.  (It looks like someone replaced that big
  34. nest of compare/branches that dispatch into adapter-specific code in
  35. the sysgen connect routine with ADPDISP, forgetting, perhaps, that
  36. ADPDISP will bugcheck if ADPDISP_FLAGS is not set.)
  37.  
  38. Anyway, i was able to deal with this problem by throwing together
  39. a small program which tracks down the VME adapter's ADP and pokes
  40. a 1 into ADPDISP_FLAGS.  What i was wondering is: is this a known problem,
  41. and how have other people dealt with this?
  42.  
  43. The second class of problems concerns error handling.  It seems that
  44. if there is a VME bus error or if the VME crate is powered off or
  45. disconnected, the vax gets a fatal (INT60) exception on the XMI
  46. and bugchecks with UNXINTEXC.  While i suppose one could argue that
  47. this might be the `proper' response, this makes things rather inconvenient,
  48. since the only machine we have that the VME adapter will work in is also used
  49. in our data acquisition system.  If at all possible, i'd like the
  50. vms system to be able to survive a failure on the vme end.  So far,
  51. i've thought of two possible strategies for doing this:
  52.  
  53. - Disable all error interrupts from the adapter.  Have the process which
  54.   is reading out the vme test for errors by periodically polling the
  55.   device error registers.  This has the disadvantage that we might have
  56.   to duplicate DEC's error analysis/recovery code for the adapter.
  57.   In addition, if we don't check for errors often enough, there is
  58.   the possibility that the system could be hung up for substantial
  59.   periods of time waiting for bus timeouts.  And would we still get
  60.   XMI exceptions?
  61.  
  62. - Patch the VME adapter's IVINTR routine so that when it goes back to
  63.   the INT60 handler, the bugcheck flag does not get set.  If the
  64.   INT60 handler dismisses the exception, will the system be able
  65.   to continue running?  And there is the question of how to report
  66.   errors back to user-mode code.  Ideally, if the exception was
  67.   caused by a process reading from or writing to memory mapped to the
  68.   vme, one would like to send an exception to that process, but that
  69.   seems rather tricky.
  70.  
  71. Anyway, i'd be interested to hear if anyone else has tried to deal
  72. with this, or just any interesting war stories concerning this adapter.
  73.  
  74. thanks,
  75. scott snyder
  76. snyder@d0sb10.fnal.gov
  77.