cvs commit: src/sys/cam cam_xpt.c

Scott Long scottl at FreeBSD.org
Wed Feb 9 11:44:15 GMT 2005


scottl      2005-02-09 11:44:15 UTC

  FreeBSD src repository

  Modified files:
    sys/cam              cam_xpt.c 
  Log:
  Provide locking for the ccb_bioq.  This allows xpt_done() to be called without
  Giant held.  In camisr(), move the ccb_bioq elements to a temporary local list
  and then process the elements off of that list.  This enables the list to be
  processed by only taking the ccb_bioq_lock once and only for a very short
  time.
  
  ccb_bioq_lock is a leaf mutex, so it's fine to call xpt_done() with other
  locks held.  This is just a very minor step in the work to lock CAM, but
  it allows us to avoid some messy locking/unlock dances in certain drivers.
  
  Revision  Changes    Path
  1.149     +22 -5     src/sys/cam/cam_xpt.c


More information about the cvs-src mailing list