Keith Busch [Tue, 16 Jun 2020 15:10:33 +0000 (08:10 -0700)]
release v1.12
We're about to introduce major updates from new TPs, so now seems a good time
to tag a new release. Shortlog below.
Adam Judge (1):
Fix PMRMSC.CMSE bitmask
Brandon Paupore (2):
Updated/Added device IDs for SN440, ZN440, and SN640
Corrected text output in FW activation history
Chaitanya Kulkarni (2):
nvme: fix compiler warnings
nvme: allow addr family to recognize loop
James Yang (1):
Adding ScaleFlux subcommands
Jian Ding (1):
fix apsrintf return check
KLZ-0 (3):
controller list argument is required in attach-ns/detach-ns commands Empty controller-id list in the ioctl call for attach/detach of namespace results effectively in no operation, yet the nvme cli reports falsely success. The controller id list must be specified with at least 1 controller in the list.
Emit a warning message when no controller-id is specified
Improve error message
Keith Busch (5):
Tag release with broken build fixes
fixes for 32-bits
fix uninitialized value warning
fix id-ctrl power printa
release v1.12
Martin George (1):
fabrics: write reconnect_delay to fabrics device on connect
Martin Wilck (6):
connect-all: add -m/--matching option
nvmf-connect@.service: use nvme connect-all --matching
doc: nvme-connect-all: document -m / --matching
doc: nvme-connect-all: document -p / --persistent
doc: nvme-connect-all: document -q / --quiet
doc: nvme-connect-all: regenerate HTML and man pages
Randy (1):
Add log page CA parsing
Randy Bates (4):
Bug fixes
Fix segmentation if invalid customer id
Update systemd required version.
Add customer id 0x101
Steven Seungcheol Lee (2):
nvme.c: remove side effects from older commit
format: skipping re-read partition for same lbaf or All NS
丁剑 [Tue, 10 Mar 2020 07:16:32 +0000 (15:16 +0800)]
[SMART] add more smart info
1. memblaze vu command, smart-log-add;
2. add five SMART logs:
program_fail_count
erase_fail_count
wear_leveling
nand_bytes_written
host_bytes_written
3. only add for special device, checked the firmware version "2.13";
KLZ-0 [Fri, 1 May 2020 19:22:40 +0000 (21:22 +0200)]
controller list argument is required in attach-ns/detach-ns commands
Empty controller-id list in the ioctl call for attach/detach of namespace results effectively in no operation, yet the nvme cli reports falsely success. The controller id list must be specified with at least 1 controller in the list.
Tomasz Kulasek [Fri, 20 Sep 2019 08:29:03 +0000 (10:29 +0200)]
remove block device checking for namespace
In SPDK project (see spdk.io) we have implemented the ability
to set up devices via CUSE device exposing controller and
namespaces as character devices.
Namespace devices are also exposed as character devices, so
nvme-cli tools will not recognize them as valid devices.
To allow to use nvme-cli tool with SPDK NVMe CUSE devices
we can't assume that namespaces are block devices.
Change-Id: I52aa79d24002b8dec10e6fdd0cb9a71bb6750358 Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Yi Zhang [Fri, 1 May 2020 07:42:10 +0000 (15:42 +0800)]
nvme-print: nvme list -o json fix
Bellow error log will be triggered on non pcie transport, so only print the
ProductName for pcie transport, also add print "\n" and json_free_object fix
Failed to open /sys/class/nvme/nvme1/device/subsystem_vendor with errno No such file or directory
Failed to open /sys/class/nvme/nvme1/device/subsystem_device with errno No such file or directory
Failed to open /sys/class/nvme/nvme1/device/vendor with errno No such file or directory
Failed to open /sys/class/nvme/nvme1/device/device with errno No such file or directory
Failed to open /sys/class/nvme/nvme1/device/class with errno No such file or directory
{
"Devices" : [
{
"NameSpace" : 1,
"DevicePath" : "/dev/nvme1n1",
"Firmware" : "4.18.0-1",
"Index" : 1,
"ModelNumber" : "Linux",
"ProductName" : "NULL",
"SerialNumber" : "eb4695bf0da275a3",
"UsedBytes" : 268435456000,
"MaximumLBA" : 524288000,
"PhysicalSize" : 268435456000,
"SectorSize" : 512
}
]
}
Reported-by: Justin Tee <justin.tee@broadcom.com> Signed-off-by: Yi Zhang <yi.zhang@redhat.com> Signed-off-by: Keith Busch <kbusch@kernel.org>
Martin Wilck [Wed, 29 Apr 2020 17:03:57 +0000 (19:03 +0200)]
connect-all: add -m/--matching option
Discovery controllers often return discovery records that belong
to a different traddr than the discovery controller itself, like here:
nvme discover -t fc \
--host-traddr=nn-0x20000090fae06325:pn-0x10000090fae06325 \
--traddr=nn-0x200900a09890f5bf:pn-0x200a00a09890f5bf
Discovery Log Number of Records 2, Generation counter 25
=====Discovery Log Entry 0======
trtype: fc
adrfam: fibre-channel
subtype: nvme subsystem
treq: not specified
portid: 0
trsvcid: none
subnqn: nqn...
traddr: nn-0x200900a09890f5bf:pn-0x200b00a09890f5bf
=====Discovery Log Entry 1======
trtype: fc
adrfam: fibre-channel
subtype: nvme subsystem
treq: not specified
portid: 1
trsvcid: none
subnqn: nqn...
traddr: nn-0x200900a09890f5bf:pn-0x200a00a09890f5bf
Note that the traddr of record 0 matches the traddr used for the
discovery, while that of record 1 does not.
For NVMeoF-autoconnect, this means that connection attempts will
be made multiple times (the two records above will also be returned
for a discovery on nn-0x200900a09890f5bf:pn-0x200b00a09890f5bf),
which is unnecessary and leads to lots of confusing error messages
in the system log.
Add an option "-m / --matching" to the "nvme connect-all" command
that causes nvme to connect only those discovery entries that match
the traddr given on the command line.
nvme-topology.c: In function ‘verify_legacy_ns’:
nvme-topology.c:361:32: error: format not a string literal and no format arguments [-Werror=format-security]
361 | asprintf(&n->ctrl->address, tmp_address);
| ^~~~~~~~~~~
nvme-topology.c:360:4: error: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result [-Werror=unused-result]
360 | asprintf(&n->ctrl->transport, "pcie");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvme-topology.c:361:4: error: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result [-Werror=unused-result]
361 | asprintf(&n->ctrl->address, tmp_address);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make: *** [Makefile:96: nvme-topology.o] Error 1
This can be easily re produced on the gcc version :-
(Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
fabrics: allow traddr to be host name for ip based transports
Some users would like to use well known hostnames instead of remembering
ip addresses. So, allow users to set traddr to be a host name and we will
attempt to resolve against a DNS.
This applies for IP based transports only (e.g. tcp, rdma) while fc and
loop will ignore this distinction.