1. 01 6月, 2015 1 次提交
    • S
      hpsa: add masked physical devices into h->dev[] array · 41ce4c35
      Stephen Cameron 提交于
      Cache the ioaccel handle so that when we need to abort commands sent
      down the ioaccel2 path, we can look up the LUN ID in h->dev[] instead of
      having to do I/O to the controller.
      
      Add a field to elements in h->dev[] to keep track of how the device is exposed
      to the SCSI mid layer: Not at all, without an upper level driver
      (no_uld_attach) or normally exposed.
      
      Since masked physical devices are now present in h->dev[] array
      it would be perfectly possible to do
      
      	echo scsi add-single-device 2 2 0 0 > /proc/scsi/scsi
      
      and bring them online.  This was previously not allowed for masked
      physical devices.
      
      Ensure that the mapping of physical disks to logical drives gets updated in a
      consistent way when a RAID migration occurs and is not touched until updates
      to it are complete.
      
      now instead of doing CISS_REPORT_PHYSICAL to get the LUNID for
      the physical disk in hpsa_get_pdisk_of_ioaccel2(), just get
      it out of h->dev[] where we already have it cached.
      
      do not touch phys_disk[] for ioaccel enabled logical drives during rescan
      Reviewed-by: NScott Teel <scott.teel@pmcs.com>
      Reviewed-by: NKevin Barnett <kevin.barnett@pmcs.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Reviewed-by: NHannes Reinecke <hare@Suse.de>
      Signed-off-by: NDon Brace <don.brace@pmcs.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
      41ce4c35
  2. 03 2月, 2015 13 次提交
  3. 20 11月, 2014 2 次提交
  4. 02 6月, 2014 6 次提交
  5. 20 5月, 2014 1 次提交
  6. 16 3月, 2014 14 次提交
  7. 20 12月, 2013 1 次提交
  8. 19 12月, 2013 2 次提交
    • S
      [SCSI] hpsa: prevent stalled i/o · 396883e2
      Stephen M. Cameron 提交于
      If a fifo full condition is encountered, i/o requests will stack
      up in the h->reqQ queue.  The only thing which empties this queue
      is start_io, which only gets called when new i/o requests come in.
      If none are forthcoming, i/o in h->reqQ will be stalled.
      
      To fix this, whenever fifo full condition is encountered, this
      is recorded, and the interrupt handler examines this to see
      if a fifo full condition was recently encountered when a
      command completes and will call start_io to prevent i/o's in
      h->reqQ from getting stuck.
      
      I've only ever seen this problem occur when running specialized
      test programs that pound on the the CCISS_PASSTHRU ioctl.
      Signed-off-by: NStephen M. Cameron <scameron@beardog.cce.hp.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      396883e2
    • S
      [SCSI] hpsa: cap CCISS_PASSTHRU at 20 concurrent commands. · 0390f0c0
      Stephen M. Cameron 提交于
      Cap CCISS_BIG_PASSTHRU as well.  If an attempt is made
      to exceed this, ioctl() will return -1 with errno == EAGAIN.
      
      This is to prevent a userland program from exhausting all of
      pci_alloc_consistent memory.  I've only seen this problem when
      running a special test program designed to provoke it.  20
      concurrent commands via the passthru ioctls (not counting SG_IO)
      should be more than enough.
      Signed-off-by: NStephen M. Cameron <scameron@beardog.cce.hp.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      0390f0c0