Date: Sun, 4 Jan 1998 17:01:09 +0100 (MET) From: Luigi Rizzo <luigi@labinfo.iet.unipi.it> To: hackers@FreeBSD.ORG Subject: wd/wcd/atapi problems Message-ID: <199801041601.RAA18075@labinfo.iet.unipi.it>
next in thread | raw e-mail | index | archive | help
Since I have been looking at this code recently... there is a number of problems in the wd/wcd/atapi drivers, and I am wondering if someone is looking at them. A brief list follows: (wd) kernel looping at high priority this just happened to me: I had a partition mounted on wd2, and the disk went idle. Then I did "umount /mnt", and while the disk was spinning up (and I got a wd2: interrupt timeout) the system had become completely unresponsive (mouse disappears, etc.) I only suspect that the reason is some code spinning at high priority, but haven't investigated further. Fortunately the wd driver has a watchdog... (wcd) no watchdog function as the title says, there is probably no watchdog on wcd (ATAPI) units. This is problematic since problems on a unit will block the whole controller (including the primary disk on most of my machines), and ATAPI implementations tend to be not all the same (plus, our driver is certainly not perfect: e.g. with a stock 2.2.1 atapi a dd from a data CD often hangs, depending on how badly i screwed up the drive with the previous kernel; I have to cycle power to bring the device back to regular operation. I am not even sure if the watchdog in the wd driver is implemented properly. A comment in the code says it should be per controller, not per drive, and there might be some strange interaction when a drive(r) is not informed of a reset issued to its controller because of a timeout on the other drive. (atapi) potentially long (3ms) delays in atapi_wait_cmd this routine, called from wdintr, in some cases might take such a long time waiting to send the packet command. Maybe modern drives are fast, but I was wondering, is there a way to temporarily release the cpu within a interrupt driver ? Cheers Luigi -----------------------------+-------------------------------------- Luigi Rizzo | Dip. di Ingegneria dell'Informazione email: luigi@iet.unipi.it | Universita' di Pisa tel: +39-50-568533 | via Diotisalvi 2, 56126 PISA (Italy) fax: +39-50-568522 | http://www.iet.unipi.it/~luigi/ _____________________________|______________________________________
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801041601.RAA18075>