tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

cngetc and watchdogs



There's a deadly embrace between watchdogs and cngetc.  While cngetc is looping 
at splserial, callouts are blocked, let alone letting user processes run.

So if you are stuck at the ddb prompt, eventually the watchdog will fire 
because you didn't type fast enough.

I've added a new class of hook to do this, critpoll (critical poll).

I want to change the current semantics of cn_getc from spin forever to poll for 
a character and return -1 if no character is ready or >= 0 for valid input.  
The definition allows serial drivers to change as needed.

The diff to dev/cons.c is at http://www.netbsd.org/~matt/cons-diff.txt
The diff to dev/ic/com.c is at http://www.netbsd.org/~matt/com-diff.txt

I've been using this for 6 months with no problems.


Home | Main Index | Thread Index | Old Index