Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 2000 12:31:03 -0700 (PDT)
From:      Matt Jacob <mjacob@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/isp isp_freebsd.c
Message-ID:  <200006271931.MAA51908@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
mjacob      2000/06/27 12:31:03 PDT

  Modified files:
    sys/dev/isp          isp_freebsd.c 
  Log:
  Add in the enabling of interrupts (to isp_attach). Clean up a busted
  comment. Check against firmware state- not loop state when enabling
  target mode. Other changes have to do with no longer enabling/disabling
  interrupts at will.
  
  Rearchitect command watchdog timeouts-
  
  First of all, set the timeout period for a command that has a
  timeout (in isp_action) to the period of time requested *plus* two
  seconds. We don't want the Qlogic firmware and the host system to
  race each other to report a dead command (the watchdog is there to
  catch dead and/or broken firmware).
  
  Next, make sure that the command being watched isn't done yet. If
  it's not done yet, check for INT_PENDING and call isp_intr- if that
  said it serviced an interrupt, check to see whether the command is
  now done (this is what the "IN WATCHDOG" private flag is for- if
  isp_intr completes the command, it won't call xpt_done on it because
  isp_watchdog is still looking at the command).
  
  If no interrupt was pending, or the command wasn't completed, check
  to see if we've set the private 'grace period' flag. If so, the
  command really *is* dead, so report it as dead and complete it with
  a CAM_CMD_TIMEOUT value.
  
  If the grace period flag wasn't set, set it and issue a SYNCHRONIZE_ALL
  Marker Request Queue entry and re-set the timeout for one second
  from now (see Revision 1.45 isp.c notes for more on this) to give
  the firmware a final chance to complete this command.
  
  Revision  Changes    Path
  1.39      +94 -35    src/sys/dev/isp/isp_freebsd.c



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006271931.MAA51908>