lkml.org 
[lkml]   [2009]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCHSET] block,scsi,libata: implement alt_size
Tejun Heo wrote:
> Hello,
>
> This patchset implements alt_size, which is a size hint to the users
> of a block device. It's primarily to communicate the BIOS (HPA) size
> on ATA devices to userland, so that dmraid can consider it when trying
> to figure out BIOS raid layout. This is critical as dmraid can be
> tricked into assemblying the wrong raid when fed with the unlocked
> size and if the disk content is right (or, rather, wrong) and good
> number of distros are shipping with ignore_hpa=1 as default.
>
> This patch contains the following three patches.
>
> 0001-block-add-alt_size.patch
> 0002-scsi-add-scsi_device-alt_capacity.patch
> 0003-libata-export-HPA-size-as-alt_size.patch
>
> Without the above three patches, I get the following on my nv RAID-0
> if HPA unlocking is turned on.
>
> # ~/work/dmraid/tools/dmraid -a y
> RAID set "nvidia_djgdjigi" was activated
> # mount /dev/dm-0 /mnt/tmp
> mount: wrong fs type, bad option, bad superblock on /dev/dm-0,
> missing codepage or helper program, or other error
> In some cases useful info is found in syslog - try
> dmesg | tail or so
>
> With the above three patches and modified dmraid,
>
> ck804:~/os/work/build # ~/work/dmraid/tools/dmraid -a y -v -v -v
> ...
> NOTICE: /dev/sdb: using BIOS sectors 234439535
> RAID set "nvidia_djgdjigi" was activated
> ...
> ck804:~/os/work/build # mount /dev/dm-0 /mnt/tmp
> ck804:~/os/work/build # umount /dev/dm-0
>
> Any ideas on through which tree this should be pushed? I'll post
> dmraid patches as a reply to this thread for reference.
>
> Thanks.
>
> This patchset is against the current linus#master[1] and contains the
> following changes.
>
> block/genhd.c | 26 ++++++++++++++++++++++++++
> drivers/ata/libata-core.c | 2 ++
> drivers/ata/libata-scsi.c | 2 ++
> drivers/scsi/sd.c | 1 +
> include/linux/genhd.h | 13 ++++++++++++-
> include/linux/libata.h | 1 +
> include/scsi/scsi_device.h | 1 +
> 7 files changed, 45 insertions(+), 1 deletion(-)

<shrug> I suppose...

It just seems like a nasty hack, but unfortunately I don't see anyone
stepping up to do it properly -- with a DM device automatically layered
on top that splits the device into separate regions: one block device
for the 'regular' area, and one for the HPA.

Jeff




\
 
 \ /
  Last update: 2009-04-30 03:49    [W:0.262 / U:1.964 seconds]
©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site