1. 05 Jun, 2015 1 commit
    • Keith Busch's avatar
      NVMe: add sysfs and ioctl controller reset · 4cc06521
      Keith Busch authored
      We need the ability to perform an nvme controller reset as discussed on
      the mailing list thread:
      
        http://lists.infradead.org/pipermail/linux-nvme/2015-March/001585.html
      
      This adds a sysfs entry that when written to will reset perform an NVMe
      controller reset if the controller was successfully initialized in the
      first place.
      
      This also adds locking around resetting the device in the async probe
      method so the driver can't schedule two resets.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Cc: Brandon Schultz <brandon.schulz@hgst.com>
      Cc: David Sariel <david.sariel@pmcs.com>
      
      Updated by Jens to:
      
      1) Merge this with the ioctl reset patch from David Sariel. The ioctl
         path now shares the reset code from the sysfs path.
      
      2) Don't flush work if we fail issuing the reset.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      4cc06521
  2. 02 Jun, 2015 2 commits
    • Akinobu Mita's avatar
      null_blk: restart request processing on completion handler · 8b70f45e
      Akinobu Mita authored
      When irqmode=2 (IRQ completion handler is timer) and queue_mode=1
      (Block interface to use is rq), the completion handler should restart
      request handling for any pending requests on a queue because request
      processing stops when the number of commands are queued more than
      hw_queue_depth (null_rq_prep_fn returns BLKPREP_DEFER).
      
      Without this change, the following command cannot finish.
      
      	# modprobe null_blk irqmode=2 queue_mode=1 hw_queue_depth=1
      	# fio --name=t --rw=read --size=1g --direct=1 \
      	  --ioengine=libaio --iodepth=64 --filename=/dev/nullb0
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Jens Axboe <axboe@fb.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      8b70f45e
    • Akinobu Mita's avatar
      null_blk: prevent timer handler running on a different CPU where started · 419c21a3
      Akinobu Mita authored
      When irqmode=2 (IRQ completion handler is timer), timer handler should
      be called on the same CPU where the timer has been started.
      
      Since completion_queues are per-cpu and the completion handler only
      touches completion_queue for local CPU, we need to prevent the handler
      from running on a different CPU where the timer has been started.
      Otherwise, the IO cannot be completed until another completion handler
      is executed on that CPU.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Jens Axboe <axboe@fb.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      419c21a3
  3. 01 Jun, 2015 3 commits
    • Keith Busch's avatar
      NVMe: Remove hctx reliance for multi-namespace · 42483228
      Keith Busch authored
      The driver needs to track shared tags to support multiple namespaces
      that may be dynamically allocated or deleted. Relying on the first
      request_queue's hctx's is not appropriate as we cannot clear outstanding
      tags for all namespaces using this handle, nor can the driver easily track
      all request_queue's hctx as namespaces are attached/detached. Instead,
      this patch uses the nvme_dev's tagset to get the shared tag resources
      instead of through a request_queue hctx.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      42483228
    • Jens Axboe's avatar
      843e8ddb
    • Keith Busch's avatar
      blk-mq: Shared tag enhancements · f26cdc85
      Keith Busch authored
      Storage controllers may expose multiple block devices that share hardware
      resources managed by blk-mq. This patch enhances the shared tags so a
      low-level driver can access the shared resources not tied to the unshared
      h/w contexts. This way the LLD can dynamically add and delete disks and
      request queues without having to track all the request_queue hctx's to
      iterate outstanding tags.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      f26cdc85
  4. 29 May, 2015 4 commits
  5. 26 May, 2015 1 commit
  6. 22 May, 2015 12 commits
  7. 20 May, 2015 9 commits
  8. 19 May, 2015 6 commits
  9. 18 May, 2015 2 commits