From 442475a78bcc2af458d3a8b65957be01d0fb587b Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Sat, 4 Aug 2018 10:51:42 +0100 Subject: [PATCH] Make error messages for failure to change scheduling policies more descriptive Out of the box on most distros, both of these steps will fail (renicing requires permission which may need adjustment to limits.conf, and the upstream kernel does not support SCHED_ISO). Explicitly state this in the error messages to hopefully reduce user confusion as to why these might be failing. --- daemon/gamemode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daemon/gamemode.c b/daemon/gamemode.c index 63c02f7..463e99d 100644 --- a/daemon/gamemode.c +++ b/daemon/gamemode.c @@ -198,7 +198,7 @@ static void game_mode_apply_scheduler(GameModeContext *self, pid_t client) if (getpriority(PRIO_PROCESS, (id_t)client) != 0) { LOG_ERROR("Client [%d] already reniced, ignoring.\n", client); } else if (setpriority(PRIO_PROCESS, (id_t)client, (int)renice)) { - LOG_ERROR("Renicing client [%d] failed with error %d, ignoring.\n", client, errno); + LOG_ERROR("Renicing client [%d] failed with error %d, ignoring (your user may not have permission to do this).\n", client, errno); } /* @@ -221,7 +221,7 @@ static void game_mode_apply_scheduler(GameModeContext *self, pid_t client) if (!(strcmp(softrealtime, "off") == 0) && (enable_softrealtime)) { const struct sched_param p = { .sched_priority = 0 }; if (sched_setscheduler(client, SCHED_ISO, &p)) { - LOG_ERROR("Setting client [%d] to SCHED_ISO failed with error %d, ignoring.\n", + LOG_ERROR("Setting client [%d] to SCHED_ISO failed with error %d, ignoring (your kernel may not support this).\n", client, errno); }