1. 14 Jul, 2008 5 commits
    • Kristen Carlson Accardi's avatar
      libata/ahci: enclosure management support · 18f7ba4c
      Kristen Carlson Accardi authored
      Add Enclosure Management support to libata and ahci.
      Signed-off-by: default avatarKristen Carlson Accardi <kristen.c.accardi@intel.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      18f7ba4c
    • Tejun Heo's avatar
      libata: improve EH internal command timeout handling · 87fbc5a0
      Tejun Heo authored
      ATA_TMOUT_INTERNAL which was 30secs were used for all internal
      commands which is way too long when something goes wrong.  This patch
      implements command type based stepped timeouts.  Different command
      types can use different timeouts and each command type can use
      different timeout values after timeouts.
      
      ie. the initial timeout is set to a value which should cover most of
      the cases but not too long so that run away cases don't delay things
      too much.  After the first try times out, the second try can use
      longer timeout and if that one times out too, it can go for full 30sec
      timeout.
      
      IDENTIFYs use 5s - 10s - 30s timeout and all other commands use 5s -
      10s timeouts.
      
      This patch significantly cuts down the needed time to handle failure
      cases while still allowing libata to work with nut job devices through
      retries.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      87fbc5a0
    • Tejun Heo's avatar
      libata: use ULONG_MAX to terminate reset timeout table · d8af0eb6
      Tejun Heo authored
      This doesn't introduce any functional changes.  This is to make reset
      timeout table consistent with to-be-added command timeout tables.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      d8af0eb6
    • Tejun Heo's avatar
      libata: improve EH retry delay handling · 0a2c0f56
      Tejun Heo authored
      EH retries were delayed by 5 seconds to ensure that resets don't occur
      back-to-back.  However, this 5 second delay is superflous or excessive
      in many cases.  For example, after IDENTIFY times out, there's no
      reason to wait five more seconds before retrying.
      
      This patch adds ehc->last_reset timestamp and record the timestamp for
      the last reset trial or success and uses it to space resets by
      ATA_EH_RESET_COOL_DOWN which is 5 secs and removes unconditional 5 sec
      sleeps.
      
      As this change makes inter-try waits often shorter and they're
      redundant in nature, this patch also removes the "retrying..."
      messages.
      
      While at it, convert explicit rounding up division to DIV_ROUND_UP().
      
      This change speeds up EH in many cases w/o sacrificing robustness.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      0a2c0f56
    • Tejun Heo's avatar
      libata: consistently use msecs for time durations · 341c2c95
      Tejun Heo authored
      libata has been using mix of jiffies and msecs for time druations.
      This is getting confusing.  As writing sub HZ values in jiffies is
      PITA and msecs_to_jiffies() can't be used as initializer, unify unit
      for all time durations to msecs.  So, durations are in msecs and
      deadlines are in jiffies.  ata_deadline() is added to compute deadline
      from a start time and duration in msecs.
      
      While at it, drop now superflous _msec suffix from arguments and
      rename @timeout to @deadline if it represents a fixed point in time
      rather than duration.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      341c2c95
  2. 13 Jul, 2008 6 commits
  3. 12 Jul, 2008 17 commits
  4. 11 Jul, 2008 12 commits