1. 09 Jan, 2019 1 commit
  2. 16 Dec, 2018 2 commits
  3. 10 Dec, 2018 2 commits
  4. 04 Dec, 2018 1 commit
  5. 01 Dec, 2018 1 commit
  6. 29 Nov, 2018 2 commits
  7. 26 Nov, 2018 3 commits
  8. 20 Nov, 2018 4 commits
  9. 16 Nov, 2018 1 commit
  10. 15 Nov, 2018 4 commits
  11. 14 Nov, 2018 1 commit
    • Ming Lei's avatar
      SCSI: fix queue cleanup race before queue initialization is done · 8dc765d4
      Ming Lei authored
      c2856ae2 ("blk-mq: quiesce queue before freeing queue") has
      already fixed this race, however the implied synchronize_rcu()
      in blk_mq_quiesce_queue() can slow down LUN probe a lot, so caused
      performance regression.
      
      Then 1311326c ("blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()")
      tried to quiesce queue for avoiding unnecessary synchronize_rcu()
      only when queue initialization is done, because it is usual to see
      lots of inexistent LUNs which need to be probed.
      
      However, turns out it isn't safe to quiesce queue only when queue
      initialization is done. Because when one SCSI command is completed,
      the user of sending command can be waken up immediately, then the
      scsi device may be removed, meantime the run queue in scsi_end_request()
      is still in-progress, so kernel panic can be caused.
      
      In Red Hat QE lab, there are several reports about this kind of kernel
      panic triggered during kernel booting.
      
      This patch tries to address the issue by grabing one queue usage
      counter during freeing one request and the following run queue.
      
      Fixes: 1311326c ("blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()")
      Cc: Andrew Jones <[email protected]>
      Cc: Bart Van Assche <[email protected]>
      Cc: [email protected]
      Cc: Martin K. Petersen <[email protected]>
      Cc: Christoph Hellwig <[email protected]>
      Cc: James E.J. Bottomley <[email protected]>
      Cc: stable <[email protected]>
      Cc: jianchao.wang <[email protected]>
      Signed-off-by: default avatarMing Lei <[email protected]>
      Signed-off-by: default avatarJens Axboe <[email protected]>
      8dc765d4
  12. 09 Nov, 2018 1 commit
  13. 07 Nov, 2018 9 commits
  14. 02 Nov, 2018 1 commit
  15. 31 Oct, 2018 1 commit
  16. 25 Oct, 2018 1 commit
    • Christoph Hellwig's avatar
      block: add a report_zones method · e76239a3
      Christoph Hellwig authored
      Dispatching a report zones command through the request queue is a major
      pain due to the command reply payload rewriting necessary. Given that
      blkdev_report_zones() is executing everything synchronously, implement
      report zones as a block device file operation instead, allowing major
      simplification of the code in many places.
      
      sd, null-blk, dm-linear and dm-flakey being the only block device
      drivers supporting exposing zoned block devices, these drivers are
      modified to provide the device side implementation of the
      report_zones() block device file operation.
      
      For device mappers, a new report_zones() target type operation is
      defined so that the upper block layer calls blkdev_report_zones() can
      be propagated down to the underlying devices of the dm targets.
      Implementation for this new operation is added to the dm-linear and
      dm-flakey targets.
      Reviewed-by: default avatarHannes Reinecke <[email protected]>
      Signed-off-by: default avatarChristoph Hellwig <[email protected]>
      [Damien]
      * Changed method block_device argument to gendisk
      * Various bug fixes and improvements
      * Added support for null_blk, dm-linear and dm-flakey.
      Reviewed-by: Martin K. Petersen's avatarMartin K. Petersen <[email protected]>
      Reviewed-by: default avatarMike Snitzer <[email protected]>
      Signed-off-by: default avatarDamien Le Moal <[email protected]>
      Signed-off-by: default avatarJens Axboe <[email protected]>
      e76239a3
  17. 20 Oct, 2018 1 commit
  18. 14 Oct, 2018 1 commit
  19. 13 Oct, 2018 1 commit
  20. 26 Sep, 2018 2 commits