Lines Matching full:powermode
1 #include "powermode.hpp"
23 namespace powermode namespace
51 PowerMode::PowerMode(const Manager& managerRef, const char* modePath, in PowerMode() function in open_power::occ::powermode::PowerMode
76 {Mode::PowerMode::Static, Mode::PowerMode::MaximumPerformance,
77 Mode::PowerMode::PowerSaving});
93 lg2::error("PowerMode: Persisted power mode ({MODE}/{DATA}) is not "
103 void PowerMode::createIpsObject() in createIpsObject()
128 void PowerMode::removeIpsObject() in removeIpsObject()
142 void PowerMode::setMasterOcc(const std::string& masterOccPath) in setMasterOcc()
149 "PowerMode::setMasterOcc: Master changed (was OCC{INST}, {PATH})", in setMasterOcc()
159 lg2::debug("PowerMode::setMasterOcc(OCC{INST}, {PATH})", "INST", in setMasterOcc()
170 bool PowerMode::powerModeLock() in powerModeLock()
172 lg2::info("PowerMode::powerModeLock: locking mode change"); in powerModeLock()
178 bool PowerMode::powerModeLockStatus() in powerModeLockStatus()
181 lg2::info("PowerMode::powerModeLockStatus: {STATUS}", "STATUS", in powerModeLockStatus()
187 bool PowerMode::setMode(const SysPwrMode newMode, const uint16_t oemModeData) in setMode()
191 lg2::info("PowerMode::setMode: mode change blocked"); in setMode()
214 // Convert PowerMode value to occ-control internal SysPwrMode
216 SysPwrMode getInternalMode(const Mode::PowerMode& mode) in getInternalMode()
218 if (mode == Mode::PowerMode::MaximumPerformance) in getInternalMode()
222 else if (mode == Mode::PowerMode::PowerSaving) in getInternalMode()
226 else if (mode == Mode::PowerMode::Static) in getInternalMode()
230 else if (mode == Mode::PowerMode::EfficiencyFavorPower) in getInternalMode()
234 else if (mode == Mode::PowerMode::EfficiencyFavorPerformance) in getInternalMode()
238 else if (mode == Mode::PowerMode::BalancedPerformance) in getInternalMode()
243 lg2::warning("getInternalMode: Invalid PowerMode specified"); in getInternalMode()
247 // Convert PowerMode string to OCC SysPwrMode
254 Mode::PowerMode newPMode = in convertStringToMode()
261 auto prefix = PMODE_INTERFACE + ".PowerMode."s; in convertStringToMode()
328 bool PowerMode::initPersistentData() in initPersistentData()
339 lg2::info("PowerMode::initPersistentData: Using default mode: {MODE}", in initPersistentData()
359 bool PowerMode::getMode(SysPwrMode& currentMode, uint16_t& oemModeData) in getMode()
379 bool PowerMode::updateDbusMode(const SysPwrMode newMode) in updateDbusMode()
384 "PowerMode::updateDbusMode - Requested power mode not supported: {MODE}", in updateDbusMode()
389 ModeInterface::PowerMode dBusMode = Mode::PowerMode::OEM; in updateDbusMode()
396 dBusMode = Mode::PowerMode::Static; in updateDbusMode()
399 dBusMode = Mode::PowerMode::PowerSaving; in updateDbusMode()
402 dBusMode = Mode::PowerMode::MaximumPerformance; in updateDbusMode()
405 dBusMode = Mode::PowerMode::EfficiencyFavorPower; in updateDbusMode()
408 dBusMode = Mode::PowerMode::EfficiencyFavorPerformance; in updateDbusMode()
411 dBusMode = Mode::PowerMode::BalancedPerformance; in updateDbusMode()
429 ModeInterface::powerMode(dBusMode); in updateDbusMode()
435 CmdStatus PowerMode::sendModeChange() in sendModeChange()
470 lg2::debug("PowerMode::sendModeChange: OCC master not active"); in sendModeChange()
478 "PowerMode::sendModeChange: MODE CHANGE does not get sent on non-PowerVM systems"); in sendModeChange()
494 "PowerMode::sendModeChange: SET_MODE({MODE},{DATA}) command to OCC{INST} ({LEN} bytes)", in sendModeChange()
514 "PowerMode::sendModeChange: SET MODE failed with status {STATUS}", in sendModeChange()
523 "PowerMode::sendModeChange: INVALID SET MODE response"); in sendModeChange()
531 "PowerMode::sendModeChange: SET_MODE FAILED with status={STATUS}", in sendModeChange()
538 "PowerMode::sendModeChange: Unable to set power mode to {MODE}", in sendModeChange()
547 void PowerMode::ipsChanged(sdbusplus::message_t& msg) in ipsChanged()
642 bool PowerMode::getIPSParms(bool& ipsEnabled, uint8_t& enterUtil, in getIPSParms()
679 bool PowerMode::updateDbusIPS(const bool enabled, const uint8_t enterUtil, in updateDbusIPS()
704 CmdStatus PowerMode::sendIpsData() in sendIpsData()
716 "PowerMode::sendIpsData: SET_CFG_DATA[IPS] does not get sent on non-PowerVM systems"); in sendIpsData()
724 "PowerMode::sendIpsData: Skipping IPS data due to being in an ECO Power Mode"); in sendIpsData()
752 lg2::info("PowerMode::sendIpsData: SET_CFG_DATA[IPS] " in sendIpsData()
767 "PowerMode::sendIpsData: SET_CFG_DATA[IPS] failed with status {STATUS}", in sendIpsData()
776 "PowerMode::sendIpsData: INVALID SET_CFG_DATA[IPS] response"); in sendIpsData()
784 "PowerMode::sendIpsData: SET_CFG_DATA[IPS] with status={STATUS}", in sendIpsData()
869 void PowerMode::defaultsReady(sdbusplus::message_t& msg) in defaultsReady()
904 bool PowerMode::getDefaultMode(SysPwrMode& defaultMode) in getDefaultMode()
915 method.append(PMODE_DEFAULT_INTERFACE, "PowerMode"); in getDefaultMode()
923 PMODE_INTERFACE + ".PowerMode."s + propVal; in getDefaultMode()
924 defaultMode = powermode::convertStringToMode(fullModeString); in getDefaultMode()
927 lg2::error("PowerMode::getDefaultMode: Invalid " in getDefaultMode()
945 bool PowerMode::getDefaultIPSParms(bool& ipsEnabled, uint8_t& enterUtil, in getDefaultIPSParms()
989 "PowerMode::getDefaultIPSParms could not find property: IdlePowerSaverEnabled"); in getDefaultIPSParms()
1000 "PowerMode::getDefaultIPSParms could not find property: EnterUtilizationPercent"); in getDefaultIPSParms()
1011 "PowerMode::getDefaultIPSParms could not find property: EnterUtilizationDwellTime"); in getDefaultIPSParms()
1022 "PowerMode::getDefaultIPSParms could not find property: ExitUtilizationPercent"); in getDefaultIPSParms()
1033 "PowerMode::getDefaultIPSParms could not find property: ExitUtilizationDwellTime"); in getDefaultIPSParms()
1049 bool PowerMode::useDefaultIPSParms() in useDefaultIPSParms()
1061 lg2::info("PowerMode::useDefaultIPSParms: Using default IPS parms: " in useDefaultIPSParms()
1076 bool PowerMode::openIpsFile() in openIpsFile()
1111 void PowerMode::addIpsWatch(bool poll) in addIpsWatch()
1127 void PowerMode::removeIpsWatch() in removeIpsWatch()
1148 void PowerMode::registerIpsStatusCallBack() in registerIpsStatusCallBack()
1178 int PowerMode::ipsStatusCallBack(sd_event_source* /*es*/, int /*fd*/, in ipsStatusCallBack()
1181 auto pmode = static_cast<PowerMode*>(userData); in ipsStatusCallBack()
1187 void PowerMode::analyzeIpsEvent() in analyzeIpsEvent()
1265 // overrides read/write to powerMode dbus property.
1266 Mode::PowerMode PowerMode::powerMode(Mode::PowerMode requestedMode) in powerMode() function in open_power::occ::powermode::PowerMode
1270 lg2::info("PowerMode::powerMode: mode property change blocked"); in powerMode()
1278 // Convert PowerMode to internal SysPwrMode in powerMode()
1288 lg2::info("DBus PowerMode Changed: {MODE}", "MODE", in powerMode()
1298 "PowerMode change not allowed. {MODE} is not in AllowedPowerModes", in powerMode()
1302 "PowerMode value not allowed")); in powerMode()
1312 "PowerMode not valid. {MODE} is not in AllowedPowerModes", in powerMode()
1314 elog<InvalidArgument>(Argument::ARGUMENT_NAME("PowerMode"), in powerMode()
1321 return Mode::powerMode(requestedMode); in powerMode()
1326 void PowerMode::updateDbusSafeMode(const bool safeModeReq) in updateDbusSafeMode()
1328 lg2::debug("PowerMode:updateDbusSafeMode: Update dbus state ({STATE})", in updateDbusSafeMode()
1336 bool PowerMode::getSupportedModes() in getSupportedModes()
1375 std::set<PMode::PowerMode> modesToAllow; in getSupportedModes()
1384 PMODE_INTERFACE + ".PowerMode."s + mode; in getSupportedModes()
1387 powermode::convertStringToMode(fullModeString); in getSupportedModes()
1397 std::optional<PMode::PowerMode> cMode = in getSupportedModes()
1426 PMODE_INTERFACE + ".PowerMode."s + mode; in getSupportedModes()
1428 powermode::convertStringToMode(fullModeString); in getSupportedModes()
1453 bool PowerMode::isValidMode(const SysPwrMode mode) in isValidMode()
1462 } // namespace powermode