History log of /freebsd-9.3-release/sbin/nvmecontrol/nvmecontrol.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 253628 24-Jul-2013 jimharris

MFC r253459:

Use _PATH_DEV (from paths.h) for the "/dev/" string, rather than
hard-coding it.

Approved by: re (kib)
Sponsored by: Intel


# 253625 24-Jul-2013 jimharris

MFC r253436, r253458:

Simplify open_dev() by returning errno values rather than just 0 or 1.

Also remove stat() call and just rely on errno from open() call to discern
whether dev node exists or not.

Approved by: re (kib)
Sponsored by: Intel


# 253300 12-Jul-2013 jimharris

MFC r253114:

Send per-namespace logpage commands to the controller devnode, so they
are processed as admin commands, not I/O commands.

As part of this change, pull out the code for parsing a namespace node
string into a separate function, since it is used for both identify and
logpage commands.

Approved by: re (kib)


# 253298 12-Jul-2013 jimharris

MFC r253109, r253279:

r253109:
Incorporate feedback from bde@ based on r252672 changes:

* Use 0/1 instead of sysexits. Man pages are confusing on this topic,
but 0/1 is sufficient for nvmecontrol.
* Use err function family where possible instead of fprintf/exit.
* Fix some typing errors.
* Clean up some error message inconsistencies.

r253279:
%d should be used for printing int32_t instead of %zd.

clang does not complain about this - only gcc.

Incorporated r253279 prior to MFC timeout because it is required for gcc
builds.

Approved by: re (kib)


# 252671 03-Jul-2013 jimharris

MFC r252278:

Add firmware replacement and activation support to nvmecontrol(8) through
a new firmware command.

NVMe controllers may support up to 7 firmware slots for storing of
different firmware revisions. This new firmware command supports
firmware replacement (i.e. firmware download) with or without immediate
activation, or activation of a previously stored firmware image. It
also supports selection of the firmware slot during replacement
operations, using IDENTIFY information from the controller to
check that the specified slot is valid.

Newly activated firmware does not take effect until the new controller
reset, either via a reboot or separate 'nvmecontrol reset' command to the
same controller.

Submitted by: Joe Golio <joseph.golio@emc.com>
Obtained from: EMC / Isilon Storage Division


# 252670 03-Jul-2013 jimharris

MFC r252277:

Add log page support to nvmecontrol(8) through a new logpage command.

This includes pretty printers for all of the standard NVMe log pages
(Error, SMART/Health, Firmware), as well as hex output for non-standard
or vendor-specific log pages.

Also add missing static keyword that glebius@ fixed as part of r252302.

Submitted by: Joe Golio <joseph.golio@emc.com>
Obtained from: EMC / Isilon Storage Division


# 252669 03-Jul-2013 jimharris

MFC r252275:

Add generalized helper functions for printing hex data as part of
nvmecontrol commands.

Submitted by: Joe Golio <joseph.golio@emc.com>
Obtained from: EMC / Isilon Storage Division


# 252667 03-Jul-2013 jimharris

MFC r252274:

Ensure that a device node is specified when invoking the identify or reset
commands.

Also improve the checking of device node names, so that better error
messages are displayed when incorrect names are specified.

Sponsored by: Intel


# 252662 03-Jul-2013 jimharris

MFC r252269:

Add an nvme_function structure array, defining the name, C function and
usage message for each nvmecontrol command. This helps reduce some code
clutter both now and for future commits which will add logpage and
firmware support to nvmecontrol(8).

Also move helper function prototypes to the end of the header file, after
the per-command functions.

Also add missing static keyword that glebius@ fixed as part of r252302.

Sponsored by: Intel


# 252660 03-Jul-2013 jimharris

MFC r252268:

Break out code related to the reset command into a separate source file.

Sponsored by: Intel


# 252659 03-Jul-2013 jimharris

MFC r252267:

Break out code related to the perftest command into a separate file.

Sponsored by: Intel


# 252658 03-Jul-2013 jimharris

MFC r252266:

Break out code related to the identify command into a separate source file.

Sponsored by: Intel


# 252656 03-Jul-2013 jimharris

MFC r252265:

Break out code related to the devlist command into a separate source file.

Sponsored by: Intel


# 252655 03-Jul-2013 jimharris

MFC r252264:

Add separate *_usage() functions for each nvmecontrol command.

Sponsored by: Intel


# 252654 03-Jul-2013 jimharris

MFC r252263:

Add an open_dev() helper function to be used in the various places
where nvmecontrol needs to open a handle to a controller or namespace
device node.

Sponsored by: Intel


# 252223 25-Jun-2013 jimharris

Forced commit due to bad commit message in r252222.

MFC:
r240618, r240621, r240633, r240671, r240672, r240697, r240700, r241433,
r241434, r241657, r241658, r241659, r241660, r241661, r241662, r241663,
r241664, r241665, r241689, r242420, r243951, r244410, r244411, r244413,
r244549, r245136, r247963, r248729, r248730, r248731, r248732, r248733,
r248734, r248735, r248736, r248737, r248738, r248739, r248740, r248741,
r248746, r248747, r248748, r248749, r248754, r248755, r248756, r248757,
r248758, r248759, r248760, r248761, r248762, r248763, r248764, r248765,
r248766, r248767, r248768, r248769, r248770, r248771, r248772, r248773,
r248780, r248834, r248835, r248913, r248977, r249067, r249416, r249417,
r249418, r249419, r249420, r249421, r249422, r249432

Merge all NVMe-related changes since the original code was added to HEAD,
including linking it into the build.

Sponsored by: Intel


# 252222 25-Jun-2013 jimharris

240618, 240621, 240633, 240671, 240672, 240697, 240700, 241433,
241434, 241657, 241658, 241659, 241660, 241661, 241662, 241663,
241664, 241665, 241689, 242420, 243951, 244410, 244411, 244413,
244549, 245136, 247963, 248729, 248730, 248731, 248732, 248733,
248734, 248735, 248736, 248737, 248738, 248739, 248740, 248741,
248746, 248747, 248748, 248749, 248754, 248755, 248756, 248757,
248758, 248759, 248760, 248761, 248762, 248763, 248764, 248765,
248766, 248767, 248768, 248769, 248770, 248771, 248772, 248773,
248780, 248834, 248835, 248913, 248977, 249067, 249416, 249417,
249418, 249419, 249420, 249421, 249422, 249432


# 252221 25-Jun-2013 jimharris

MFC r240616, r240619, r240620:

Merge initial NVM Express (NVMe) commits to stable/9.

This only pulls the nvme(4), nvd(4) and nvmecontrol(8) code into stable/9.
A follow-up commit will link it into the build and merge all of the
additional commits made for NVMe over the last few months.

Sponsored by: Intel


# 240620 17-Sep-2012 jimharris

Add nvmecontrol(8) source code and beginnings of a man page to the tree.

Sponsored by: Intel
Contributions from: Joe Golio/EMC <joseph dot golio at emc dot com>