1. 29 12月, 2022 2 次提交
  2. 15 11月, 2022 2 次提交
  3. 27 9月, 2022 1 次提交
  4. 03 8月, 2022 2 次提交
  5. 07 7月, 2022 1 次提交
  6. 23 6月, 2022 1 次提交
  7. 19 5月, 2022 1 次提交
  8. 17 5月, 2022 1 次提交
  9. 16 5月, 2022 1 次提交
  10. 29 3月, 2022 1 次提交
    • S
      nvme: allow duplicate NSIDs for private namespaces · 5974ea7c
      Sungup Moon 提交于
      A NVMe subsystem with multiple controller can have private namespaces
      that use the same NSID under some conditions:
      
       "If Namespace Management, ANA Reporting, or NVM Sets are supported, the
        NSIDs shall be unique within the NVM subsystem. If the Namespace
        Management, ANA Reporting, and NVM Sets are not supported, then NSIDs:
         a) for shared namespace shall be unique; and
         b) for private namespace are not required to be unique."
      
      Reference: Section 6.1.6 NSID and Namespace Usage; NVM Express 1.4c spec.
      
      Make sure this specific setup is supported in Linux.
      
      Fixes: 9ad1927a ("nvme: always search for namespace head")
      Signed-off-by: NSungup Moon <sungup.moon@samsung.com>
      [hch: refactored and fixed the controller vs subsystem based naming
            conflict]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NSagi Grimberg <sagi@grimberg.me>
      5974ea7c
  11. 08 3月, 2022 1 次提交
  12. 28 2月, 2022 2 次提交
  13. 27 10月, 2021 1 次提交
  14. 21 10月, 2021 2 次提交
  15. 17 6月, 2021 3 次提交
    • W
      8cf486e1
    • C
      nvmet: add ZBD over ZNS backend support · aaf2e048
      Chaitanya Kulkarni 提交于
      NVMe TP 4053 – Zoned Namespaces (ZNS) allows host software to
      communicate with a non-volatile memory subsystem using zones for NVMe
      protocol-based controllers. NVMeOF already support the ZNS NVMe
      Protocol compliant devices on the target in the passthru mode. There
      are generic zoned block devices like  Shingled Magnetic Recording (SMR)
      HDDs that are not based on the NVMe protocol.
      
      This patch adds ZNS backend support for non-ZNS zoned block devices as
      NVMeOF targets.
      
      This support includes implementing the new command set NVME_CSI_ZNS,
      adding different command handlers for ZNS command set such as NVMe
      Identify Controller, NVMe Identify Namespace, NVMe Zone Append,
      NVMe Zone Management Send and NVMe Zone Management Receive.
      
      With the new command set identifier, we also update the target command
      effects logs to reflect the ZNS compliant commands.
      Signed-off-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Reviewed-by: NDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      aaf2e048
    • C
      nvmet: add Command Set Identifier support · ab5d0b38
      Chaitanya Kulkarni 提交于
      NVMe TP 4056 allows controllers to support different command sets.
      NVMeoF target currently only supports namespaces that contain
      traditional logical blocks that may be randomly read and written. In
      some applications there is a value in exposing namespaces that contain
      logical blocks that have special access rules (e.g. sequentially write
      required namespace such as Zoned Namespace (ZNS)).
      
      In order to support the Zoned Block Devices (ZBD) backend, controllers
      need to have support for ZNS Command Set Identifier (CSI).
      
      In this preparation patch, we adjust the code such that it can now
      support the default command set identifier. We update the namespace data
      structure to store the CSI value which defaults to NVME_CSI_NVM
      that represents traditional logical blocks namespace type.
      
      The CSI support is required to implement the ZBD backend for NVMeOF
      with host side NVMe ZNS interface, since ZNS commands belong to
      the different command set than the default one.
      Signed-off-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      ab5d0b38
  16. 06 4月, 2021 1 次提交
    • K
      nvme: implement non-mdts command limits · 5befc7c2
      Keith Busch 提交于
      Commands that access LBA contents without a data transfer between the
      host historically have not had a spec defined upper limit. The driver
      set the queue constraints for such commands to the max data transfer
      size just to be safe, but this artificial constraint frequently limits
      devices below their capabilities.
      
      The NVMe Workgroup ratified TP4040 defines how a controller may
      advertise their non-MDTS limits. Use these if provided and default to
      the current constraints if not. Since the Dataset Management command
      limits are defined in logical blocks, but without a namespace to tell us
      the logical block size, the code defaults to the safe 512b size.
      Signed-off-by: NKeith Busch <kbusch@kernel.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      5befc7c2
  17. 02 2月, 2021 2 次提交
  18. 19 1月, 2021 1 次提交
  19. 29 7月, 2020 1 次提交
  20. 08 7月, 2020 3 次提交
  21. 27 5月, 2020 2 次提交
  22. 10 5月, 2020 2 次提交
    • K
      nvme: define constants for identification values · 92decf11
      Keith Busch 提交于
      Improve code readability by defining the specification's constants that
      the driver is using when decoding identification payloads.
      Signed-off-by: NKeith Busch <kbusch@kernel.org>
      Reviewed-by: NBart van Assche <bvanassche@acm.org>
      Reviewed-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Acked-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      92decf11
    • C
      nvmet: align addrfam list to spec · d02abd19
      Chaitanya Kulkarni 提交于
      With reference to the NVMeOF Specification (page 44, Figure 38)
      discovery log page entry provides address family field. We do set the
      transport type field but the adrfam field is not set when using loop
      transport and also it doesn't have support in the nvme-cli. So when
      reading discovery log page with a loop transport it leads to confusing
      output.
      
      As per the spec for adrfam value 254 is reserved for Intra Host
      Transport i.e. loopback), we add a required macro in the protocol
      header file, set default port disc addr entry's adrfam to
      NVMF_ADDR_FAMILY_MAX, and update nvmet_addr_family configfs array for
      show/store attribute.
      
      Without this patch, setting adrfam to (ipv4/ipv6/ib/fc/loop/" ") we get
      following output for nvme discover command from nvme-cli which is
      confusing.
      trtype:  loop
      adrfam:  ipv4
      trtype:  loop
      adrfam:  ipv6
      trtype:  loop
      adrfam:  infiniband
      trtype:  loop
      adrfam:  fibre-channel
      trtype:  loop		# ${CFGFS_HOME}/nvmet/ports/1/addr_adrfam = loop
      adrfam:  pci            # <----- pci for loop
      trtype:  loop		# ${CFGFS_HOME}/nvmet/ports/1/addr_adrfam = " "
      adrfam:  pci            # <----- pci for unrecognized
      
      This patch fixes above output :-
      trtype:  loop
      adrfam:  ipv4
      trtype:  loop
      adrfam:  ipv6
      trtype:  loop
      adrfam:  infiniband
      trtype:  loop
      adrfam:  fibre-channel
      trtype:  loop           # ${CFGFS_HOME}/nvmet/ports/1/addr_adrfam = loop
      adrfam:  loop           # <----- loop for loop
      trtype:  loop		# ${CFGFS_HOME}/config/nvmet/ports/adrfam = " "
      adrfam:  unrecognized   # <----- unrecognized when invalid value
      Signed-off-by: NChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      d02abd19
  23. 22 11月, 2019 1 次提交
    • A
      nvme: hwmon: provide temperature min and max values for each sensor · 52deba0f
      Akinobu Mita 提交于
      According to the NVMe specification, the over temperature threshold and
      under temperature threshold features shall be implemented for Composite
      Temperature if a non-zero WCTEMP field value is reported in the Identify
      Controller data structure.  The features are also implemented for all
      implemented temperature sensors (i.e., all Temperature Sensor fields that
      report a non-zero value).
      
      This provides the over temperature threshold and under temperature
      threshold for each sensor as temperature min and max values of hwmon
      sysfs attributes.
      
      The WCTEMP is already provided as a temperature max value for Composite
      Temperature, but this change isn't incompatible.  Because the default
      value of the over temperature threshold for Composite Temperature is
      the WCTEMP.
      
      Now the alarm attribute for Composite Temperature indicates one of the
      temperature is outside of a temperature threshold.  Because there is only
      a single bit in Critical Warning field that indicates a temperature is
      outside of a threshold.
      
      Example output from the "sensors" command:
      
      nvme-pci-0100
      Adapter: PCI adapter
      Composite:    +33.9°C  (low  = -273.1°C, high = +69.8°C)
                             (crit = +79.8°C)
      Sensor 1:     +34.9°C  (low  = -273.1°C, high = +65261.8°C)
      Sensor 2:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)
      Sensor 5:     +47.9°C  (low  = -273.1°C, high = +65261.8°C)
      
      This also adds helper macros for kelvin from/to milli Celsius conversion,
      and replaces the repeated code in hwmon.c.
      
      Cc: Keith Busch <kbusch@kernel.org>
      Cc: Jens Axboe <axboe@fb.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Sagi Grimberg <sagi@grimberg.me>
      Cc: Jean Delvare <jdelvare@suse.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Tested-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: NKeith Busch <kbusch@kernel.org>
      52deba0f
  24. 05 11月, 2019 2 次提交
  25. 30 8月, 2019 3 次提交