Marc Di Luzio
ddecc89f10
Add a note about GAMEMODE_AUTO and blocking calls
2019-05-15 18:56:14 +01:00
Marc Di Luzio
ddc802573a
Remove unneeded includes in gamemode_client.h
2019-05-15 18:56:14 +01:00
Marc Di Luzio
a27e741beb
Reformat long_options now that travis matches
2019-05-15 18:43:42 +01:00
Marc Di Luzio
f401b49b1a
Close the openned task dirs to prevent a leak
2019-05-15 18:20:36 +01:00
Marc Di Luzio
41d35fa12a
Add a zeroed final option for getopt_long for correctness
2019-05-15 18:17:50 +01:00
Marc Di Luzio
0d018d91a8
Implement some error logging/checking and clean up some TODO comments
2019-05-13 19:44:22 +01:00
Marc Di Luzio
ef29b35258
Make sure we don't leave a hanging gamemode request from the child process
...
Otherwise other tests might have to wait for the reaper thread to clean it up
2019-05-13 19:44:22 +01:00
Marc Di Luzio
139b90e0b7
Refactor the process test function
...
Make it simply take a functor to the per tid get method
2019-05-13 19:44:22 +01:00
Marc Di Luzio
4091a0c532
Now that renice works - set it to a hard fail again
...
Also move some comments around
2019-05-13 19:44:22 +01:00
Marc Di Luzio
f00a89bc56
Actually apply setpriority to the thread not the client
2019-05-13 19:44:22 +01:00
Marc Di Luzio
2d19b61a38
Always log when getpriority fails - we will likely want to know
2019-05-13 19:44:22 +01:00
Marc Di Luzio
16c932f5d0
Adjust logs for generic process test function
2019-05-13 19:44:22 +01:00
Marc Di Luzio
f152ea9338
Initial implementation of applying renice to all process threads
2019-05-13 19:44:22 +01:00
Marc Di Luzio
3ac49385dc
Add a test for renicing multithreaded processes
2019-05-13 19:44:22 +01:00
Marc Di Luzio
87cfd9c5a6
Remove error log about known issue now that it is fixed
2019-05-13 19:44:22 +01:00
Marc Di Luzio
38e48a2d8e
Update logging to reflect thread, client relationship
2019-05-13 19:44:22 +01:00
Marc Di Luzio
bf2b057915
First pass at fix for ioprio not applying to process tree properly
...
See https://github.com/FeralInteractive/gamemode/issues/140
2019-05-13 19:44:22 +01:00
Marc Di Luzio
6639b17500
Make the multithreaded ioprio tests not cause a full failure
2019-05-13 19:44:22 +01:00
Marc Di Luzio
6869470f9b
Fix feature status codes - failures here should be considered a failure
2019-05-13 19:44:22 +01:00
Marc Di Luzio
934b497603
Implement multithreaded test framework (and use for ioprio)
...
ioprio tests will now fail due to https://github.com/FeralInteractive/gamemode/issues/140
2019-05-13 19:44:22 +01:00
Marc Di Luzio
5ffe832faf
Don't store the initial values
...
1. We don't use them anyway (though that could be a feature request)
2. They weren't stored per-client, so would be incorrect anyway
2019-05-11 13:24:13 +01:00
Marc Di Luzio
7f196cdd1a
Fix formatting for travis
2019-05-11 13:06:43 +01:00
Marc Di Luzio
598969a538
Implement restoring the old ioprio value when unregistered
...
Another part of the fix for https://github.com/FeralInteractive/gamemode/issues/141
2019-05-11 12:08:29 +01:00
Marc Di Luzio
2249a71355
Get ready for re-setting ioprio value on un-register
...
Implements tests for feature
Fixes CLAMP macro
2019-05-11 12:08:29 +01:00
Marc Di Luzio
6d14149658
Reset renice value on unregister
...
Part of fixing up https://github.com/FeralInteractive/gamemode/issues/141
2019-05-11 12:08:29 +01:00
Marc Di Luzio
09d63ae4f5
Set up for resetting niceness value
...
Add tests to check this feature
Apply config validation in config for simplicity
Note: if anything messes with the niceness (ie. it starts non-zero, or it's not the expected value during setup, we'll bail out)
2019-05-11 12:08:29 +01:00
Marc Di Luzio
7e5216c4a0
Some comments and cleanup
2019-05-11 12:08:29 +01:00
Marc Di Luzio
a482b72d37
Fix comments in gamemode_client.h
2019-05-11 12:08:29 +01:00
Marc Di Luzio
717777e6c2
Implement PID support for --request and --status
2019-05-11 12:08:29 +01:00
Marc Di Luzio
baff9c0363
Allow for long options using getopt_long
2019-05-11 12:08:29 +01:00
Alex Smith
99c7d04e69
Add a link to the GNOME Shell extension
2019-05-07 09:30:33 +01:00
Alex Smith
4a49a1c2a5
Add a list of games which integrate GameMode support ( #135 )
2019-05-07 09:25:33 +01:00
Alex Smith
67c7aa04d6
Merge pull request #136 from gicmo/sandbox_root
...
Use readlink instead of realpath so find_exe works for flatpaks
2019-05-07 09:15:56 +01:00
Christian Kellner
70e601267b
daemon: use readlink not realpath to find the exe
...
The realpath(3) will fail if the target does not exist (internally
realpath will stat all the components of the link target path).
This is a problem in the case of sandbox applications where
the exe points to the absolute path *inside* the sandbox, e.g. to
/app/bin/<name> in the case of flatpak. For these cases realpath(3)
will then fail. Therefore use readlink(3) instead.
2019-05-02 11:29:58 +02:00
Christian Kellner
0c778200ae
helpers: add helpers to automatically close fds
...
Add a inline helper function and a helper macro to be able to
automatically close file descriptors. Does nothing if the argument
is NULL or the pointed to integer is < 0.
2019-05-02 11:29:03 +02:00
Alex Smith
001a69f565
Merge pull request #133 from gicmo/lib_bus_leak
...
lib: release acquired bus reference
2019-05-02 09:46:34 +01:00
Christian Kellner
393a5e8f41
lib: release acquired bus reference
...
On each gamemode_request call a new connection to d-bus is opened
but the reference was never release thus leaking the connection
and associated memory.
2019-04-30 11:46:50 +02:00
Alex Smith
6291c13cf4
Merge pull request #130 from rombert/patch-1
...
Add reference to openSUSE packages
2019-04-12 08:34:52 +01:00
Alex Smith
dbf9974fed
Merge pull request #129 from gicmo/client_count_property
...
Introduce a ClientCount dbus Property
2019-04-12 08:33:47 +01:00
Robert Munteanu
0aced6f14e
Add reference to openSUSE packages
...
OpenSUSE packages are available at https://software.opensuse.org/package/gamemode , so let's reflect this in the README.
2019-04-11 01:08:46 +02:00
Christian Kellner
05909d1cfa
daemon: add a ClientCount dbus property
...
Introduce a new "ClientCount" dbus property that can be queried and
also watched to see if gamemode is currently active (or not).
2019-04-11 00:09:52 +02:00
Christian Kellner
6d921617f9
daemon: make context_num_clients a public method
...
So it can be used from outside daemon/gamemode.c, to e.g. implement
an ClientCount property.
2019-04-10 23:57:00 +02:00
Alex Smith
e86580c18c
Update instructions to use 1.3.1 as the current stable release
2019-04-09 08:34:44 +01:00
Alex Smith
dbc5c453d5
Merge pull request #128 from mgerstner/gpuclockctl_fixes
...
Gpuclockctl fixes
2019-04-08 09:31:22 +01:00
Alex Smith
a91156ef93
Merge pull request #125 from tgurr/prefix
...
Use path_bindir for installing gamemoderun
2019-04-05 14:05:22 +01:00
Matthias Gerstner
78c2ced7d7
external-helper: improve run_external_process() robustness
...
run_external_process() contained pipe file descriptors leaks (e.g. one
pipe end was never closed). Also the stdout might have been captured
incomplete, since only a single read() was performed on the pipe.
Furthermore should a child process try to write a larger amount of data
onto the pipe then it will become stuck, because the parent process
isn't consuming the data. Thus the timeout would trigger in these cases
although the child process does nothing wrong.
This commit changes the implementation to follow a select() based
approach that continually reads from the pipe, but discards data that
doesn't fit in the provided buffer.
2019-04-04 13:19:22 +02:00
Matthias Gerstner
b411cfff6b
gpuclockctl: refactor buffer size specification and avoid redundancies
2019-04-04 11:44:34 +02:00
Matthias Gerstner
d7394cbeb2
daemon: fix file descriptor leaks
2019-04-03 16:27:12 +02:00
Matthias Gerstner
618997f0b3
gpuclockctl: fix return value of get_gpu_state_amd()
2019-04-03 16:18:36 +02:00
Timo Gurr
85d75c303c
Use path_bindir for installing gamemoderun
...
Honor prefix for installing gamemoderun to properly work in cross
environment so it can be installed in e.g. /usr/x86_64-pc-linux-gnu/bin
instead of /usr/bin like it's already done for gamemoded.
2019-03-29 18:18:23 +01:00