-
Notifications
You must be signed in to change notification settings - Fork 30
/
ChangeLog
265 lines (247 loc) · 10.1 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
0.6.0-alpha.1
=============
* removed embedded libproc, coreutils, lbc; but needs to be statically linked
against external (system) libproc (issue #37)
* CGROUPS handling changes
- ulatencyd does not touch foreign cgroups
- scheduler skips processes in groups created outside ulatencyd
- stores own cgroups in private cgroup hierarchies
- unused cgroups may manually removed via DBUS call
- org.quamquam.ulatencyd.System.cgroupsCleanup method
- new cgroups release agent script (passes request to scheduler via dbus)
- cleans cgroups on exit (scheduler switches to 99-cleanup.lua mappings)
- removes cgroups left behind the previous ulatencyd instance
- reimplemented u_proc.cgroup* stuff in the C core
+ U_PROC:get_cgroup(subsys)
+ U_PROC:set_cgroup(subsys, cgroup_path)
+ U_PROC.cgroup => u_proc.cgroup (GHashTable)
+ U_PROC.cgroup_raw => u_proc.cgroup_raw (char **)
+ U_PROC.cgroup_origin => u_proc.cgroup_origin (GHashTable)
+ U_PROC.cgroup_origin_raw => u_proc.cgroup_origin (char **)
+ u_proc_ensure(proc, CGROUP, ...)
* support for process isolation (Isolate filter, via isolate flag)
see simple.d/isolate.conf, rules/zz_isolate.lua
* added flexibility to scheduler mappings
- sysflags prefilter
- mulitple checks functions
- rule may be skipped till end of current scheduler run
- multiple adjusts function
- adjust functions to be run only once per scheduler run
- ulatency.match_flag()
- scheduler:register_after_hook(): registers function to be run after the
scheduling of processes is finished.
- string:rtrim()
- fix CGroup:get_value()
- ulatency.is_pid_alive(pid): tests if /proc/pid/ exists
* reimplemented tasks (now stored in a hash table, persistent across
iterations and usable/extensible in LUA, reference counting)
+ U_TASK.is_valid
+ U_TASK.is_invalid
+ U_TASK.data
+ U_TASK.tid
+ U_TASK.proc_pid
(if U_TASK.is_valid:)
+ U_TASK.proc
+ all proc_t fields (ppid,tgid,euid, etc.)
- ulatency.get_tid(tid) from LUA
- ulatency.get_pid(pid,include_tasks) if `include_tasks` and pid is a
thread, returns its thread leader.
* sessions
+ disable xwatch polling and clear the active pids lists of users with no
active session
+ on session change run full iteration and make sure it is run before next
xwatch poll
* ulatency client:
- fixed sysflags command
- ulatency clear <cgroup>|ALL
+ tries to thaw frozen groups
+ does not clear cgroups not created by ulatencyd
+ clears ulatencyd private hierarchies
+ keeps ulatencyd private hierarchy synced with cgroup hierarchy that
subsystem controller
- ulatency mounts: added column with ulatencyd private hierarchies
- new command "clear-empty": clears all empty cgroups created by ulatencyd;
- ulatency --cmd: fixed if /proc/#/cmdline contains UTF-8 chars
* configuration changes for ulatencyd.conf:
- raised default io.threshold from 500 to 3000, 500 was IMHO too low
* configuration changes in cgroups.conf:
- added memory.move_charge_at_immigrate'] = 1 to memory subsys defaults.
- remove support for complex cgroups hierarchies and mount points,
supports only the most usual scenario with each cgroup subsystem mounted
in separate hierarchy (unde CGROUP_ROOT/<subsystem>).
CGROUP_MOUNTPOINTS option was replaced with CGROUP_SUBSYSTEMS - simple
array of enabled subsystems.
* split src/core.lua to modules inside src/lua/
* U_PROC extensible in LUA
* modules are loaded vie gmodule (from GLib)
* netlink_fallback module; used if kernel is not compiled with PROC_EVENTS
* delay queue related fixes and optimizations
* u_proc_ensure() optimizations
* improved signal handling (quit, suspend)
* fixed linux signal handling to be async safe
* logging enhancements
* system "startup" flag set until first iteration finished
* commit a new cgroup setting prior any process is added
* sample logrotate file (scripts/logrotate)
* sample sysv-rc init file (scripts/service/sysv-rc/); probably containins
Debian specific code.
* sched_autogroup in linux kernel is restored on shutdown
* umask is set to 022 instead of 0
* doesn't die when cgroup subsystem cannot be mounted, just print warning
* fixed a lot of memory leaks
* cgroups removed outside ulatencyd now correctly handled (issue #28)
* detects valid range of values of cgroup parameters (issue #36)
* if process is blocked from scheduling, print the reason
* fix SMP: Attach isolated cpuset cgroups to all online CPUs
* fixed merge_config pre rules handling (scheduler/00-common)
* fixed io priority for user.media (to real-time)
* fixes in default scheduler (20-desktop.lua)
* fix the out of source directory build
* io.rule turns NCQ (IOPS) mode on block devices under load
* limits user.* labels to users and {daemon,system}.* to system processes
* added daemon.media label (for mpd)
* doxygen documentation (not finished)
* a lot updated simple rules
* new __experimental__ scheduler mappings "one_seat_desktop"
* other bug fixes not mentioned here
0.5.0 / 2011-04-05
==================
* bump version
* fix single task config
* hide videoplayback for now
* test if subsystem is loaded
* Merge branch 'master' into develop
* fix missing labels on game and single_task config
* add video_playback config
* cache available cgroup names
* add xfce & lxde configs
* list configs with no info object as well
* better error reporting and handling
* better error messages on connecting errors
* retry process lookup in remote api calls
* install all man pages
* fix typo schduler -> scheduler in ulatency
* add manpage for run-single-task
* add manpage for run-game
* add ulatency-gui to ulatency.1 manpage
* fix goption warning for G_OPTION_FLAG_NO_ARG
0.5.0-rc3 / 2011-03-24
==================
* fix client install rules
0.5.0-rc2 / 2011-03-24
==================
* also run instant filters on processes
* do mixture of read/write on mem pages
* don't put active processes into rt io
* implement stress mode in memleak
* implement io prio settings for processes
* add banshee player
* Merge commit 'dbdcb918d051d71c913e63ed6bea605088b457ed'
* more robust version of terminal size detection
* fix io bottleneck detector
* catch errors caused in terminal detection
* Merge commit 'f6715991672ccc8c7fd239b8139aae74dac3a3f5'
* work without python-dbus-qt4
* add set config menu in window
0.5.0-rc1 / 2011-03-23
==================
* Merge commit 'd8b2bd5c248c06b39c7d7da56a3961cad1d36cc9'
* update readme to reflect recent depencies
* let gui survive daemon restart
* update gui to use policykit
* install doc files, bump version
* Merge commit '4d65ec602b0673876732fe100506f68fbc8e08b0'
* updates to documentation
* optimize doxygen for project
* Updated Start Hacking (markdown)
* don't start ulatencyd more then once
* optional build docs
* Merge commit 'bd23966e9e27132cedceb775d01c8fe91e5bb9f3'
* add make docs target
* Updated Home (markdown)
* rename file
* Merge commit '76d54cf31eacbb060bcad7f5d41b8e6d78976bb0'
* start changing documentation
* add api doc generation trough doxygen
* add manpages. thanks Alessandro
* add script for update external repositories
* Add 'docs/wiki/' from commit '978fb5626ac4f2c61c6704dba636c7562b3ce09e'
* add script to run ulatencyd under alleyoop
* Merge commit '0a9ff7e9373c6d7a9f202f1ebd2252291e65e86a'
* adjust cmake rules
* implement policykit support
* better run command code
* use glob matching in simplerules
* cleanup exe readlink
* add recrusive flags api to dbus interface
* add rules for boinc client
* use full path on exe matches, not substring
* adjust dbus interface to recrusive list flags changes
* add u_proc_list_flags function, inherit changes
* ensure notifiy release agent is set
* add extra executable for gui/close window change
* print help config on run command
* add support for execute process in switches scheduler config
* use u_task struct for task storage
* add /usr/local/games to game path
* add single_task & game config
* bug fix: check data if none
* bug fix:function prnt doesnt worked under python3
* move scheduler configs into own path
* implement hard limits on memory usage
* reduce io prio on poison targets
* bump version
* fix install rules
* Updated 1 FAQ (rest)
* Updated Home (markdown)
* Updated Flag system (markdown)
* Updated Flag system (markdown)
* Updated Flag system (markdown)
* Updated Home (markdown)
* Created flags.md (markdown)
* Updated Home (markdown)
* Updated 1 FAQ (rest)
* Write a small message here explaining this change. (Optional)
* Updated Writing Rules (markdown)
* Updated Adjusting default scheduler (markdown)
* Updated 1 FAQ (rest)
* Updated How does it work (markdown)
* Updated How does it work (markdown)
* Updated 1 FAQ (rest)
* Updated 1 FAQ (rest)
* Updated Start Hacking (markdown)
* Created Start-hacking (markdown)
* Updated Home (markdown)
* Updated 1 FAQ (rest)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* Created Adjusting default scheduler (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* started writing rules howto
* Created How does it work (markdown)
* Updated Home (markdown)
* Updated 1 FAQ (rest)
* Updated 1 FAQ (rest)
* Updated 1 FAQ (rest)
* Updated 1 FAQ (rest)
* Write a small message here explaining this change. (Optional)
* Updated 1 FAQ (rest)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated Home (markdown)
* Updated 1 Does ulatencyd support my cgroups mount points (rest)
* Created Faq (rest)
* Updated Home (markdown)
* start dbus specs
* Updated Home (markdown)
* Updated Home (markdown)
* Created Ideas to test (markdown)
* Created Architecture (markdown)
* add arch image
* Initial Commit