Tokunori Ikegami [Thu, 4 May 2023 11:56:56 +0000 (20:56 +0900)]
nvme: Fix get-feature command sel parameter check to allow value 8
The parameter was changed to use value 8 also by the change 30b89e5ef.
Note: The value is used only for the command functionality to limit feature
output changed from default but not passed to the driver.
Arthur Shau [Wed, 5 Apr 2023 22:03:35 +0000 (15:03 -0700)]
plugins/ocp: Add missing fields in Latency Monitor Log
Changes include:
- Added Debug Log Measured Latency, Debug Log Latency Time Stamp, Debug Log Pointer, Debug Counter Trigger Source, Debug Log Stamp Units, Log Page Version, and Log Page GUID, as required by OCP 2.0 spec.
- Reorganized some of the output so that it (mostly) matches the order in which they show up in the spec.
Arthur Shau [Wed, 5 Apr 2023 21:13:25 +0000 (14:13 -0700)]
plugins/ocp: Fix typos in Latency Monitor Log
Changes include:
- Fixed the naming of some log page C3 constants that were incorrectly labelled as C0.
- Fixed a typo in the JSON output: 'lantency' -> 'latency'
Arthur Shau [Wed, 5 Apr 2023 21:03:03 +0000 (14:03 -0700)]
plugins/ocp: Reorganize OCP plugin source code
Shifted the location of some functions around so they're grouped together better. Also added separators in the comments so it's easy to distinguish which block of functions pertain to what command.
Steven Seungcheol Lee [Mon, 17 Apr 2023 05:17:41 +0000 (14:17 +0900)]
fdp: set-events feature is saveable
TP4146 Flexible Data Placement 2022.11.30 Ratified
5.27.1.TBD1 Flexible Data Placement Events (Feature Identifier 1Eh)
mentioned as below
This Feature shall be saveable (refer to section 4.2).
Signed-off-by: Steven Seungcheol Lee <sc108.lee@samsung.com> Reported-by: Youngjin Jung <yj4369.jung@samsung.com>
Changes for linux kernel check patch warnings remained.
Change to use `//` instead for proper SPDX comment style.
And also change symbolic permissions `S_IRUSR | S_IWUSR' as '0600'.
Note: Still remaining a check patch error.
Daniel Wagner [Mon, 17 Apr 2023 06:26:35 +0000 (08:26 +0200)]
build: Extend static linked binary build test
So far, the binary was still linking against the libc dynamically.
The final step to link completely statically can be achieved by setting
the LDFLAGS environment variable.
Daniel Wagner [Thu, 13 Apr 2023 10:56:10 +0000 (12:56 +0200)]
build: Disable fallback on default
meson's default setting for wrap mode is to attempt to download missing
dependencies. Disable this feature as the community is unhappy with
this default behavior.
da Cunha, Leonardo [Thu, 16 Mar 2023 23:53:37 +0000 (16:53 -0700)]
plugins/solidigm: Fixes and clean-up of Telemetry parse code.
Fixed parsing of 64 bit values.
Fixed COD field name.
Fixed compilation warnings when compiling for 32 bit.
Added missing free().
Consolidated single entry function to telemetry parser.
Consolidated use of integer types.
Martin George [Tue, 4 Apr 2023 09:29:09 +0000 (14:59 +0530)]
fabrics: fix fc config JSON file handling
Unlike other nvme transports, nvme/fc connection requires a valid
host_traddr in addition to traddr and transport type. Current fc
config JSON handling is broken due to the host_traddr not getting
updated even if explicitly listed in the JSON file, as shown below:
nvme connect-all -J /usr/local/etc/nvme/config.json
Failed to write to /dev/nvme-fabrics: Invalid argument
And the below error is logged in the messages file for the same:
nvme_fabrics: missing parameter 'host_traddr=%s'
Fix this by ensuring the relevant host_traddr string is appropriately
passed to the respective nvme controller structure. And while we are
at it, ensure the host_iface string is updated too but noting that it
is only applicable to tcp alone, and not rdma or fc.
Daniel Wagner [Wed, 5 Apr 2023 06:27:53 +0000 (08:27 +0200)]
build: Fetch all references before using git describe
The release script is using git describe to get the references string of
the library. The returned string validated if it is a valid release
string, e.g. v1.4. If not we abort the operation.
Thus we need to make sure that we have all references including the
tags, thus do a git fetch --all first.
Minwoo Im [Sun, 26 Mar 2023 11:06:49 +0000 (20:06 +0900)]
nvme-print: Unify number base format for nsid
`nvme list` is one of the most frequently used subcommand to list up
nvme devices in the system. `nvme list -v` prints much more detail in
it. But, those two commands have different number base format which are
decimal and hexadecimal without any prefix (e.g., 0x) or something.
nvme list -v shows hexadecimal nsid without `0x` which means it might be
confused between decimal and hexadecimal. To unify this, this patch
expands device NSID fields width from 8 to 10 to cover `0x` two chracters
as a prefix for both `nvme list` and `nvme list -v`.
Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
Tokunori Ikegami [Fri, 24 Mar 2023 17:37:59 +0000 (02:37 +0900)]
util: Cleanup argconfig parse function
1. Split to parse config type function
2. Change if else statement to switch case statement
3. Use calloc instead of malloc
4. Delete unused while 0 statement
5. Add argconfig error common function
Martin George [Wed, 22 Mar 2023 06:36:55 +0000 (12:06 +0530)]
nvme-print: sanitize supported-log-pages output
The current nvme supported-log-pages output is a little cryptic
as seen below:
Support Log Pages Details for nvme1n1:
LID 0x0 (Supported Log Pages), supports 0x3
LID 0x1 (Error Information), supports 0x3
...
So sanitize this output to make it more meaningful with better
formatting. This should apply to the verbose output as well.
With these changes, the sanitized normal output should show up
as follows:
Support Log Pages Details for nvme1n1:
LID 0x0 - Supported Log Pages
LID 0x1 - Error Information
...
And the sanitized verbose output would show up as:
Support Log Pages Details for nvme1n1:
LID 0x0 - Supported Log Pages
LSUPP is supported
IOS is supported
LID 0x1 - Error Information
LSUPP is supported
IOS is supported
...
Martin George [Tue, 21 Mar 2023 08:49:11 +0000 (14:19 +0530)]
nvme: fix block count and data size logic
The required block count and data size is not automatically set
for a namespace device in submit_io(). Also it is the user specified
block count and not the actual required block count that is passed
to the ioctl data structure, often leading to nvme passthrough io
errors. For e.g. an nvme read on a 512b block size namespace device
with data size set to 4K ends up with the below error:
nvme read /dev/nvme0n1 -s 0 -z 4096
NVMe status: Data SGL Length Invalid: The length of a Data SGL is too
short or too long and the controller does not support SGL transfers
longer than the amount of data to be transferred(0x400f)
This read is successful only when the appropriate block count is
passed from the command line:
So fix this by deriving the required block count and data size based
on the logical block size and passing them appropriately to the
respective ioctl data structure. And while we are at it, remove a
couple of superfluous braces in this part of the code.