Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 May 2001 14:20:44 -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_ioctl.h isp.c isp_freebsd.c isp_freebsd.h isp_pci.c isp_target.c isp_target.h isp_tpublic.h ispvar.h
Message-ID:  <200105282120.f4SLKiO12177@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
mjacob      2001/05/28 14:20:44 PDT

  Modified files:
    sys/dev/isp          isp.c isp_freebsd.c isp_freebsd.h 
                         isp_pci.c isp_target.c isp_target.h 
                         isp_tpublic.h ispvar.h 
  Added files:
    sys/dev/isp          isp_ioctl.h 
  Log:
  Spring MegaChange #1.
  
  ----
  
  Make a device for each ISP- really usable only with devfs and add an ioctl
  entry point (this can be used to (re)set debug levels, reset the HBA,
  rescan the fabric, issue lips, etc).
  
  ----
  
  Add in a kernel thread for Fibre Channel cards. The purpose of this
  thread is to be woken up to clean up after Fibre Channel events
  block things.  Basically, any FC event that casts doubt on the
  location or identify of FC devices blocks the queues. When, and
  if, we get the PORT DATABASE CHANGED or NAME SERVER DATABASE CHANGED
  async event, we activate the kthread which will then, in full thread
  context, re-evaluate the local loop and/or the fabric. When it's
  satisfied that things are stable, it can then release the blocked
  queues and let commands flow again.
  
  The prior mechanism was a lazy evaluation. That is, the next command
  to come down the pipe after change events would pay the full price
  for re-evaluation. And if this was done off of a softcall, it really
  could hang up the system.
  
  These changes brings the FreeBSD port more in line with the Solaris,
  Linux and NetBSD ports. It also, more importantly, gets us being
  more proactive about topology changes which could then be reflected
  upwards to CAM so that the periph driver can be informed sooner
  rather than later when things arrive or depart.
  
  ---
  
  Add in the (correct) usage of locking macros- we now have lock transition
  macros which allow us to transition from holding the CAM lock (Giant)
  and grabbing the softc lock and vice versa. Switch over to having this
  HBA do real locking. Some folks claim this won't be a win. They're right.
  But you have to start somewhere, and this will begin to teach us how
  to DTRT for HBAs, etc.
  
  --
  
  Start putting in prototype 2300 support.  Add back in LIP
  and Loop Reset as async events that each platform will handle.
  Add in another int_bogus instrumentation point.
  
  Do some more substantial target mode cleanups.
  
  MFC after:	8 weeks
  
  Revision  Changes    Path
  1.65      +11 -8     src/sys/dev/isp/isp.c
  1.63      +377 -111  src/sys/dev/isp/isp_freebsd.c
  1.50      +19 -41    src/sys/dev/isp/isp_freebsd.h
  1.68      +39 -34    src/sys/dev/isp/isp_pci.c
  1.16      +28 -57    src/sys/dev/isp/isp_target.c
  1.14      +8 -4      src/sys/dev/isp/isp_target.h
  1.6       +3 -2      src/sys/dev/isp/isp_tpublic.h
  1.43      +12 -6     src/sys/dev/isp/ispvar.h


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?200105282120.f4SLKiO12177>