看板 DFBSD_bugs 關於我們 聯絡資訊
I believe I have fixed the problem. I would like to thank everyone who submitted bug reports on this issue! The reports were invaluable and I believe I was able to find the problem. Basically the problem is that the keyboard interrupt is edge-triggered, a left-over from the early PC days. Due to this it is possible for an interrupt to be 'lost' and create a situation where no new interrupt occurs. The keyboard driver has a 10hz poll routine to detect the lost interrupt and get things moving again. Callout timer work I did in September broke the poll routine. Without a working poll routine the keyboard can basically stop working under certain latency-related conditions. I would like everyone who reported problems to update their kernels, make sure you have /usr/src/sys/dev/misc/kbd/kbd.c rev 1.14, and retest. -Matt