*BSD News Article 3583


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!mips!mips!sdd.hp.com!caen!uunet!mcsun!sunic!aun.uninett.no!barsoom!barsoom!tih
From: tih@barsoom.nhh.no (Tom Ivar Helbekkmo)
Subject: Re: 2nd drive file ... (Actually wd ESDI problems)
Message-ID: <tih.713684034@barsoom>
Sender: news@barsoom.nhh.no (USENET News System)
Organization: Norwegian School of Economics
References: <Bsp5D6.B9p@obiwan.uucp> <165f2uINN6an@disaster.Germany.EU.net> <tih.713450893@barsoom> <193@asgard.mlb.dmt.csiro.au>
Date: Thu, 13 Aug 1992 05:33:54 GMT
Lines: 41

mjj@mlb.dmt.csiro.au (Murray Jensen) writes:

>The area bad144 uses is at the end of *partition C*. It is supposed to use
>only the last track + 126 sectors, but since you usually want filesystems
>to be whole numbers of cylinders you might as well leave the whole last
>cylinder free. The distributed disktab says you should leave 5 cylinders
>for bad sector stuff, but after looking at this a bit I decided it was
>wrong - can someone who knows for sure please comment?

You've got it right -- the last track plus the last 126 sectors before
that last track.  In practice, you just leave out the minimal number
of whole cylinders that will leave you with at least that many sectors
unused.

>My guess is that the BSD filesystem sector clustering code, which groups
>sectors together to form larger "logical blocks" (I was using 4096 byte
>logical blocks i.e. 8 sectors, in my filesystems - other people use 8192)
>is somehow avoiding the bad144 bad sector forwarding mechanism when it
>does the multiple sector read (or write).

Right again -- the bad sector handling code doesn't handle bad sectors
in any but the first of a multiple-sector I/O operation.  I'm already
working on the wd driver to make it correctly handle up to four disks
on two controllers (well, really any number, but that's the practical
limit on a PC), and I will be fixing the bad sector handling too while
I'm at it.  I just need to find and fix one timing and/or reentrancy
problem that shows up when wdopen() calls readdisklabel().

For those who have reported lockups and other errors when trying to
enable badsect on the second drive, while it works fine on the first,
one thing to try is to make sure the disks are not fsck'ed at the
same time from /etc/rc.  That is, change the call to fsck in there
from "fsck -p" to "fsck -p -l 1" (I *think* it was "-l", anyway, you
want the option that limits the number of simultaneous checks.  For
some controllers, this will work around the timing/reentrancy bug in
the driver.  Meanwhile, I'm still working on it...

-tih
--
Tom Ivar Helbekkmo, NHH, Bergen, Norway.  Telephone: +47-5-959205
Postmaster for domain nhh.no.   Internet mail: tih@barsoom.nhh.no