12654988cSPatrick Williams# Control.ThermalMode dbus interface with Supported and Current properties 22654988cSPatrick Williams 3*f4febd00SPatrick WilliamsAuthor: Matthew Barth !msbarth 42654988cSPatrick Williams 5*f4febd00SPatrick WilliamsOther contributors: None 62654988cSPatrick Williams 7*f4febd00SPatrick WilliamsCreated: 2019-02-06 82654988cSPatrick Williams 92654988cSPatrick Williams## Problem Description 10*f4febd00SPatrick Williams 112654988cSPatrick WilliamsAn issue was discovered where the exhaust heat from the system GPUs causes 12*f4febd00SPatrick Williamsovertemp warnings on optical cables on certain system configurations. The issue 13*f4febd00SPatrick Williamscan be resolved by altering the fan control application's floor table, 142654988cSPatrick Williamseffectively raising the floor when these optical cables exist but an interface 152654988cSPatrick Williamsis needed to do so. Since the issue revolves around the optical cables 162654988cSPatrick Williamsthemselves, where no current mechanism exists to detect the presence of the 17*f4febd00SPatrick Williamsoptical cables plugged into a card downwind from the GPUs' exhaust, an end-user 18*f4febd00SPatrick Williamsmust be presented with an ability to enable this raised floor speed table. 192654988cSPatrick Williams 202654988cSPatrick Williams## Background and References 212654988cSPatrick Williams 22*f4febd00SPatrick WilliamsThe witherspoon system supports pci cards that could have optical cables plugged 23*f4febd00SPatrick Williamsin place of copper cables. These optical cables can report overtemp warnings to 24*f4febd00SPatrick Williamsthe OS when high GPU utilization workloads exist. When this occurs with low 25*f4febd00SPatrick Williamsenough CPU utilization, the fans could be kept at a given floor speed that 26*f4febd00SPatrick Williamssufficiently cools the components within the chassis, but not the optical cables 27*f4febd00SPatrick Williamswith the slow moving hot exhaust. 28*f4febd00SPatrick Williams 29*f4febd00SPatrick WilliamsWithout an available exhaust temp sensor, there's no direct way to determine the 30*f4febd00SPatrick Williamsexhaust temp and include that within the fan control algorithm. A similar issue 31*f4febd00SPatrick Williamsexists on other system where mathematical calculations are done based on the 32*f4febd00SPatrick Williamsoverall power dissipation. 332654988cSPatrick Williams 342654988cSPatrick WilliamsMathematical calculations to logically estimate exit air temps: 352654988cSPatrick Williamshttps://github.com/openbmc/dbus-sensors/blob/master/src/ExitAirTempSensor.cpp 362654988cSPatrick Williams 372654988cSPatrick Williams## Requirements 38*f4febd00SPatrick Williams 392654988cSPatrick WilliamsCreate the ability for an end-user to enable the use of a thermal control mode 402654988cSPatrick Williamsother than the default. In this use-case, the mode is specific to an 412654988cSPatrick Williamsundetectable configuration that alters the fan floor speeds unrelated to 422654988cSPatrick Williamsstandardized profile/modes such "Acoustic" and "Performance". Once the end-user 432654988cSPatrick Williamsselects a documented mode for the platform, the thermal control application 442654988cSPatrick Williamsalters its control algorithm according to the defined mode, which is 452654988cSPatrick Williamsimplementation specific to that instance of the application on that platform. 462654988cSPatrick Williams 472654988cSPatrick Williams## Proposed Design 48*f4febd00SPatrick Williams 492654988cSPatrick WilliamsCreate a Control.ThermalMode dbus interface containing a supported list of 502654988cSPatrick Williamsavailable thermal control modes along with what current mode is in use. 51*f4febd00SPatrick WilliamsInitially the current mode would be set to "Default" and the implementation of 52*f4febd00SPatrick Williamsthe interface would populate the supported list of modes. 532654988cSPatrick Williams 542654988cSPatrick WilliamsAs one implementation, phosphor-fan-presence/control would be updated to extend 55*f4febd00SPatrick Williamsthis dbus interface object which would fill in the list of supported modes from 56*f4febd00SPatrick Williamsits fan control configuration for the platform. Once the fan control application 57*f4febd00SPatrick Williamsstarts, the interface would be added on the zone object and available to be 58*f4febd00SPatrick Williamsqueried for supported modes or update the current mode. An end-user may set the 59*f4febd00SPatrick Williamscurrent mode to any of those supported modes and the current mode would be 60*f4febd00SPatrick Williamspersisted each time it is updated. This is to ensure each time the fan control 61*f4febd00SPatrick Williamsapplication zone objects are started, the last set control mode is used. 622654988cSPatrick Williams 632654988cSPatrick Williams## Alternatives Considered 64*f4febd00SPatrick Williams 65*f4febd00SPatrick WilliamsMathematical calculation to create a virtual exhaust temp sensor value based on 66*f4febd00SPatrick Williamsoverall power dissipation. However, in the witherspoon situation, using this 67*f4febd00SPatrick Williamstechnique would not be reliable in adjusting the floor speeds for only 682654988cSPatrick Williamsconfigurations using optical cables. This would instead present the possibility 692654988cSPatrick Williamsof raising floor speeds for configurations where its unnecessary. 702654988cSPatrick Williams 712654988cSPatrick Williams## Impacts 72*f4febd00SPatrick Williams 732654988cSPatrick WilliamsThe thermal control application used must be configured to provide what thermal 742654988cSPatrick Williamscontrol modes are supported/available on the interface as well as perform the 752654988cSPatrick Williamsassociated control changes when a mode is set. 762654988cSPatrick Williams 772654988cSPatrick Williams## Testing 78*f4febd00SPatrick Williams 792654988cSPatrick WilliamsTrigger the use of an alternative fan floor table based on the thermal control 802654988cSPatrick Williamsmode selected on a witherspoon system. 81