Re: Power-Up In Standby & Hitachi Deskstar 5K3000 drives

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

 



I didn't hear back from anyone on this and am replying to give it a second chance.... If this is not the right mailing list for questions like this please let me know and I will move the discussion elsewhere.

Thanks,
Tim

On Sep 8, 2011, at 8:35 PM, Tim Nufire wrote:

> Hello,
> 
> A quick update on this... With the help of Mark Lord from the hdparm team I found the following code in libata-core.c which should do what I need:
> 
>      if (!tried_spinup && (id[2] == 0x37c8 || id[2] == 0x738c)) {
>              tried_spinup = 1;
>              /*
>               * Drive powered-up in standby mode, and requires a specific
>               * SET_FEATURES spin-up subcommand before it will accept
>               * anything other than the original IDENTIFY command.
>               */
>              err_mask = ata_dev_set_feature(dev, SETFEATURES_SPINUP, 0);
>              if (err_mask && id[2] != 0x738c) {
>                      rc = -EIO;
>                      reason = "SPINUP failed";
>                      goto err_out;
>              }
>              /*
>               * If the drive initially returned incomplete IDENTIFY info,
>               * we now must reissue the IDENTIFY command.
>               */
>              if (id[2] == 0x37c8)
>                      goto retry;
>      }
> 
> I've verified that this is in 2.6.32 but it isn't working on my system which uses Silicon Image port multipliers to connect 45 drives. On a hunch, I downgraded to Debian 4 with 2.6.26 and everything working as expected... This means that either something broke between 2.6.26 and 2.6.32 *or* the Debian team is compiling the kernel without support for this. 
> 
> Does anyone have a guess as to what's going on here?
> 
> Thanks!
> 
> Tim
> 
> 
> On Sep 1, 2011, at 2:34 PM, Tim Nufire wrote:
> 
>> Hello,
>> 
>> I'm using 3TB Hitachi Deskstar 5K3000 drives in a custom 45 drive high density enclosure (http://blog.backblaze.com/2011/07/20/petabytes-on-a-budget-v2-0revealing-more-secrets) and need to limit the inrush current at startup by stagger the drive spin-up. Since I can't control drive power through by backplanes, the best way to do this appears to be by enabling the Power-Up In Standby feature on the drives via 'hdparm -s1'. Unfortunately this is not working for me....
>> 
>> I believe the problem I'm having is that the Hitachi Deskstar 5K3000 drives require a SET FEATURES subcommand to spin-up to active state when the device has powered-up into Standby. I'm getting this from section 9.1 in the following spec:
>> 
>> http://www.hitachigst.com/tech/techlib.nsf/techdocs/FFDF1FA949853DBD8825785A005CBC55/$file/DS5K3000_US5K3000_OEMSpecRev1.1.pdf
>> 
>> Section 4.17 in the ATA spec that I found at http://t13.org/Documents/UploadedDocuments/docs2006/D1699r3f-ATA8-ACS.pdf says the following:
>> 
>>  A device may implement a SET FEATURES subcommand that notifies the device to spin-up to the Active state when the 
>>  device has powered-up into Standby. If the device implements this SET FEATURES subcommand and power-up into Standby 
>>  is enabled, the device shall remain in Standby until the SET FEATURES subcommand is received. If the device implements 
>>  this SET FEATURES subcommand, the fact that the feature is implemented is reported in the IDENTIFY DEVICE or IDENTIFY 
>>  PACKET DEVICE data.
>>  .
>>  .
>>  .
>>  If the device does not implement the SET FEATURES subcommand to spin-up the device after power-up and power-up into 
>>  Standby is enabled, the device shall spin-up upon receipt of the first command that requires the device to access the 
>>  media.
>> 
>> Section 7.47.8 then says:
>> 
>>  Subcommand code 07h shall cause a device that has powered-up into Standby to go to the Active state (see 4.17 and figure 7).
>> 
>> From this I'm concluding the following:
>> 
>> 1) Not all drives require the spin up subcommand which explains why this works for some drives
>> 
>> 2) Our Hitachi drives require this command and the libATA drivers don't appear to support it
>> 
>> Is this right? If so, is there a reason why the libATA does not support this feature? I'm running Debian 5 with a 2.6.32 kernel... Has this been implemented upstream? Would this be a feature hard to add/backport? 
>> 
>> Thanks,
>> Tim--
>> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux