mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-06 15:47:20 +02:00
Add defaultgov and desiredgov config settings
Allows users to choose which governor settings they want. Should provide some future compatibility for other governor settings.
This commit is contained in:
parent
20828da140
commit
5ebc77a0f1
@ -93,3 +93,13 @@ void config_get_gamemode_start_scripts(GameModeConfig *self,
|
|||||||
*/
|
*/
|
||||||
void config_get_gamemode_end_scripts(GameModeConfig *self,
|
void config_get_gamemode_end_scripts(GameModeConfig *self,
|
||||||
char scripts[CONFIG_LIST_MAX][CONFIG_VALUE_MAX]);
|
char scripts[CONFIG_LIST_MAX][CONFIG_VALUE_MAX]);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the chosen default governor
|
||||||
|
*/
|
||||||
|
void config_get_default_governor(GameModeConfig *self, char governor[CONFIG_VALUE_MAX]);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the chosen desired governor
|
||||||
|
*/
|
||||||
|
void config_get_desired_governor(GameModeConfig *self, char governor[CONFIG_VALUE_MAX]);
|
||||||
|
@ -184,8 +184,13 @@ static void game_mode_context_enter(GameModeContext *self)
|
|||||||
self->initial_cpu_mode[sizeof(self->initial_cpu_mode) - 1] = '\0';
|
self->initial_cpu_mode[sizeof(self->initial_cpu_mode) - 1] = '\0';
|
||||||
LOG_MSG("governor was initially set to [%s]\n", initial_state);
|
LOG_MSG("governor was initially set to [%s]\n", initial_state);
|
||||||
|
|
||||||
|
/* Choose the desired governor */
|
||||||
|
char desired[CONFIG_VALUE_MAX] = { 0 };
|
||||||
|
config_get_desired_governor(self->config, desired);
|
||||||
|
const char *desiredGov = desired[0] != '\0' ? desired : "performance";
|
||||||
|
|
||||||
/* set the governor to performance */
|
/* set the governor to performance */
|
||||||
if (!set_governors("performance")) {
|
if (!set_governors(desiredGov)) {
|
||||||
/* if the set fails, clear the initial mode so we don't try and reset it back and fail
|
/* if the set fails, clear the initial mode so we don't try and reset it back and fail
|
||||||
* again, presumably */
|
* again, presumably */
|
||||||
memset(self->initial_cpu_mode, 0, sizeof(self->initial_cpu_mode));
|
memset(self->initial_cpu_mode, 0, sizeof(self->initial_cpu_mode));
|
||||||
@ -206,7 +211,12 @@ static void game_mode_context_leave(GameModeContext *self)
|
|||||||
|
|
||||||
/* Reset the governer state back to initial */
|
/* Reset the governer state back to initial */
|
||||||
if (self->initial_cpu_mode[0] != '\0') {
|
if (self->initial_cpu_mode[0] != '\0') {
|
||||||
set_governors(self->initial_cpu_mode);
|
/* Choose the governor to reset to, using the config to override */
|
||||||
|
char defaultgov[CONFIG_VALUE_MAX] = { 0 };
|
||||||
|
config_get_default_governor(self->config, defaultgov);
|
||||||
|
const char *gov_mode = defaultgov[0] != '\0' ? defaultgov : self->initial_cpu_mode;
|
||||||
|
|
||||||
|
set_governors(gov_mode);
|
||||||
memset(self->initial_cpu_mode, 0, sizeof(self->initial_cpu_mode));
|
memset(self->initial_cpu_mode, 0, sizeof(self->initial_cpu_mode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,6 +97,11 @@ Behaviour of the config file can be explained by presenting a commented example:
|
|||||||
; The reaper thread will check every 10 seconds for exited clients
|
; The reaper thread will check every 10 seconds for exited clients
|
||||||
reaper_freq=10
|
reaper_freq=10
|
||||||
|
|
||||||
|
; The desired governor is used when entering GameMode instead of "performance"
|
||||||
|
desiredgov=performance
|
||||||
|
; The default governer is used when leaving GameMode instead of restoring the original value
|
||||||
|
defaultgov=powersave
|
||||||
|
|
||||||
[filter]
|
[filter]
|
||||||
; If "whitelist" entry has a value(s)
|
; If "whitelist" entry has a value(s)
|
||||||
; gamemode will reject anything not in the whitelist
|
; gamemode will reject anything not in the whitelist
|
||||||
|
@ -2,6 +2,11 @@
|
|||||||
; The reaper thread will check every 10 seconds for exited clients
|
; The reaper thread will check every 10 seconds for exited clients
|
||||||
reaper_freq=10
|
reaper_freq=10
|
||||||
|
|
||||||
|
; The desired governor is used when entering GameMode instead of "performance"
|
||||||
|
desiredgov=performance
|
||||||
|
; The default governer is used when leaving GameMode instead of restoring the original value
|
||||||
|
defaultgov=powersave
|
||||||
|
|
||||||
[filter]
|
[filter]
|
||||||
; If "whitelist" entry has a value(s)
|
; If "whitelist" entry has a value(s)
|
||||||
; gamemode will reject anything not in the whitelist
|
; gamemode will reject anything not in the whitelist
|
||||||
|
Loading…
x
Reference in New Issue
Block a user