URGENT STREAMS pseudodevice/kernel stream head question
Jochen Manns, PI der Uni Bonn, 732738/3611
MANNS%DBNPIB5.BITNET at cunyvm.cuny.edu
Mon Mar 11 21:52:18 AEST 1991
Dear STREAMS and kernel experts,
I got a problem with a simple pseudodevice driver programmed by me.
Long time, anything works fine but then suddenly a deadlock occures.
This thing is very strang because of the following:
- the program reading the pseudo device is in a _read and blocked
- the streams head shows mit flags $3E or 076, which tells me:
(QWANTR) someone up (_read) needs data (indeed)
(QWANTW) someone from below has data (indeed)
(QFULL) block by flow control (got 6k, flow allows 5k)
(QREADR,QUSE) ok, the normal way
and nothing happens. So how can QWANTR and QFULL set at one time,
i.e. how can a _read block with 6k bytes of data waiting on the
queue? I put all the data with 'putnext' to the queue, using a
service procedure, 'canput' and whatever UNIX likes. What can be
wrong?
We are running DG/UX 4.31 on a Data General AViiON 300.
Thank you in advance
Jochen Manns
Physikalisches Institut der Universitaet Bonn
Nussallee 12
5300 Bonn 1
(Germany)
More information about the Comp.unix.questions
mailing list