Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756656AbYCYPSV (ORCPT ); Tue, 25 Mar 2008 11:18:21 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754921AbYCYPSI (ORCPT ); Tue, 25 Mar 2008 11:18:08 -0400 Received: from accolon.hansenpartnership.com ([76.243.235.52]:47266 "EHLO accolon.hansenpartnership.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754200AbYCYPSG (ORCPT ); Tue, 25 Mar 2008 11:18:06 -0400 Subject: Re: What to do about the 2TB limit on HDIO_GETGEO ? From: James Bottomley To: Mark Lord Cc: Jens Axboe , Jeff Garzik , Tejun Heo , Greg KH , Linus Torvalds , Andrew Morton , Linux Kernel , IDE/ATA development list , linux-scsi In-Reply-To: <47E87942.2020409@rtr.ca> References: <47E875AD.1000901@rtr.ca> <47E87942.2020409@rtr.ca> Content-Type: text/plain Date: Tue, 25 Mar 2008 08:17:58 -0700 Message-Id: <1206458278.3273.5.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.12.3 (2.12.3-3.fc8) Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1870 Lines: 46 On Tue, 2008-03-25 at 00:02 -0400, Mark Lord wrote: > (resending .. forgot to copy the lists originally) > > We have a problem coming down the pipeline. > > Practically all utilities that care about it, > use ioctl(fd, HDIO_GETGEO) to determine the starting > sector offset of a hard disk partition. > > SCSI, libata, IDE, USB, Firewire.. you name it. > > The return value uses "unsigned long", > which on a 32-bit system limits drive offsets to 2TB. > > There will be single drives exceeding this limit within > the next 12 months or less, and we already have RAID arrays > that exceed 2TB. > > So.. what's the replacement for HDIO_GETGEO on 32-bits ? > > One candidate might seem to be the existing /sys/block/dev/partition/start > which I expect is already 64-bit friendly. > > But this requires about 150 lines of somewhat complex C code to access, > using only the dev_t (from stat(2) on a file) as a starting point, > or less if one relies upon the udev device name matching the sysfs device name. > > Is it time now for HDIO_GETGEO64 to make an appearance? > Similar to how the existing BLKGETSIZE64 is supplanting BLKGETSIZE ? Perhaps I've missed something, but surely geometry doesn't make sense on a >2TB drive does it? The only reason we use it on modern disks (which usually make it up specially for us) is that the DOS partition scheme requires it. Once we're over 2TB, isn't it impossible to use DOS partitions (well, OK, unless you increase the sector size, but that's only delaying the inevitable), so we can just go with a proper disk labelling scheme and use BLKGETSIZE64 all the time. James -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/