1. 01 Jul, 2002 1 commit
    • Matthew Wilcox's avatar
      [PATCH] softscsi patch · aa44f80a
      Matthew Wilcox authored
      Doug Gilbert and James Bottomley hassled me all through KernelSummit &
      OLS to explain about softirqs, tasklets and bottom halves.  In the end,
      it was easier to write the code myself.  Thanks to James for pointing
      out that the pointer handling in my original code was completely broken
      and helping me debug.
      
      I've booted this patch on a 4-way system at OSDL with two Adaptec SCSI
      cards.  I haven't tried stressing it (not quite sure which discs I can
      use ;-), and I don't understand the locking in the scsi subsystem at all.
      
      The main effect of applying this patch is that scsi_softirq() [was
      scsi_tasklet_func, and before that scsi_bottom_half_handler()] can now be
      run on multiple CPUs at the same time.  We _seem_ to do enough locking
      elsewhere in the SCSI stack that this is safe.  But someone who really
      understands the SCSI stack should audit this.
      
      This work shows up a hole in the current softirq API -- there's no support
      for unregistering a softirq (close_softirq or similar).  We should do
      this in scsi_exit -- make sure no softirqs are running while we unload.
      This probably isn't a problem in practice, but it'd be nice to fix it.
      aa44f80a
  2. 20 Jun, 2002 39 commits