Re: Linux Software RAID is really RAID?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2007/7/4, Mark Lord <liml@xxxxxx>:
Tejun Heo wrote:
> Mark Lord wrote:
>> I believe he said it was ICH5 (different post/thread).
>>
>> My observation on ICH5 is that if one unplugs a drive,
>> then the chipset/cpu locks up hard when toggling SRST
>> in the EH code.
>>
>> Specifically, it locks up at the instruction
>> which restores SRST back to the non-asserted state,
>> which likely corresponds to the chipset finally actually
>> sending a FIS to the drive.
>>
>> A hard(ware) lockup, not software.
>> That's why Intel says ICH5 doesn't do hotplug.
>
> OIC.  I don't think there's much left to do from the driver side then.
> Or is there any workaround?

The workaround I have, for 2.6.18.8, is to provide an "offline()" method
for ICH5 that polls for device present before attempting SRST.

I hope to eventually clean this up and submit it for you,
after your existing polling-hp code goes upstream.

Here's my present hack (below).  Feel free to use/ignore.

***

Implement ICH5 chipset handling for drive hot insertion/removal.
This cannot go upstream, as it conflicts with a more generic
polled-hotplug framework that is currently in development.

Hot-inserted drives are automatically detected within a second or two,
and are ready-to-use within 30 seconds or so.

Hot-removed drives are *not* noticed by the kernel until the next
time they are accessed.  If you want this to happen quickly,
then just launch a script like this from /etc/inittab at boot time:

   #!/bin/bash
   ( while ( /bin/true ) ; do /sbin/hdparm -C /dev/sd[a-z] ; sleep 5 ; done ) &>/dev/null &

Signed-off-by: Mark Lord <mlord@xxxxxxxxx>
---


Hello,
Thanks this patch work in my case after unplug-in my hard drive.
But the situation is strange.
The first time it functioned fine and i get this messages :
[  290.452296] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
[  290.452378] ata2.00: tag 0 cmd 0xea Emask 0x4 stat 0x40 err 0x0 (timeout)
[  290.452635] ata2 (port 1): status=d0 pcs=0x0013 offline=1 delay=100 usecs
[  290.452697] ata2: soft resetting port
[  290.452787] ata2: SATA link down (SStatus 0 SControl 0)
[  290.463065] ATA: abnormal status 0x7F on port 0xCCA7
[  290.463154] ata2: EH complete
[  290.463224] sd 1:0:0:0: SCSI error: return code = 0x00040000
[  290.463286] end_request: I/O error, dev sdb, sector 156248058
[  290.463362] raid1: Disk failure on sdb2, disabling device.
[  290.463365]  Operation continuing on 1 devices
[  290.465590] RAID1 conf printout:
[  290.465651]  --- wd:1 rd:2
[  290.465710]  disk 0, wo:0, o:1, dev:sda3
[  290.465767]  disk 1, wo:1, o:0, dev:sdb2
[  290.480225] RAID1 conf printout:
[  290.480281]  --- wd:1 rd:2
[  290.480370]  disk 0, wo:0, o:1, dev:sda3
[  290.619960] ata2: pcs_hotplug_poll: old=0033 new=0013
[  290.620045] ata2: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0x2 frozen
[  290.620114] ata2: (hotplug event)
[  290.620178] ata2: soft resetting port
[  290.620242] ata2: SATA link down (SStatus 0 SControl 0)
[  290.630518] ATA: abnormal status 0x7F on port 0xCCA7
[  290.630588] ata2: EH complete
[  290.630652] ata2.00: detaching (SCSI 1:0:0:0)

But with a second try when i unplug the disk (with the while loop in
background task) the unplug function wad not started, i need to change
the partition table with fdisk to get the disk offline :
[  397.764666] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
[  397.770229] ata2.00: (BMDMA stat 0x21)
[  397.775771] ata2.00: tag 0 cmd 0xc8 Emask 0x4 stat 0x40 err 0x0 (timeout)
[  397.781502] ata2 (port 1): status=d0 pcs=0x0013 offline=1 delay=100 usecs
[  397.787046] ata2: soft resetting port
[  397.792614] ata2: SATA link up <unknown> (SStatus 0 SControl 0)
[  397.808327] ATA: abnormal status 0x7F on port 0xCCA7
[  397.813910] ata2: EH complete
[  397.819501] sd 1:0:0:0: SCSI error: return code = 0x00040000
[  397.825049] end_request: I/O error, dev sdb, sector 32
[  397.830613] Buffer I/O error on device sdb, logical block 4
[  397.836177] Buffer I/O error on device sdb, logical block 5
[  397.841748] Buffer I/O error on device sdb, logical block 6
[  397.847315] Buffer I/O error on device sdb, logical block 7
[  397.852874] Buffer I/O error on device sdb, logical block 8
[  397.858440] Buffer I/O error on device sdb, logical block 9
[  397.864021] Buffer I/O error on device sdb, logical block 10
[  397.869579] Buffer I/O error on device sdb, logical block 11
[  397.875177] sd 1:0:0:0: SCSI error: return code = 0x00040000
[  397.880734] end_request: I/O error, dev sdb, sector 0
[  397.886312] Buffer I/O error on device sdb, logical block 0
[  397.891889] lost page write due to I/O error on sdb
[  398.283654] ata2: pcs_hotplug_poll: old=0033 new=0013
[  398.289250] ata2: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0x2 frozen
[  398.294843] ata2: (hotplug event)
[  398.300433] ata2: soft resetting port
[  398.305997] ata2: SATA link up <unknown> (SStatus 0 SControl 0)
[  398.321732] ATA: abnormal status 0x7F on port 0xCCA7
[  398.327329] ata2: EH complete
[  398.332904] ata2.00: detaching (SCSI 1:0:0:0)

Before i do the change in the partition table my system was normal,
and a fdisk -l /dev/sdb give me the right table (but my disk was
disconnected ...).

Thanks for paying attention of my problem :)
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux