[Info-vax] QIO Writes to a mailbox
    Kenneth Fairfield 
    ken.fairfield at gmail.com
       
    Fri Nov  4 18:47:07 EDT 2011
    
    
  
On Friday, November 4, 2011 2:56:03 PM UTC-7, Steve Bainbridge wrote:
[...]
> As I said at the beginning of this thread the IOSB is never checked,
> so we don't know if and why the QIO completed OK - I am only trying to
> find reasons why it would not - given the limited information
> available to me (the IOSB is declared as a static variable at the
> beginning of the procedure)
I hate to jump in when so many other more knowledgeable
posters have replied with what amounts to the definitive
answer...  Nevertheless, and given the above paragraph, 
and given that the code you posted calls QIO but doesn't
wait on completion, you're practically guaranteed to
have errors.  
It's just UNlucky that you didn't encounter them long
ago.  Not waiting on completion is exasperated by 
running on faster hardware, and, if I'm not mistaken,
by running on SMP hardware.
It sure looks to me like the caller is specifying
C_OSI_NOWAIT but doesn't supply the required call-
back routines.  And in any case, the NOWAIT / QIO
branch in the called routine doesn't wait on the
event flag.
Change the caller to omit the C_OSI_NOWAIT and the
obvious logic error will be eliminated.  There may 
be other bugs lurking as well, but calling QIO 
without waiting on completion is flat out a design 
error in the code.
(You may also want to start checking the IOSB after
the QIOW...he says with serious understatement...)
    -Ken
    
    
More information about the Info-vax
mailing list