From owner-freebsd-bugs@FreeBSD.ORG Mon Aug 8 22:20:21 2005 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C506016A41F for ; Mon, 8 Aug 2005 22:20:21 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B0FC43D45 for ; Mon, 8 Aug 2005 22:20:21 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j78MKLK2095544 for ; Mon, 8 Aug 2005 22:20:21 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j78MKL9l095543; Mon, 8 Aug 2005 22:20:21 GMT (envelope-from gnats) Date: Mon, 8 Aug 2005 22:20:21 GMT Message-Id: <200508082220.j78MKL9l095543@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Bruce Evans Cc: Subject: Re: kern/83529: partition table corruption using wdc/wd driver X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Bruce Evans List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Aug 2005 22:20:22 -0000 The following reply was made to PR kern/83529; it has been noted by GNATS. From: Bruce Evans To: Francis Gendreau Cc: freebsd-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org Subject: Re: kern/83529: partition table corruption using wdc/wd driver Date: Tue, 9 Aug 2005 08:24:27 +1000 (EST) On Fri, 15 Jul 2005, Francis Gendreau wrote: > I am building a system with two slice on a single drive, since a single slice does not provides me enough partitions for my filesystem design. In order to optimise the operating system, I've compiled the wdc and wd driver, from which I access my partition. Please use lines shorter than 256 characters. > Using the 'ad' driver, I was able to access every partition created of every slices of every drives. The problem here reside in the two commented partitions of the wd0s2 slice. > > N.B. I uses the STABLE release onyl because the Robert Watson's ACL patch is included with it. I do ignore if the 4.11-RELEASE also have the problem. You shouldn't use the wdc/wd driver, since it is not maintained and the ata/ad driver works well enough for most hardware. However, the wdc/wd driver still seems to work well enough for disks smaller than 137GB (1GB = 10^9 bytes). On my test system, there were similar but not identical problems accessing partitions until I configured the wd driver to use the "LBA addressing" flag 0x1000 (see wd(4)). Try using this flag. It shouldn't be needed, but is needed for all disks larger than 33GB due to driver bugs. Some disks have a hard limit of 8GB, and the driver gets the test for this mostly wrong and ends up intentionally breaking CHS above 33GB where it might work, without intentionally breaking CHS between 8-33GB where it might not work (the intentional breakage is just to truncate disks to a limit above which the driver fears that they might not work). On my test system (a not very old one with an nForce2 motherboard and a 120GB drive), the problems were that a slice which crossed the 33GB boundary became partly inaccessible and a slice beyond the 33GB boundary became completely inaccessible. The problem is show by boot messages: %%% Aug 9 04:55:12 epsplex kernel: wdc0 at port 0x1f0-0x1f7 irq 14 flags 0xa0ffa0ff on isa0 Aug 9 04:55:12 epsplex kernel: wd0: cannot handle 234441648 total sectors; truncating to 66060288 ... Aug 9 04:55:12 epsplex kernel: wd0s2: slice extends beyond end of disk: truncating from 57512700 to 49979223 sectors Aug 9 04:55:12 epsplex kernel: wd0s3: slice starts beyond end of the disk: rejecting it %%% Your second slice lies across the 33GB boundary like my first slice. Your disklabel -r output shows that the kernel didn't fix up the partition offsets within the slice. I can't explain how truncating the partition could cause this. After setting the LBA flag, the old wd driver worked perfectly on my relatively new test system. It even gave the maximum drive transfer rate of 47MB/sec despite it having no support for either nForce2 or UDMA faster than 33MHz. It apparently uses generic DMA and the BIOS sets this up right for UDMA100. Bruce