Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Sep 2002 22:26:00 -0700 (PDT)
From:      Matt Jacob <mjacob@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/mpt mpt_freebsd.c
Message-ID:  <200209230526.g8N5Q01C024544@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
mjacob      2002/09/22 22:26:00 PDT

  Modified files:
    sys/dev/mpt          mpt_freebsd.c 
  Log:
  Wads more cleanup...
  
  In mpttimeout, call mpt_intr just on the offchance that we missed
  an interrupt. We can check to see whether or not the command that
  is timing out got completed.
  
  When we *do* decide to timeout a command, set the command state to
  REQ_TIMEOUT and then invoke another timeout (hz/10)- mpttimeout2.
  This allows us to catch a couple cases we've seen where the command
  we timed out on in fact is ready to be completed by the firmware.
  In any case, it's only after mpttimeout2 is called that we actually
  take down the private state and free the request itself. CAM has
  been notified in mpttimeout anyway. This whole area should be redone,
  but that will take 105% of my available game time for this month.
  
  Fix a couple of missing (and not useful, at presnet) CAMLOCK_2_MPTLOCK
  and MPTLOCK_2_CAMLOCK locations.
  
  Split mpt_notify into mpt_ctlop, which handles all reply completions
  that have 0x800000000 or'd into the ContextID. This function can, in
  fact, call mpt_event_notify_reply, which handles the traditional
  async event notifications. While we're at it, put in the extremely
  important (but currently untested) code that send back an Ack to
  an Event Notification (if the Event Notification is marked with
  AckRequired). Note that an Ack also generates another ctlop completion,
  tra la.
  
  Fix up mpt_done substantially to try and get how we plug into CAM
  correctly done. Remove bogus CAM_RELEASE_SIMQ settings.
  
  Do some cleanups in mpt_action that are related to speed negotiation
  for Ultra4 cards. This is an area that is still quite fragile and
  worrisome as config data being read back often doesn't make sense or
  jibe with the documentation.
  
  At any rate, after these changes were done, I was finally able to
  get Lars Eggert's dual 320M disk system to stay up under load all
  weekend- hopefully we're in good enough for now shape.
  
  MFC after:      1 week
  
  Revision  Changes    Path
  1.5       +233 -176  src/sys/dev/mpt/mpt_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?200209230526.g8N5Q01C024544>