Re: Linux libata, Sil3124, and SATA staggered spin-up support

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

 



In message <461C9AB2.9070807@xxxxxxxxx>, you write:
>Yeah, the silicon can do staggered spin up.  SATA disks shouldn't spin
>up till PHY gets reset.  libata currently probes each port serially, so
>it should sequentially spin up each drive.  Or do they spin up during
>controller initialization?

  On a cold boot, if I disable the BIOS, all of the drives begin their spin up
at once (or so close to not be staggered). It appears to be happenning in
sil24_init_controller(), where it loops through all ports and resets the PHYs.

  So it appears that the control flow there would need to be changed so that
we go all the way to having libata identify port 1 before we go back and
initialize the PHY for port 2.

  If I put all the drives into suspend mode (hdparm -z) and warm reboot, the
drives are spun up in libata's ata_device_add(). In the second loop, the
drives are all spun up, then in the third loop they're identified. In this
case a simple change to combine loops 2 ("probe begin") & 3 ("host probe
begin") in order that they happen more serially seemed to cause a resonable
staggerring behavior to happen. On my drives, the identify commands seemed to
complete a bit before the drives were finished spinning up, so there was still
some overlap in power draw, but over a large population of drives this
shouldn't be a big deal.

  I don't have any port multipliers handy to play with, but I expect that they
make this problem a bit more complex and require some thinking about.

									-Craig
-
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