Re: IDE HPA

Greg Felix
2005-08-30T15:52:39Z

Kernel list,

A while ago there was some discussion on the list regarding the
behavior of the kernel in regards to its unconditional disabling of
host protected areas of hard drives. I ran into a problem this causes
with some RAID controllers. I've been discussing the problem with
both the ata-raid mailing list and Oliver. I feel we should copy the
kernel list because we don't think the current behavior is the
desirable one.

Below is some discussion Oliver and I have had about it.

> > Sorry for taking up your time. I saw your emails recently to the Linux
> > kernel mailing list concerning IDE host protected areas. You were
> > asking why they are unconditionally disabled. Did anyone ever give
> > you a good response to your question?
> >
>
> Hi Greg,
>
> Alan Cox answered, but he focussed entirely on the point that in his opinion,
> the main reason for using HPAs is something like backward-compatibility of
> the drive with old BIOSses that have problems with large disks.
>
> But to be honest, I have never ever heard about that being a motivation to use
> an HPA. And as far as I know, that was not the reason for introducing an HPA
> anyway.
>
> As far as I know, some HW vendors store some diagnostic tools in an HPA.
>
> > I have found a bug where my BIOS is storing some RAID metadata near
> > the end of a disk. The problem i run into is that the end of the disk
> > is 20MB off when Linux counts the HPA.
> >
>
> So you are sure that your RAID controller uses an HPA to store the metadata? I
> am asking because some RAID controllers simply cut away a moderate region
> from the end of the disks and present the OS with a smaller disk, which is
> but a virtual one. In that case, no HPA is used. It is rather like the MD
> driver works.

My RAID controller isn't using an HPA to store metadata. It's simply
recognizing that there is an HPA and reading its 63 sector backwards
offset starting at totalSectors-sizeOfHPA.

> But of course, the Linux kernel simply shows whether an HPA is used or not.

Right. I get the output at bootup time. It reads that the HPA is
20MB. Which is exactly the size of how far off the metadata is in
Linux (once the HPA is disabled).

> > Have you heard of any kernel parameters that disable the HPA disabling?
> >
>
> There is no runtime variable, the code is run unconditionally, unfortunately.

I've found where the code is and it'd be a simple hack to fix it and
recompile, but I'm concerned that other people will run into this at
some point. I think we or the people who make decisions ought to
revisit the disabling of HPAs idea.

> > Thanks for your time,
> > Greg Felix
>
> Not at all! Should we CC the mail the kernel mailing list?

I think we should. In fact, I will with this email.

> Best regards
>
> Oliver