From: <pa...@rc...> - 2000-10-17 06:34:55
|
> Unfortunately, all of the log files I've made have this problem, and setting > LINEBUF didn't seem to help. > Very sluggish, but still hangs. And the debug output still gets cut off > occasionally. I'm not sure how to fix that. I'm not either. It's a matter of syslogd racing to keep up with the log messages spewing out of the kernel. I added the LINEBUF facility as a quick-and-dirty workaround to help me debug a specific problem in preparation for releasing version 0.5. When enabled, it gave me a rough trace of the sequence certain lines in the code got executed, and the linebufDump() function would print out the results at a convenient time. It might be useful here with some changes, perhaps to "log" status line values instead of line numbers in the source code (or perhaps some bit-shifted combination thereof. > > Another interesting test would be to log the return code of > parStatusRead() > > right before setting event 7/12, and again after > "SET_STATE(l,9,BUSY_TIME);" > > but before "PAR_WAIT_SET_CLEAR(l,0,PAR_STATUS_NACK);". Any status line > > changes after event 7/12 might further suggest a peripheral-side timeout. > > Event 7/12 is a parControlSetClear() which never calls parStatusRead(). Do > you mean parControlRead() or do you mean check it during event 6 (which > comes just before event 7, I presume)? It looks like parStatusRead() gets > called in PAR_WAIT_SET_CLEAR. I meant to add an additional parStatusRead() (and printk the return value) right before the parControlSetClear() for event 7/12, and another one after SET_STATE but before PAR_WAIT_SET_CLEAR, just to see what the status lines are showing. > Does the 1284.4 specification outline all these events? It would be very > helpful to have a flowchart or state diagram showing how all these events > are supposed to occur. IEEE 1284-1994 (or 1284 for short) is the "Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers", which describes these events in great detail. 1284.4 and MLC are higher-level transport protocols which can theoretically operate over any bidirectional link (such as parallel, USB, etc.). David |