Keith Busch [Tue, 20 Oct 2020 23:48:28 +0000 (16:48 -0700)]
tag new release
Tagging new release. The most significant changes are the new Zoned
Namespace support from the recently ratified NVMe TP, but also includes
vendor specific updates, various improvements, and spec feature
enhancements. Thank you to all the contributors for this round. Shortlog
follows:
Adam Judge (1):
Prevent compiler from optimizing mmio_read64 to single 64b read
Aleksei Marov (1):
Allow 0 value of ctrl_loss_tmo.
Aravind Ramesh (2):
nvme zns: segmentation fault in cmd "nvme zns zone-mgmt-send"
nvme zns: close device fd in id_ctrl() func
Brandon (1):
Added DITT explanation and cleaned up spacing
Brandon Paupore (17):
Added temperature information getting and text formatting
Implemented additional statistics to display
Corrected the output of TMT1 and 2
Added device support check for temp stats command
Added documentation for temperature stats function
Added missing semicolon
Added support for device 0x5006 to clear-pcie-correctable-error
Fixed some spacing
Reformatted text output to match other plugins
Added global namespace and device id display
Initial coding for new command 'capabilities', also create PCIE_CLEAR_MASK
Spacing fix
Finished implementing capabilities checks
Added documentation for capabilities command
Update capabilities command for some alternate command versions
Corrected vs-internal-log support status for some devices
Update supported devices in man page
Casey Tucker (1):
id-ctrl vs for Amazon Elastic Block Store
Darrin Smart (1):
Add missing dependencies on systemd & systemd-udev
Enzo Matsumiya (1):
doc: add 'tcp' as transport type option
Hans Holmberg (1):
Add warning if not all zone changed list entries are retrieved.
Hanumanthu H (2):
Micron plugin and documentation updates
Micron plugin and documentation updates
Jeff Lien (16):
DRV-1050 Update SN730 to support DUI data header version 4 Added version 4 structs and version checking logic
[NVME CLI] WDC Plugin Command Updates Add support for using uuid index when retrieving the 0xC2 Log Page Add support for parsing the 0xC0 log page
[NVMe-CLI] WDC Plugin update documentation for vs-smart-add-log command
Add support for ZN345 drive.
Fix spacing issue.
[NVMe-CLI] Add support for clear-pcie-correctable-error in wdc plugins for SN345
[NVMe-CLI] Add support for vs-fw-activate-history and clear-fw-activate-history in wdc plugins for SN345
[nvme-cli] Add log page mask parameter to vs-smart-add-log wdc plugin command.
[nvme-cli] Updated documentation files for vs-smart-add-log wdc plugin command
[nvme-cli] WDC plugin name change ZN345 to ZN355 Add drive info capability to ZN355
[nvme-cli] Fix vs-fw-activate-history for 0xC2 log page
[nvme-cli] fix spacing issues in wdc vs-fw-activate-history
[nvme-cli] Add support for enclosures to WDC plugin commands
[nvme-cli] Documentation files for new wdc plugin enclosure command
[nvme-cli] Fix comments and spacing with enclosure changes
[nvme-cli] Update enclosure changes based on review comments.
Jian Ding (1):
Add support for DUI data header version 4.
Keith Busch (19):
support for zoned command set
add zns documentation
fix zns csn identify values
fix print for zns id ns
zns id-ns json output
report all zones if no user override
add missing manpage to repo
fix manpage name
Merge branch 'MatiasBjorling-prettifyzns'
fix 32-bit build
fix compile errors from recent pr
start continuous integration
iocs fixes
Merge branch 'master' of https://github.com/linux-nvme/nvme-cli
use normal alloc for fw download
fix 64-bit print formats
fix cross compile print formats
regen documentation
tag new release
Klaus Jensen (12):
ioctl: fix missing addrof
add fields and types for zoned namespaces
Add zoned namespaces identify human readable print
Add exception for zone management send command
add fields and types for zoned namespaces
Add zoned namespaces identify human readable print
Add exception for zone management send command
nvme-print: streamline show-regs output
nvme-print: zns mar/mor fields are 32 bits
add support for issuing simple copy commands
{get,set}_feature: get nsid from device node
fix '< 0' comparisons of unsigned expressions
Matias Bjorling (1):
Improve output readability of the zns id-ns command
Matias Bjørling (8):
Add really pretty print for ZNS Command Set specific Identify Namespace data structure
Various cleanups in the ZNS plugin
Capitalize LBA in descriptions within the ZNS plugin
Remove lx text from reporting
Align print of zns id_ns with nvm id_ns
Add support for printing vs area in zns id ns
Align print of zns id_ctrl with nvm id_ctrl
Improve pretty print of the ZNS Command Set Identify Namespace command
Max Gurtovoy (1):
nvme: add support for non shared namespaces
Narasimhan V (2):
Getting interrupt list only for current controller
Print human readable output for get_features test
Niklas Cassel (4):
nvme-print: ZNS zoc field is 16 bits
nvme-print: ZNS ozcs field is 16 bits
nvme-print: fix ZNS Read Across Zone Boundaries print
nvme-print: fix ZNS MAR/MOR print
Randy Bates (3):
Update and Parse FB log page
Updates from pull request review
Initial coding
Revanth Rajashekar (1):
nvme-cli: Update Intel VU Smart Log Add
Sagi Grimberg (6):
nvme: add fabrics discovery controller default port number
fabrics: move connect_args extraction to a dedicated routine
fabrics: fix infinite loop is discovery recursion contains a loop
fabrics: fix segfault when -t <transport> is not passed
fabrics: fix passing ctrl_loss_tmo=0 by default
nvme-status: Don't reduce all negative statuses to ECOMM
Stephen Kitt (1):
Add Debian installation instructions
Steven Seungcheol Lee (16):
Identify I/O Command Set data structure command added
Added new namespace list command on list-ns, 4056 modification added
zone-mgmt-recv report size bug fix
Modify changed zone list command to issue get-log
Add latency check for zone-append
zone-mgmt-recv report size bug fix
Modify changed zone list command to issue get-log
Add latency check for zone-append
zns: nsid is used for zone-mgmt-send exception handling
zns: getting zdes logic using exist function, data_len should be in bytes
Add zone-mgmt-recv parameters to issue command
format: rescan after format for character device linux-nvme #709
Add rpm build output on gitignore
Handling system error #768
nvme.c: read, write data size should be block_count * logical block size
rpmbuild: install directories using Makefile's variables
Wei Hou (4):
sfx: add set/get-feature sub cmd
do capacity change check
correct some prompt
correct some prompt
Improve output readability of the zns id-ns command
- Expose MAR/MOR in a human readable format.
- Update spaces between values to align appropriately.
- Expose the MAR/MOR/FRL/RRL fields as unsigned decimal instead of hex.
Steven Seungcheol Lee [Thu, 24 Sep 2020 02:48:43 +0000 (11:48 +0900)]
nvme.c: read, write data size should be block_count * logical block size
Physical block size could be different with logical block size from kernel
because of npwg(Namespace Preferred Write Granularity) & nows(Namespace Optimal Write Size)
physical block size would be multiple of logical block size.
Signed-off-by: Steven Seungcheol Lee <sc108.lee@samsung.com> Reviewed-by: Beomsoo Kim <beomsooo.kim@samsung.com>
According to the ZNS specification, MAR/MOR is 0's based, and no limit for
these fields are represented as 0xffffffff, not as 0.
Since all ones is the same in little endian and big endian, no need to
do any conversion before doing the comparison.
nvme-status: Don't reduce all negative statuses to ECOMM
There should be no reason why we should reduce all the semantic status
codes we are getting from the device/driver to a single meaningless
status code.
This allows the user to extract useful information from the
vendor-specific field when querying Elastic Block Storage
devices attached by Amazon Web Services. In particular, this
field is populated with the block device that was requested
by the user in the API call, which is of the form `/dev/sdc`
or `/dev/xvdc` rather than `/dev/nvme2`. This plugin reduces
the need for operating system maintainers to include vendor-
specific packages in their distribution.
Since we cannot use S_ISCHR/S_ISBLK to differentiate between controller
and namespace devices since commit e77046661509 ("remove block device
checking for namespace"), just try the NVME_IOCTL_ID ioctl and if it
fails with ENOTTY, assume that it is the controller device.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Max Gurtovoy [Wed, 26 Aug 2020 10:49:03 +0000 (13:49 +0300)]
nvme: add support for non shared namespaces
Currently, nvme-cli assume that all the namespaces in an NVM subsystem
are shared between all the controllers. There is an option to create
both shared and non-shared namespaces among the controllers in the same
NVM subsystem. For example, in SR-IOV environment, one can attach 1
namespace to each controller that will be private and also 1 namespace
that will be shared among the secondary controllers only. In this case,
the output of "nvme list -v" will be wrong:
Sagi Grimberg [Thu, 20 Aug 2020 03:13:20 +0000 (20:13 -0700)]
fabrics: fix passing ctrl_loss_tmo=0 by default
cfg.ctrl_loss_tmo will be cleared to zero even if it wasn't set
at all, we must not pass ctrl_loss_tmo in the connection string.
This fixes a regression caused by allowing ctrl_loss_tmo to be
zero at all, by setting it to be a sane default (which currently
matches the kernel default).
Fixes: a6105a30a39a ("nvme-cli/fabrics: Add tos param to connect cmd") Fixes: 4b607779af71 ("Allow 0 value of ctrl_loss_tmo.") Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Sagi Grimberg [Wed, 19 Aug 2020 10:31:57 +0000 (03:31 -0700)]
fabrics: fix segfault when -t <transport> is not passed
Need to check if transport was provided before we derefernce
it.
Fixes: 9da606b4afcc ("fabrics: allow traddr to be host name for ip based transports") Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Sagi Grimberg [Fri, 14 Aug 2020 20:42:39 +0000 (13:42 -0700)]
fabrics: fix infinite loop is discovery recursion contains a loop
It's possible that different discovery controllers may refer to
each other. In this case, we will get into an infinite loop as
we don't track that we have already connected and seen this.
The kernel doesn't protect us from this for discovery controllers
because it always allows duplicate discovery controllers.
Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Keith Busch <kbusch@kernel.org>
Sagi Grimberg [Fri, 14 Aug 2020 20:42:37 +0000 (13:42 -0700)]
nvme: add fabrics discovery controller default port number
The IANA port number for a discovery controller is 8009
for NVMe/TCP and 4420 for any NVMe/RDMA port number. So make
sure to fill it and pass it down, it will help us as we
track and match connection arguments for filtering purposes.
Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Keith Busch <kbusch@kernel.org>
Narasimhan V [Thu, 6 Aug 2020 14:09:58 +0000 (19:39 +0530)]
Getting interrupt list only for current controller
Recently there was a fix for getting the interrupt vector list in
get_features selftest. That gets the list for all nvme controllers
in the system. Fixing it by getting the list for only current
controller.
Signed-off-by: Narasimhan V <sim@linux.vnet.ibm.com>
Improve pretty print of the ZNS Command Set Identify Namespace command
- Add pretty print for mar, mor, rrl, and frl fields.
- Clarity Zone Size that value is reported in hex.
- Add header text for the zoc and ozcs fields.
Keith Busch [Thu, 16 Jul 2020 13:33:28 +0000 (06:33 -0700)]
use normal alloc for fw download
Huge pages are only helpful for large transfers that may exceed the
driver's max segment limit. Unless a fw download wants to exceed that
transfer length, use normal allocation.