From owner-freebsd-hardware Mon Apr 1 07:09:37 1996 Return-Path: owner-hardware Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id HAA29028 for hardware-outgoing; Mon, 1 Apr 1996 07:09:37 -0800 (PST) Received: from lserver.infoworld.com (lserver.infoworld.com [192.216.48.4]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id HAA29022 for ; Mon, 1 Apr 1996 07:09:34 -0800 (PST) Received: from ccgate.infoworld.com by lserver.infoworld.com with smtp (Smail3.1.29.1 #12) id m0u3laH-000x1TC; Mon, 1 Apr 96 07:31 PST Received: from cc:Mail by ccgate.infoworld.com id AA828371256; Mon, 31 Mar 96 20:10:32 PST Date: Mon, 31 Mar 96 20:10:32 PST From: "Brett Glass" Message-Id: <9603018283.AA828371256@ccgate.infoworld.com> To: "Brett Glass" , jkh@time.cdrom.com, hardware@freebsd.org Subject: Some solutions to disk problems.... I think. Sender: owner-hardware@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Aha! Have found some instructions for writing code that can be incorporated into the kernel to solve the timeout problem. ftp://ftp.seagate.com/techsuppt/misc/no_idle.zip explains how to disable the timeouts and gives sample code for DOS. (It'd have to be different for FreeBSD's disk driver.) I will take a stab at adding some code to my kernel this evening; however, since most low-level OS code has a "culture" behind it (that is, an unwritten list of ways to do things and things one shouldn't do at all costs), I'm worried that I'll violate some unwritten rule and mess everything up. Would someone more experienced with hacking the FreeBSD kernel be willing to help by looking over my code and/or incorporating the relevant instructions (it's only three I/O operations per drive, with pauses between)? The code should probably be activated by flags (one per drive for each IDE interface). What is the proper procedure for implementing and assigning a device driver flag, and making sure that there are no conflicts? Are any flag bits reserved in FreeBSD disk drivers? --Brett P.S. -- Have also found a fix for the read-ahead problem, but it is specific to my machine. Zeos had -- in poorly labeled and virtually undocumented form -- a BIOS upgrade for this system on their Web site. This BIOS -- but not the one that most users got -- has a switch to turn off read-aheads on the buggy RZ1000 chip. This should be considered a special case, though; other brands of computers may not have such BIOSes available. Linux detects the buggy chip and disables read-aheads; FreeBSD should do the same rather than expecting this capability to exist in the BIOS.