352 Commits

Author SHA1 Message Date
Marc Di Luzio
fe9b5c8744 Error with invalid device or vendor values 2019-02-12 08:55:23 +00:00
Marc Di Luzio
cee2351c55 Add config for vendor and device 2019-02-12 08:55:23 +00:00
Marc Di Luzio
8d4e9ac54e Add gpuclockctl to allow privilaged control of GPU parameters 2019-02-12 08:55:23 +00:00
Marc Di Luzio
b1bf33d386 Add config parameters for GPU clocking 2019-02-12 08:55:23 +00:00
Marc Di Luzio
aeaef7377d Preliminary (empty) implementation of GPU optimisations 2019-02-12 08:55:23 +00:00
Marc Di Luzio
cc646fe5d2 Fix bug in tests: mypath contained junk so wasn't always null terminated 2019-02-06 19:24:55 +00:00
Marc Di Luzio
66cc9e10f2 Fix up a few more logs not using our macros 2019-02-06 19:18:08 +00:00
Marc Di Luzio
3ae26596bc Fix up logging in the tests to use our macros 2019-02-06 19:11:12 +00:00
Marc Di Luzio
6793d0d436 Prepend ERROR: to all error logs 2019-02-06 17:08:50 +00:00
Marc Di Luzio
ae016c4b5e Actually log errors to stderr and LOG_ERR
Amazingly, this has been a mistake since c459c05
2019-02-06 17:08:37 +00:00
Marc Di Luzio
d90d1a71d6 Add -r -t to the usage text 2019-02-06 17:04:23 +00:00
Marc Di Luzio
f09ce2a96c Add a required NULL to execl
And add a more descriptive error for issue #100
2019-02-05 21:30:14 +00:00
Marc Di Luzio
89263ba6fd Silence cpugovctl when it succeeds
Remove a duplicate journal log that fills up the status
2019-02-03 16:56:53 +00:00
Marc Di Luzio
ba49055519 Set up inhibit_screensaver config option to disable the feature 2019-02-03 15:45:11 +00:00
Marc Di Luzio
5b55506050 Correct double invalid in error message, and actually skip out on the renice 2019-02-03 15:05:53 +00:00
Marc Di Luzio
b54a406b97 Don't log an error about a default initial renice value 2019-01-31 19:06:02 +00:00
Marc Di Luzio
e342b6e394 Remove SCHED_ISO from gamemode.c
As per request, no longer needed
2019-01-29 16:38:25 +00:00
Marc Di Luzio
82efafd54d Define SCHED_ISO if not defined 2019-01-28 18:57:56 +00:00
Alex Smith
a725ae21a0 Merge pull request #96 from mdiluz/disable-screensaver
Add code to disable the screensaver during Game Mode
2019-01-28 18:13:08 +00:00
Marc Di Luzio
b4ba947255 Fix up calling screensaver, now appears to work 2019-01-28 16:36:56 +00:00
Marc Di Luzio
42dd7e6ea8 Add initial screensaver inhibiting code 2019-01-28 16:36:56 +00:00
Marc Di Luzio
f0816230d7 Correct error message when the initial query fails 2019-01-28 16:36:08 +00:00
Marc Di Luzio
5e705f3225 Correct help message 2019-01-28 16:36:08 +00:00
Marc Di Luzio
0eece55433 Improve the test output 2019-01-28 16:36:08 +00:00
Marc Di Luzio
b97182141f Properly handle quitting by request, and use that in the tests 2019-01-28 16:36:08 +00:00
Marc Di Luzio
c99e06ed9e Small refactor
Single and dual client tests split into functions
2019-01-28 16:36:08 +00:00
Marc Di Luzio
0b4e86651e Add a preliminary client test suite
This simply tests the current functionality of the gamemode_client tools by calling each function in turn and checking the values return correctly.

	Requires the gamemode service to currently be running and installed on the system.
2019-01-28 16:36:08 +00:00
Marc Di Luzio
94cfa2de54 Add game_mode_run_tests function to trigger tests 2019-01-28 16:36:08 +00:00
Marc Di Luzio
951cf1f8b9 Add -t option to run tests on self
Right now only prints
2019-01-28 16:36:08 +00:00
Kai Krakow
5396370e5d refactor: Simplify the log hinter
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
f4cd01f989 refactor: Break wine API functions out of the main daemon source
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
403ce122f6 refactor: Break ioprio API functions out of the main daemon source
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
edf9257de4 refactor: Break sched API functions out of the main daemon source
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
b9c9a5f120 refactor: Avoid exposing various internal types
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
92967b135b refactor: Break env API functions out of the main daemon source
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
748808be7e refactor: Break proc API functions out of the main daemon source
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-09 00:33:46 +02:00
Kai Krakow
c4ff3d7250 refactor: Break helpers out of the main daemon source
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-08 20:53:04 +02:00
Alex Smith
9bbcc03c50 Merge pull request #84 from kakra/improve-scheduler-logging
gamemode-scheduler: Improve logging
2018-10-08 17:30:06 +01:00
Kai Krakow
29f8f0883c gamemode: Explain the concerning logs a little better
Testing showed that wine processes may provoke some concerning logs
multiple times. Let's explain this a little more so no questions from
worried users show up.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 20:03:17 +02:00
Kai Krakow
fd4166279b gamemode: Convert game_mode_context_has_client() to return the client
Returning a bool is not useful if we want to create some log information
from this. It now returns NULL or a client pointer which is compatible
with all of the current users.

When dereferencing the returned pointer, a read lock must be acquired
around using the returned result as the client may be deallocated from
heap otherwise.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 20:03:17 +02:00
Kai Krakow
d023495a5d gamemode: Add a tiny buffered snprintf helper
Be careful using this as it may introduce some non-obvious pitfalls.
This saves us from a heap allocation in some code locations.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 20:03:17 +02:00
Kai Krakow
4fd93ee30a gamemode: Map wine preloaders to original exe
This commit hooks game_mode_resolve_wine_preloader() into the function
to lookup the exe from a PID.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:40 +02:00
Kai Krakow
ba80a6cc3d gamemode: Add function to resolve the wine preloader executable
This commit adds a function to resolve a wine preloader binary into its
original windows binary.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:40 +02:00
Kai Krakow
373fe5a8af gamemode: Add a helper to compare string tails
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:40 +02:00
Kai Krakow
c2344f4387 gamemode: Add function to search environment of a PID
This function can look up arbitrary environment variables from a running
PID (given we have access permissions which should be usually true).

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:40 +02:00
Kai Krakow
47ea4514cd gamemode: Add function to lookup user home directory
We first try to use `$HOME`, and only then fall back to passwd lookup.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:40 +02:00
Kai Krakow
3a6d258eae gamemode: Make game_mode_context_find_exe() thread-safe
Let's use our new safe_snprintf() helper. It's designed to make
thread-safe usage easy and will also be used by the next commits.

Reported-by: Alex Smith <alex@alex-smith.me.uk>
Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:40 +02:00
Kai Krakow
81a52ddc4d gamemode: Add a tiny safe snprintf helper
Give it a buffer, it returns an allocated string respecting the buffer
size.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:54:23 +02:00
Kai Krakow
bd811c6646 gamemode: Add executable to initializer
This allows to initialize the GameModeClient later and cleans up the
error path.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:45:31 +02:00
Kai Krakow
8214f93630 gamemode: Optimize detection of dupe registers
GameMode can do a pretty expensive lookup function now for the exe.
Let's spare some CPU cycles by detecting a duplicate PID early. Nothing
makes use of the exe path at this stage.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2018-10-05 19:45:31 +02:00