nvme: Add hardware monitoring support
authorGuenter Roeck <linux@roeck-us.net>
Wed, 6 Nov 2019 14:35:18 +0000 (06:35 -0800)
committerKeith Busch <kbusch@kernel.org>
Mon, 11 Nov 2019 16:57:35 +0000 (01:57 +0900)
commit400b6a7b13a3fd71cff087139ce45dd1e5fff444
tree6b7ba2adfb9a7157f523800b1831d6589f5d9214
parent64fab7290dc3561729bbc1e35895a517eb2e549e
nvme: Add hardware monitoring support

nvme devices report temperature information in the controller information
(for limits) and in the smart log. Currently, the only means to retrieve
this information is the nvme command line interface, which requires
super-user privileges.

At the same time, it would be desirable to be able to use NVMe temperature
information for thermal control.

This patch adds support to read NVMe temperatures from the kernel using the
hwmon API and adds temperature zones for NVMe drives. The thermal subsystem
can use this information to set thermal policies, and userspace can access
it using libsensors and/or the "sensors" command.

Example output from the "sensors" command:

nvme0-pci-0100
Adapter: PCI adapter
Composite:    +39.0°C  (high = +85.0°C, crit = +85.0°C)
Sensor 1:     +39.0°C
Sensor 2:     +41.0°C

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/Kconfig
drivers/nvme/host/Makefile
drivers/nvme/host/core.c
drivers/nvme/host/hwmon.c [new file with mode: 0644]
drivers/nvme/host/nvme.h