1168d187e6e314e0a78192563f540ecdea417f0f
[debian/cpulimit.git] / CHANGELOG
1 ========== Changes in 2.5 =================
2
3 * Added some protection against causing a fork bomb
4   when the throttled process is a parent to LimitCPU.
5   Patch provided by Johann Felix.
6
7 ========== Changes in 2.4 =================
8
9 * Introduced ability to watch children of the target
10   process. This means forks of the process we are throttling
11   can also be throttled, using the "-m" or "--monitor-forks" flags.
12
13 =========== Changes in 2.3 ================
14
15 * Applied patch to man page which fixes -s description.
16
17 * Added --foreground, -f flag for launching target programs in
18   the foreground. LimitCPU then waits for the target process to exit.
19   Should be useful in scripts. Closes Debian bug #836027.
20
21
22 =========== Changes in 2.2 ================
23
24 * Escaped double-dashed in manual page to avoid
25   warnings from Debian check tool.
26
27 * Added -s --signal flag. This flag allows the user to
28   specify an alternative signal to send a watched process
29   when cpulimit terminates. By default we send SIGCONT.
30   The -s flag can accept a number (1-35) or a written
31   value such as SIGCONT, SIGSTOP, SIGINT, SIGTERM.
32
33
34 =========== Changes in 2.1 ================
35
36 * Added the --quiet (-q) flag to make 
37   limitcpu run silently
38
39 * Make sure error messages are printed to stderr.
40
41 * Placed source code in Subversion (svn) repository.
42   Accessable using the SVN checkout command. For
43   details, please see the README file.
44
45
46 =========== Changes in 2.0 ================
47
48 * Added the -- flag to make sure child processes
49   run with command line flags would not confuse
50   cpulimit.
51
52 * Corrected output of child process name in verbose mode.
53
54 =========== Changes in 1.9 ================
55
56 * Swapped out __MACH__ pre-compiler flag for __APPLE__ to
57   avoid conflicts with GNU Hurd.
58
59
60 * Added --kill (-k) and --restore (-r) flags to allow
61   target processes to be killed and restored rather than
62   simply throttled.
63
64 * Made sure version number is accepted from Makefile.
65
66 =========== Changes in 1.8 ================
67
68 * Added separate build targets for Linux, FreeBSD and OS X.
69   See the compiling section of the README file.
70
71 * Applied patch from FreeBSD to our upstream code to make
72   future updates on FreeBSD easier.
73
74 * When displaying verbose output, cpulimit now redisplays
75   the column headers every 20 lines.
76
77 * Fixed limiting CPU usage on multicore machines when
78   the desired usage limit is great than 100%.
79   ie A machine with 4 cores can now properly limit
80   multi-threaded applications to, say, 150% or 250%.
81
82 * Added test application (busy). See "test" directory.
83   To build the test software, run "make tests".
84
85 * Removed memrchr() call to allow program to compile on OS X.
86
87 * Updated Makefile to work with OS X.
88
89 * Fixed OS X compiler error. Macs do not understand
90   CLOCK_REALTIME
91
92 * Added patch from Debian which added compiler flags. This
93   should "harden" CPUlimit on Debian.
94   Thanks to Gregor for supplying this patch.
95
96
97 ============= Changes in 1.7 ===============
98
99 * Minor code cleanup.
100
101 * Make sure we do not try to throttle our own process.
102
103 * Added "tarball" option to the Makefile to assist
104   in packaging. Moved version number to the makefile.
105
106 * Added version information to CPUlimit's help screen.
107
108 * Detect the number of CPU cores on the machine and
109   cap the % we can limit. 1 CPU means we can
110   limit processes 1-100%, 2 means 1-200%, 4 means 1-400%.
111
112 * Removed extra priority changes. We now only bump
113   our priority once, if we have access to do so.
114   Also simplified priority increases so it's flexible
115   rather than "all or nothing".
116
117 * Since we now attempt to detect the number of CPUs
118   available, we also give the user the ability to
119   override our guess. The -c and --cpu flags have
120   been added for this purpose.
121
122 * Commands can be launched and throttled by appending
123   commands to the end of CPUlimit's argument list. For
124   example:
125   cpulimit -l 25 firefox
126
127
128 ======== Changes in 1.6 ============
129
130 * Updated copyright notice in README file.
131
132 * Made sure we define a reasonable buffer size
133   if PATH_MAX is not already defined. Fixes
134   building on Hurd.
135
136
137 ======== Changes in 1.5 ============
138
139 * Updated man page and cpulimit's "--help" page to
140   reflect support for multi-core CPUs.
141
142 * Added example of using cpulimit in a shell
143   in the man page and the README file.
144
145 * The Makefile now uses the default compiler
146   on the system, "cc", and tries to fall back
147   on gcc if no other compiler is found.
148
149
150 ======== Changes in 1.4 ============
151
152 * We can now accept limits of 100% or higher. Useful for multi-core
153   systems.
154
155 * Perform sanity check when getting jiffies. Should prevent memory
156   errors if we cannot open proc data.
157
158 * Added copyright to README.
159
160
161 ========== Changes in 1.3 ============
162
163 * Updated license information in cpulimit.c and README file
164
165 * The -b flag is now shown under options instead of targets
166   in the help text.
167
168 * Include man page from Debian with updates.
169
170
171 ========= Changes in 1.2 ===========
172
173 * Applied Debian patch for checking to see if and how much we can
174   adjust our own process priority.
175
176 * Added LICENSE file so there wouldn't be any confusion about
177   what license CPUlimit uses.
178
179 * Applied Debian's patch for long options to avoid segfault.
180
181 * Applied Debian's Makefile patch.
182
183 * Added Debian patch to avoid opendir leaks.
184
185 * Added -b command line parameter to make CPUlimit 
186   run in the background, returning control the the 
187   user's terminal.
188
189 * When cpulimit is launched with one PID to track
190   once that process no longer exists, CPUlimit
191   will exit. Same behaviour as though the lazy
192   flag was set.
193
194 * Ported CPUlimit to FreeBSD
195
196
197 ======= cpulimit-1.1 released ============
198
199 * Fixed a segmentation fault if controlled process exited in particular circumstances
200 * Better CPU usage estimate
201 * Fixed a <0 %CPU usage reporting in rare cases
202 * Replaced MAX_PATH_SIZE with PATH_MAX already defined in <limits.h>
203 * Command line arguments now available
204 * Now is possible to specify target process by pid
205