Browse Source

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.
Alex Smith 6 năm trước cách đây
mục cha
commit
442475a78b
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      daemon/gamemode.c

+ 2 - 2
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);
 		}