• Tejun Heo's avatar
    libata: improve probe failure handling · c2c7a89c
    Tejun Heo authored
    When link is flaky at high speed, it isn't uncommon for a device to
    repeatedly fail probing sequence early after successfully negotiating
    high link speed.  This often leads to consecutive hotplug events
    without successful probing.
    
    This patch improves libata EH such that it remembers probing trials
    and if there have been more than two unsuccessful trials in the past
    60 seconds, slows down link speed to 1.5Gbps.
    
    As link speed negotiation is the duty of the PHY layer proper, the
    goal of this fallback mechanism is to provide the last resort when
    everything else fails, which unfortunately happens not too
    infrequently, so no fancy 6->3->1.5 speeding down or highest
    successful transmission speed seen kind of logics (yet).
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    c2c7a89c
libata-eh.c 88.8 KB