// SPDX-License-Identifier: GPL-2.0

ndctl-inject-smart(1)
=====================

NAME
----
ndctl-inject-smart - perform smart threshold/injection operations on a DIMM

SYNOPSIS
--------
[verse]
'ndctl inject-smart' <dimm> [<options>]

DESCRIPTION
-----------
A generic DIMM device object, named /dev/nmemX, is registered for each
memory device indicated in the ACPI NFIT table, or other platform NVDIMM
resource discovery mechanism.

ndctl-inject-smart can be used to set smart thresholds, and inject smart
attributes.

EXAMPLES
--------

Set smart controller temperature and spares threshold for DIMM-0 to 32C, spares
threshold to 8, and enable the spares alarm.
[verse]
ndctl inject-smart --ctrl-temperature-threshold=32 --spares-threshold=8 --spares-alarm nmem0

Inject a media temperature value of 52 and fatal health status flag for DIMM-0
[verse]
ndctl inject-smart --media-temperature=52 --health=fatal nmem0


OPTIONS
-------
-b::
--bus=::
include::xable-bus-options.txt[]

-m::
--media-temperature=::
	Inject <value> for the media temperature smart attribute.

-M::
--media-temperature-threshold=::
	Set <value> for the smart media temperature threshold.

--media-temperature-alarm=::
	Enable or disable the smart media temperature alarm. Options are
	'on' or 'off'.

--media-temperature-uninject::
	Uninject any media temperature previously injected.

-c::
--ctrl-temperature=::
	Inject <value> for the controller temperature smart attribute.

-C::
--ctrl-temperature-threshold=::
	Set <value> for the smart controller temperature threshold.

--ctrl-temperature-alarm=::
	Enable or disable the smart controller temperature alarm. Options are
	'on' or 'off'.

--ctrl-temperature-uninject::
	Uninject any controller temperature previously injected.

-s::
--spares=::
	Inject <value> for the spares smart attribute.

-S::
--spares-threshold=::
	Set <value> for the smart spares threshold.

--spares-alarm=::
	Enable or disable the smart spares alarm. Options are 'on' or 'off'.

--spares-uninject::
	Uninject any spare percentage previously injected.

-f::
--fatal::
	Set the flag to spoof fatal health status.

--fatal-uninject::
	Uninject the fatal health status flag.

-U::
--unsafe-shutdown::
	Set the flag to spoof an unsafe shutdown on the next power down.

--unsafe-shutdown-uninject::
	Uninject the unsafe shutdown flag.

-N::
--uninject-all::
	Uninject all possible smart fields/values irrespective of whether
	they have been previously injected or not.

-v::
--verbose::
	Emit debug messages for the error injection process

include::human-option.txt[]

include::../copyright.txt[]

SEE ALSO
--------
linkndctl:ndctl-list[1],
