DMTF profiles

OpenLMI Fan provider implements Fan Profile

Fan Profile

Implemented DMTF version: 1.0.1

Described by DSP1013

It defines the classes used to describe the fans and the possible redundancy of the fans in a managed system. The document also defines association classes that describe the relationship of the fan to the fan’s physical aspects (such as FRU data) to the sensors monitoring the fans, to other cooling devices, to redundancy status, and to DMTF profile version information. The information in this specification is intended to be sufficient for a provider or consumer of this data to identify unambiguously the classes, properties, methods, and values that are mandatory to be instantiated and manipulated to represent and manage fans and redundant fans of managed systems and subsystems that are modeled using the DMTF CIM core and extended model definitions.

Not implemented features

DMTF profile defines many classes that are not instrumented due to limitations of low level libraries giving informations about fans. Here is a list of not implemented classes:

CIM_ManagedSystemElement
Models the piece of hardware being cooled by particular fan. It’s associated with LMI_Fan through CIM_AssociatedColling which is also not instrumented.
CIM_RedundancySet
Represents redundacy of fans belonging to particular computer system. It’s associated with LMI_Fan through CIM_MemberOfCollection and CIM_IsSpare associations. There is no way how to detect whether the fan is spare or not.

Classes that shall be implemented

There are still classes missing implementation and are planned to be delivered in future versions.

CIM_SystemDevice
Associates LMI_Fan to CIM_ComputerSystem.
CIM_EnabledLogicalElementCapacilities
Represents the capabilities of associated fan. It’s associated to LMI_Fan through CIM_ElementCapabilities.

Not implemented optional features

Physical Asset association from LMI_Fan to CIM_PhysicalPackage through CIM_Realizes association class is not instrumented. This is an optional feature. It may be implemented later.

Physical Asset is a related profile implemented by OpenLMI Hardware provider.

Class overview

Class-name Parent_class Type
LMI_Fan CIM_Fan Plain
LMI_FanSensor CIM_NumericSensor Plain
LMI_FanAssociatedSensor CIM_AssociatedSensor Association

LMI_Fan

Represents the the fan installed and connected to computer. One of the most important keys is DeviceID. It’s a sys path to kernel driver’s abstraction for fan combined with its name.

Typical sys directory for fan looks like this:

/sys/class/hwmon/hwmon1/device/
├── driver -> ../../../bus/platform/drivers/thinkpad_hwmon
├── fan1_input
├── hwmon
│   └── hwmon1
│       ├── device -> ../../../thinkpad_hwmon
│       ├── power
│       │   ├── async
│       │   ├── autosuspend_delay_ms
│       │   ├── control
│       │   ├── runtime_active_kids
│       │   ├── runtime_active_time
│       │   ├── runtime_enabled
│       │   ├── runtime_status
│       │   ├── runtime_suspended_time
│       │   └── runtime_usage
│       ├── subsystem -> ../../../../../class/hwmon
│       └── uevent
├── modalias
├── name
├── power
│   ├── async
│   ├── autosuspend_delay_ms
│   ├── control
│   ├── runtime_active_kids
│   ├── runtime_active_time
│   ├── runtime_enabled
│   ├── runtime_status
│   ├── runtime_suspended_time
│   └── runtime_usage
├── pwm1
├── pwm1_enable
├── subsystem -> ../../../bus/platform
└── uevent

Corresponding DeviceID is /sys/class/hwmon/hwmon1/device/fan1. The fan name is the prefix of *_input file which gives the current RPM value.

It has several other interesting properties:

OtherIdentifyingInfo : string []
Has the name of chip controlling the fan as the first item.

LMI_FanSensor

Represents a sensor measuring a speed of particular fan. It’s exactly the same keys and values except for CreationClassName containg the name of corresponding class LMI_Fan.

It inherts many methods that are not supported because underlying library does not offer such functionality. Controlling of fans is very hardware dependent. Different drivers may provide different ways and possibilities to manage connected fans.