From: "Francis Moreau" <francis.moro@gmail.com>
To: "Seewer Philippe" <philippe.seewer@bfh.ch>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Disk geometry from /sys
Date: Tue, 22 Apr 2008 22:10:15 +0200 [thread overview]
Message-ID: <38b2ab8a0804221310h6fdb9346q280f75ca2b85ff18@mail.gmail.com> (raw)
In-Reply-To: <4807635E.9060101@bfh.ch>
Hi Seewer,
Sorry for being late.
On Thu, Apr 17, 2008 at 4:49 PM, Seewer Philippe <philippe.seewer@bfh.ch> wrote:
> Take the example above. A disk with 255 heads? Not impossible but
> improbable. Where's the value from?
>
> -The physical disks behind the example is an older laptop IDE disk. 'hdparm
> -I' shows 16 heads and 63 sectors, which is already an approximated value
> anyway. See Dick Johnson's post about that.
>
> -The module handling the drive is 'ata_piix', the newer Driver from the
> SATA/PATA tree, which presents all drives (*ATA) to the rest of the system
> through the scsi sublayer.
>
> -The final "getter" geometry code in the scsi sublayer (scsicam_bios_param
> in scsicam.c):
>
> /* if something went wrong, then apparently we have to return
> a geometry with more than 1024 cylinders */
> if (ret || ip[0] > 255 || ip[1] > 63) {
> if ((capacity >> 11) > 65534) {
> ip[0] = 255;
> ip[1] = 63;
> } else {
> ip[0] = 64;
> ip[1] = 32;
> }
>
> if (capacity > 65535*63*255)
> ip[2] = 65535;
> else
> ip[2] = (unsigned long)capacity / (ip[0] * ip[1]);
> }
> Read this as ip[0] is heads, ip[1] is sectors and ip[2] is cylinders. Make
> sense of course, since C/H/S values don't really matter to scsi anyway. So
Just out of curiosity, what does scsi use for addressing IO operations ?
> the default return value for the disks we use today is 255/63 for heads and
> sectors. A fixed constant which most of the time makes sense and works for
> most bios and bootloaders, but is wrong in the sense that it doesn't
> represent the actual values printed on the disks back.
>
> >
> > > versus the second one which tries to
> > > guess a disks geometry by looking at the current partition table. Which
> > > might be just as wrong since its only necessary for bios and/or
> bootloader.
> > >
> >
> > But what happens if you want to guess the geometry of a disk with no
> > partition table ? You need to trust the kernel guess but from what I
> understood
> > it's just wrong.
> >
> Assuming H/S as 255/63 and calculating C from the disks capaticy is quite
> safe. Except for a few weird use cases like using old OS's and os-installers
> that still trust the BIOS.
> Depending on the type of disks you work with 'hdparm -I' works well too.
> Otherwise there's always CONFIG_EDD ('BIOS Enhanced Disk Drive calls
> determine boot disk') which exports BIOS geometry values to sysfs for the
> current default boot disk.
>
> Hope this helps
Thanks a lot for your time.
--
Francis
next prev parent reply other threads:[~2008-04-22 20:10 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-09 20:53 Francis Moreau
2008-04-09 21:28 ` Lennart Sorensen
2008-04-09 21:52 ` Alan Cox
2008-04-09 22:16 ` Bernd Eckenfels
2008-04-10 14:52 ` Lennart Sorensen
2008-04-10 19:23 ` Francis Moreau
2008-04-09 21:57 ` Mark Lord
2008-04-10 19:05 ` Francis Moreau
2008-04-10 19:53 ` Mark Lord
2008-04-10 12:22 ` linux-os (Dick Johnson)
2008-04-10 19:15 ` Francis Moreau
2008-04-10 13:58 ` Bill Davidsen
2008-04-14 12:57 ` Seewer Philippe
2008-04-15 7:40 ` Francis Moreau
2008-04-16 7:49 ` Seewer Philippe
2008-04-17 14:09 ` Francis Moreau
2008-04-17 14:49 ` Seewer Philippe
2008-04-18 13:22 ` Mark Lord
2008-04-18 13:37 ` Seewer Philippe
2008-04-22 20:11 ` Francis Moreau
2008-04-23 6:44 ` Seewer Philippe
2008-04-23 6:56 ` Francis Moreau
2008-04-22 20:16 ` Francis Moreau
2008-04-22 22:44 ` Mark Lord
2008-04-23 6:53 ` Seewer Philippe
2008-04-23 7:02 ` Francis Moreau
2008-04-23 9:33 ` Seewer Philippe
2008-04-23 13:47 ` Mark Lord
2008-04-22 20:10 ` Francis Moreau [this message]
2008-04-23 6:48 ` Seewer Philippe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=38b2ab8a0804221310h6fdb9346q280f75ca2b85ff18@mail.gmail.com \
--to=francis.moro@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=philippe.seewer@bfh.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome