1. 27 5月, 2020 4 次提交
  2. 10 5月, 2020 1 次提交
  3. 26 3月, 2020 1 次提交
  4. 05 3月, 2020 2 次提交
    • M
      nvmet: make ctrl model configurable · 013b7ebe
      Mark Ruijter 提交于
      This patch adds a new target subsys attribute which allows user to
      optionally specify model name which then used in the
      nvmet_execute_identify_ctrl() to fill up the nvme_id_ctrl structure.
      
      The default value for the model is set to "Linux" for backward
      compatibility.
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NMark Ruijter <MRuijter@onestopsystems.com>
      [chaitanya.kulkarni@wdc.com
       *Use macro for default model, coding style fixes.
       *Use RCU for accessing model in for configfs and in
        nvmet_execute_identify_ctrl().
      ]
      Signed-off-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: NKeith Busch <kbusch@kernel.org>
      013b7ebe
    • C
      nvmet: make ctrl-id configurable · 94a39d61
      Chaitanya Kulkarni 提交于
      This patch adds a new target subsys attribute which allows user to
      optionally specify target controller IDs which then used in the
      nvmet_execute_identify_ctrl() to fill up the nvme_id_ctrl structure.
      
      For example, when using a cluster setup with two nodes, with a dual
      ported NVMe drive and exporting the drive from both the nodes,
      The connection to the host fails due to the same controller ID and
      results in the following error message:-
      
      "nvme nvmeX: Duplicate cntlid XXX with nvmeX, rejecting"
      
      With this patch now user can partition the controller IDs for each
      subsystem by setting up the cntlid_min and cntlid_max. These values
      will be used at the time of the controller ID creation. By partitioning
      the ctrl-ids for each subsystem results in the unique ctrl-id space
      which avoids the collision.
      
      When new attribute is not specified target will fall back to original
      cntlid calculation method.
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: NKeith Busch <kbusch@kernel.org>
      94a39d61
  5. 04 2月, 2020 1 次提交
  6. 05 11月, 2019 3 次提交
  7. 01 8月, 2019 1 次提交
  8. 10 7月, 2019 1 次提交
  9. 21 6月, 2019 1 次提交
  10. 25 4月, 2019 1 次提交
  11. 11 4月, 2019 1 次提交
  12. 20 2月, 2019 1 次提交
  13. 19 12月, 2018 1 次提交
  14. 13 12月, 2018 5 次提交
  15. 08 12月, 2018 11 次提交
  16. 18 10月, 2018 2 次提交
    • L
      nvmet: Optionally use PCI P2P memory · c6925093
      Logan Gunthorpe 提交于
      Create a configfs attribute in each nvme-fabrics namespace to enable P2P
      memory use.  The attribute may be enabled (with a boolean) or a specific
      P2P device may be given (with the device's PCI name).
      
      When enabled, the namespace will ensure the underlying block device
      supports P2P and is compatible with any specified P2P device.  If no device
      was specified it will ensure there is compatible P2P memory somewhere in
      the system.  Enabling a namespace with P2P memory will fail with EINVAL
      (and an appropriate dmesg error) if any of these conditions are not met.
      
      Once a controller is set up on a specific port, the P2P device to use for
      each namespace will be found and stored in a radix tree by namespace ID.
      When memory is allocated for a request, the tree is used to look up the P2P
      device to allocate memory against.  If no device is in the tree (because no
      appropriate device was found), or if allocation of P2P memory fails, fall
      back to using regular memory.
      Signed-off-by: NStephen Bates <sbates@raithlin.com>
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      [hch: partial rewrite of the initial code]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      c6925093
    • L
      nvmet: Introduce helper functions to allocate and free request SGLs · 5b2322e4
      Logan Gunthorpe 提交于
      Add helpers to allocate and free the SGL in a struct nvmet_req:
      
        int nvmet_req_alloc_sgl(struct nvmet_req *req)
        void nvmet_req_free_sgl(struct nvmet_req *req)
      
      This will be expanded in a future patch to implement peer-to-peer memory
      DMAs and should be common with all target drivers.
      
      The new helpers are used in nvmet-rdma.  Seeing we use req.transfer_len as
      the length of the SGL it is set earlier and cleared on any error.  It also
      seems to be unnecessary to accumulate the length as the map_sgl functions
      should only ever be called once per request.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Acked-by: NSagi Grimberg <sagi@grimberg.me>
      5b2322e4
  17. 02 10月, 2018 1 次提交
  18. 08 8月, 2018 1 次提交
    • C
      nvmet: add ns write protect support · dedf0be5
      Chaitanya Kulkarni 提交于
      This patch implements the Namespace Write Protect feature described in
      "NVMe TP 4005a Namespace Write Protect". In this version, we implement
      No Write Protect and Write Protect states for target ns which can be
      toggled by set-features commands from the host side.
      
      For write-protect state transition, we need to flush the ns specified
      as a part of command so we also add helpers for carrying out synchronous
      flush operations.
      Signed-off-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      [hch: fixed an incorrect endianess conversion, minor cleanups]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      dedf0be5
  19. 28 7月, 2018 1 次提交