소스 검색

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 년 전
부모
커밋
442475a78b
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  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);
 		}