All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Vishal Verma <vishal.l.verma@intel.com>
Cc: linux-nvdimm@lists.01.org
Subject: Re: [ndctl PATCH v2 3/4] ndctl: add a new command - inject-smart
Date: Thu, 8 Feb 2018 22:31:20 -0800	[thread overview]
Message-ID: <CAPcyv4jKE4iosbHq1NgemQTbdMev5zMsDagGa+kEA4APb8A_2w@mail.gmail.com> (raw)
In-Reply-To: <20180209053500.6871-3-vishal.l.verma@intel.com>

On Thu, Feb 8, 2018 at 9:34 PM, Vishal Verma <vishal.l.verma@intel.com> wrote:
> Add an inject-smart command to ndctl to allow injection of smart fields,
> and setting of smart thresholds. If a field is injected that breaches
> the threshold, or sets a fatal flag, or if a new threshold is set that
> causes the same effect, generate an acpi health even notification.
>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> ---
>  Documentation/ndctl/ndctl-inject-smart.txt | 102 +++++++
>  builtin.h                                  |   1 +
>  ndctl/Makefile.am                          |   3 +-
>  ndctl/inject-smart.c                       | 436 +++++++++++++++++++++++++++++
>  ndctl/ndctl.c                              |   1 +
>  5 files changed, 542 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/ndctl/ndctl-inject-smart.txt
>  create mode 100644 ndctl/inject-smart.c
>
> v2: Change inject-smart semantics to avoid sub-commands like --inject
> and --set. Instead allow injection and threshold setting all in one
> command by making each a distinct option. (Dan)
>
> diff --git a/Documentation/ndctl/ndctl-inject-smart.txt b/Documentation/ndctl/ndctl-inject-smart.txt
> new file mode 100644
> index 0000000..212bca0
> --- /dev/null
> +++ b/Documentation/ndctl/ndctl-inject-smart.txt
> @@ -0,0 +1,102 @@
> +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=::
> +       Enforce that the operation only be carried on devices that are
> +       attached to the given bus. Where 'bus' can be a provider name or a bus
> +       id number.
> +
> +-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'.
> +
> +-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'.
> +
> +-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'.
> +
> +-H::
> +--health=::
> +       Smart attribute for health status. Provide either 'fatal' or 'nominal'
> +       to set the state of the attribute.
> +
> +-U::
> +--unsafe-shutdown=::
> +       Set the flag to spoof an unsafe shutdown on the next power down.
> +
> +-v::
> +--verbose::
> +       Emit debug messages for the error injection process

Nice, and I like your short option choices too.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

  reply	other threads:[~2018-02-09  6:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-09  5:34 [ndctl PATCH v2 1/4] ndctl, inject-error: error out for a non-existent namespace Vishal Verma
2018-02-09  5:34 ` [ndctl PATCH v2 2/4] ndctl: add ndctl_encode_smart_temperature() Vishal Verma
2018-02-09  5:34 ` [ndctl PATCH v2 3/4] ndctl: add a new command - inject-smart Vishal Verma
2018-02-09  6:31   ` Dan Williams [this message]
2018-02-09  5:35 ` [ndctl PATCH v2 4/4] ndctl, bash-completion: Add bash completion for inject-smart Vishal Verma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPcyv4jKE4iosbHq1NgemQTbdMev5zMsDagGa+kEA4APb8A_2w@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=linux-nvdimm@lists.01.org \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.