1. 09 11月, 2022 1 次提交
  2. 19 10月, 2022 2 次提交
  3. 30 9月, 2022 1 次提交
  4. 27 9月, 2022 5 次提交
  5. 22 9月, 2022 1 次提交
  6. 19 9月, 2022 2 次提交
  7. 07 9月, 2022 1 次提交
  8. 03 8月, 2022 12 次提交
  9. 26 7月, 2022 1 次提交
  10. 14 7月, 2022 1 次提交
  11. 06 7月, 2022 1 次提交
  12. 29 6月, 2022 1 次提交
    • R
      nvme: fix regression when disconnect a recovering ctrl · f7f70f4a
      Ruozhu Li 提交于
      We encountered a problem that the disconnect command hangs.
      After analyzing the log and stack, we found that the triggering
      process is as follows:
      CPU0                          CPU1
                                      nvme_rdma_error_recovery_work
                                        nvme_rdma_teardown_io_queues
      nvme_do_delete_ctrl                 nvme_stop_queues
        nvme_remove_namespaces
        --clear ctrl->namespaces
                                          nvme_start_queues
                                          --no ns in ctrl->namespaces
          nvme_ns_remove                  return(because ctrl is deleting)
            blk_freeze_queue
              blk_mq_freeze_queue_wait
              --wait for ns to unquiesce to clean infligt IO, hang forever
      
      This problem was not found in older kernels because we will flush
      err work in nvme_stop_ctrl before nvme_remove_namespaces.It does not
      seem to be modified for functional reasons, the patch can be revert
      to solve the problem.
      
      Revert commit 794a4cb3 ("nvme: remove the .stop_ctrl callout")
      Signed-off-by: NRuozhu Li <liruozhu@huawei.com>
      Reviewed-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      f7f70f4a
  13. 28 6月, 2022 2 次提交
  14. 23 6月, 2022 1 次提交
  15. 14 6月, 2022 2 次提交
  16. 31 5月, 2022 1 次提交
    • N
      nvme: set controller enable bit in a separate write · aa41d2fe
      Niklas Cassel 提交于
      The NVM Express Base Specification 2.0 specifies in the description
      of the CC – Controller Configuration register:
      "Host software shall set the Arbitration Mechanism Selected (CC.AMS),
      the Memory Page Size (CC.MPS), and the I/O Command Set Selected (CC.CSS)
      to valid values prior to enabling the controller by setting CC.EN to ‘1’.
      
      While we haven't seen any controller misbehaving while setting all bits
      in a single write, let's do it in the order that it is written in the
      spec, as there could potentially be controllers that are implemented to
      rely on the configuration bits being set before enabling the controller.
      Signed-off-by: NNiklas Cassel <niklas.cassel@wdc.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      aa41d2fe
  17. 28 5月, 2022 1 次提交
  18. 20 5月, 2022 2 次提交
    • K
      nvme: enable uring-passthrough for admin commands · 58e5bdeb
      Kanchan Joshi 提交于
      Add two new opcodes that userspace can use for admin commands:
      NVME_URING_CMD_ADMIN : non-vectroed
      NVME_URING_CMD_ADMIN_VEC : vectored variant
      
      Wire up support when these are issued on controller node(/dev/nvmeX).
      Signed-off-by: NKanchan Joshi <joshi.k@samsung.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Link: https://lore.kernel.org/r/20220520090630.70394-3-joshi.k@samsung.comSigned-off-by: NJens Axboe <axboe@kernel.dk>
      58e5bdeb
    • C
      nvme: set non-mdts limits in nvme_scan_work · 78288665
      Chaitanya Kulkarni 提交于
      In current implementation we set the non-mdts limits by calling
      nvme_init_non_mdts_limits() from nvme_init_ctrl_finish().
      This also tries to set the limits for the discovery controller which
      has no I/O queues resulting in the warning message reported by the
      nvme_log_error() when running blktest nvme/002: -
      
      [ 2005.155946] run blktests nvme/002 at 2022-04-09 16:57:47
      [ 2005.192223] loop: module loaded
      [ 2005.196429] nvmet: adding nsid 1 to subsystem blktests-subsystem-0
      [ 2005.200334] nvmet: adding nsid 1 to subsystem blktests-subsystem-1
      
      <------------------------------SNIP---------------------------------->
      
      [ 2008.958108] nvmet: adding nsid 1 to subsystem blktests-subsystem-997
      [ 2008.962082] nvmet: adding nsid 1 to subsystem blktests-subsystem-998
      [ 2008.966102] nvmet: adding nsid 1 to subsystem blktests-subsystem-999
      [ 2008.973132] nvmet: creating discovery controller 1 for subsystem nqn.2014-08.org.nvmexpress.discovery for NQN testhostnqn.
      *[ 2008.973196] nvme1: Identify(0x6), Invalid Field in Command (sct 0x0 / sc 0x2) MORE DNR*
      [ 2008.974595] nvme nvme1: new ctrl: "nqn.2014-08.org.nvmexpress.discovery"
      [ 2009.103248] nvme nvme1: Removing ctrl: NQN "nqn.2014-08.org.nvmexpress.discovery"
      
      Move the call of nvme_init_non_mdts_limits() to nvme_scan_work() after
      we verify that I/O queues are created since that is a converging point
      for each transport where these limits are actually used.
      
      1. FC :
      nvme_fc_create_association()
       ...
       nvme_fc_create_io_queues(ctrl);
       ...
       nvme_start_ctrl()
        nvme_scan_queue()
         nvme_scan_work()
      
      2. PCIe:-
      nvme_reset_work()
       ...
       nvme_setup_io_queues()
        nvme_create_io_queues()
         nvme_alloc_queue()
       ...
       nvme_start_ctrl()
        nvme_scan_queue()
         nvme_scan_work()
      
      3. RDMA :-
      nvme_rdma_setup_ctrl
       ...
        nvme_rdma_configure_io_queues
        ...
        nvme_start_ctrl()
         nvme_scan_queue()
          nvme_scan_work()
      
      4. TCP :-
      nvme_tcp_setup_ctrl
       ...
        nvme_tcp_configure_io_queues
        ...
        nvme_start_ctrl()
         nvme_scan_queue()
          nvme_scan_work()
      
      * nvme_scan_work()
      ...
      nvme_validate_or_alloc_ns()
        nvme_alloc_ns()
         nvme_update_ns_info()
          nvme_update_disk_info()
           nvme_config_discard() <---
           blk_queue_max_write_zeroes_sectors() <---
      Signed-off-by: NChaitanya Kulkarni <kch@nvidia.com>
      Reviewed-by: NKeith Busch <kbusch@kernel.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      78288665
  19. 19 5月, 2022 1 次提交
  20. 16 5月, 2022 1 次提交