[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