[PATCHSET] libata: reimplement reset sequencing

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

 



Hello,

Currently reset is driven by ata_eh_reset().  Reset can be tried upto
ATA_EH_RESET_TRIES times and each reset try can take a very long time
- several minutes under certain circumstances.

For boot and loading detections, the initial reset succeeds most of
the time.  However, after errors and hotplugging events, controllers
and devices show widely different behaviors.  For hotplugs, we rely
heavily on the wait performed in ->prereset().  For other error
conditions, we just take long time if things don't succeed at the
first try.

This patchset reimplements reset sequencing such that resets are
retried with more reasonable timing while not upsetting devices too
much with frequent resets.  e.g. spinup wait is completely replaced by
carefully spaced reset tries.

ATA controllers and devices vary greatly in how they behave when
things are not normal.  It's just not scaleable to try to fine-tune
each LLD's reset methods such that the initial try succeeds most of
the time (because failure takes too long).  This patchset allows LLDs
with good enough reset methods which may fail occasionally to work
well enough.

I've tested the change on about a dozen controllers with more than a
dozen ATA/ATAPI devices.  The result was very positive.  It was not
optimal on all of the cases but all were definitely acceptable (maybe
5s to 15s longer than optimal).

Combined with posted timeout adjustment and speed down improvement,
this should make libata EH behave much better.

This patchset is against

upstream (eb0e63cca36a3389f0ccab4584f6d479b983fad5)
+ [1] pata_platform-fix-devres-conversion
+ [2] libata-convert-to-iomap
+ [3] put-some-intelligence-into-speeddown patchset
+ [4] add-150ms-between-completion-of-hardreset-and-status-checking
+ [5] sata_inic162x-fix-a-few-glitches-in-hardreset

Thanks.

--
tejun

[1] http://article.gmane.org/gmane.linux.kernel/488509
[2] sorry, no archive, message was too large
[3] http://thread.gmane.org/gmane.linux.ide/15596
[4] http://article.gmane.org/gmane.linux.ide/15582
[5] http://article.gmane.org/gmane.linux.ide/15583


-
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