1
2009-05-04 Guillaume Chazarain <guichaz@gmail.com>
3
* NEWS, THANKS, iotop.1, iotop/ui.py: Added --quiet
5
2009-05-03 Guillaume Chazarain <guichaz@gmail.com>
7
* NEWS, THANKS, iotop.1, iotop/ui.py: Added --time
9
2009-05-02 Guillaume Chazarain <guichaz@gmail.com>
11
* NEWS, iotop.1, iotop/data.py, iotop/ui.py: Added the -k,
14
2009-05-02 Guillaume Chazarain <guichaz@gmail.com>
16
* MANIFEST.in, setup.py: Upgrade setuptools from 0.6c6 to 0.6c9
18
2009-03-31 Guillaume Chazarain <guichaz@gmail.com>
20
* MANIFEST.in, release.sh, setup.cfg: Include a ChangeLog in the
23
2009-03-30 Guillaume Chazarain <guichaz@gmail.com>
25
* iotop/data.py: Put kernel threads between square brackets
27
2009-03-30 Guillaume Chazarain <guichaz@gmail.com>
29
* iotop/ui.py: Properly sanitize the value in the error report
31
2009-03-30 Guillaume Chazarain <guichaz@gmail.com>
33
* NEWS, iotop.1, iotop/data.py, iotop/ui.py: - Added the --accumulated option to show the accumulated traffic
34
instead of the current bandwidth (dynamically toggled with 'a') - Resist to process dying during the taskstats retrieval - Adjusted column headers
36
2009-03-29 Guillaume Chazarain <guichaz@gmail.com>
38
* NEWS: Document some recent changes
40
2009-03-29 Guillaume Chazarain <guichaz@gmail.com>
42
* iotop/data.py, iotop/ui.py, iotop/vmstat.py: - Manage a two level tree of processes: o with --processes:
43
[tgids...] -> [tid...] o without: [tids...] -> [tid] => This handles
44
nicely the case where a thread dies during a sampling period and we
45
should drop its stats. - Don't cache the ioprio as it may change - Get the total I/O bandwidth from /proc/vmstat instead of summing
46
it, as we can count some of it twice (ntfs-3g, nfsd...)
48
2009-03-29 Guillaume Chazarain <guichaz@gmail.com>
50
* iotop/ui.py: Added --profile
52
2009-03-29 Guillaume Chazarain <guichaz@gmail.com>
54
* iotop/data.py: Don't crash when a thread just disappeared
56
2009-03-29 Guillaume Chazarain <guichaz@gmail.com>
58
* iotop/data.py, iotop/ui.py: Better UID detection: read it from
59
stat(/proc/PID) instead of /proc/PID/status and cache it only if not
60
running as root as the process may setuid(). Rewrite
61
check_if_valid() to is_monitored(). Also re-read /proc/PID/status
62
if needed when re-reading /proc/PID/cmdline.
64
2009-01-31 Guillaume Chazarain <guichaz@gmail.com>
66
* THANKS, iotop/ui.py: From: Ryan Lovett <ryan@stat.berkeley.edu>
67
When running in batch mode, iotop doesn't flush its output so if
68
you're writing to a file, you won't see anything (e.g. via 'tail
69
-f') until iotop terminates
71
2008-12-29 Guillaume Chazarain <guichaz@gmail.com>
73
* iotop/data.py: Add a meaningful __repr__()
75
2008-12-29 Guillaume Chazarain <guichaz@gmail.com>
77
* iotop/data.py: If a new pinfo() is successfully created but we
78
cannot get its taskstats, it will not have a .ioprio field, so it
79
must be garbage collected. So, initialize .mark to False so that
80
incompletely built objects are garbage collected. Traceback (most recent call last): File "./iotop.py", line 11, in <module> main() File "/home/g/iotop/iotop/ui.py", line 271, in main curses.wrapper(run_iotop, options) File "/usr/lib/python2.5/curses/wrapper.py", line 44, in wrapper return func(stdscr, *args, **kwds) File "/home/g/iotop/iotop/ui.py", line 226, in run_iotop ui.run() File "/home/g/iotop/iotop/ui.py", line 97, in run self.process_list.duration) File "/home/g/iotop/iotop/ui.py", line 195, in refresh_display lines = self.get_data() File "/home/g/iotop/iotop/ui.py", line 183, in get_data return map(format, processes) File "/home/g/iotop/iotop/ui.py", line 167, in format line = '%5d %4s %-8s %11s %11s %7s %7s ' % (p.pid, p.ioprio,
81
AttributeError: 'pinfo' object has no attribute 'ioprio'
83
2008-12-28 Guillaume Chazarain <guichaz@gmail.com>
85
* iotop/data.py: The I/O priority can be dynamically changed, so we
86
must re-fetch it every time.
88
2008-12-28 Guillaume Chazarain <guichaz@gmail.com>
90
* iotop.1, iotop/ui.py: Added the 'p' key to dynamically toggle the
93
2008-12-25 Guillaume Chazarain <guichaz@gmail.com>
95
* iotop/ui.py: The interactive control 'O' is the same as 'o'.
97
2008-12-25 Guillaume Chazarain <guichaz@gmail.com>
99
* iotop.1, iotop/data.py, iotop/ioprio.py, iotop/ui.py: Added
100
support for showing the I/O priority
102
2008-12-23 Guillaume Chazarain <guichaz@gmail.com>
104
* iotop/ui.py: More verbose error handling for this exception:
105
Traceback (most recent call last): File "./iotop.py", line 11, in <module> main() File "/src/iotop/iotop/iotop/ui.py", line 249, in main curses.wrapper(run_iotop, options) File "/usr/lib64/python2.5/curses/wrapper.py", line 44, in wrapper return func(stdscr, *args, **kwds) File "/src/iotop/iotop/iotop/ui.py", line 205, in run_iotop ui.run() File "/src/iotop/iotop/iotop/ui.py", line 95, in run self.process_list.duration) File "/src/iotop/iotop/iotop/ui.py", line 198, in refresh_display self.win.addstr(i + 2, 0, lines[i].encode('utf-8'))
106
_curses.error: addstr() returned ERR
108
2008-11-16 Guillaume Chazarain <guichaz@gmail.com>
110
* iotop/ui.py: Also keep only 2 decimal digits when printing bytes
113
2008-09-07 Guillaume Chazarain <guichaz@gmail.com>
115
* NEWS, iotop/version.py: Version bump and mention that -P is now
118
2008-09-07 Guillaume Chazarain <guichaz@gmail.com>
120
* iotop.1, iotop/ui.py: Clarify -p help text, and cosmetically add a
123
2008-09-07 Guillaume Chazarain <guichaz@gmail.com>
125
* iotop.1: iotop is a mix of top(1) and vmstat(1)
127
2008-09-07 Guillaume Chazarain <guichaz@gmail.com>
129
* iotop.1, iotop/data.py: Precisely document required kernel options
130
http://bugs.debian.org/497360
132
2008-09-06 Guillaume Chazarain <guichaz@gmail.com>
134
* iotop/data.py: Reimplement -P without using the half implemented
135
TASKSTATS_CMD_ATTR_TGID
137
2008-09-06 Guillaume Chazarain <guichaz@gmail.com>
139
* iotop/data.py, iotop/ui.py: Cleanup: introduce a Stats class to
140
aggregate the useful output from taskstats insteaf of using a dict.
142
2008-08-18 Guillaume Chazarain <guichaz@gmail.com>
144
* iotop/data.py: It seems the Name: field can sometimes be empty.
145
http://bugs.debian.org/492568
147
2008-08-18 Guillaume Chazarain <guichaz@gmail.com>
149
* iotop/data.py: Cosmetic
151
2008-07-07 Guillaume Chazarain <guichaz@gmail.com>
153
* NEWS, iotop/version.py: The new features list is not that long
155
2008-06-24 Guillaume Chazarain <guichaz@gmail.com>
157
* iotop/data.py: Also handle invalid UTF-8
159
2008-06-23 Guillaume Chazarain <guichaz@gmail.com>
161
* iotop/ui.py: Unlike insstr, addstr is picky about lines wider than
164
2008-06-23 Guillaume Chazarain <guichaz@gmail.com>
166
* iotop/data.py, iotop/ui.py: Try harder at handling UTF-8
168
2008-06-18 Guillaume Chazarain <guichaz@gmail.com>
170
* NEWS, THANKS, iotop/data.py, iotop/ui.py: UTF-8 strings are now
173
2008-06-18 Guillaume Chazarain <guichaz@gmail.com>
175
* NEWS, iotop/version.py: Bump version
177
2008-05-28 Guillaume Chazarain <guichaz@gmail.com>
181
http://lintian.debian.org/reports/tags/hyphen-used-as-minus-sign.html
183
2008-05-23 Guillaume Chazarain <guichaz@gmail.com>
185
* MANIFEST.in, install-rpm.sh, setup.cfg, setup.py: Package the man
188
2008-05-22 Guillaume Chazarain <guichaz@gmail.com>
190
* iotop/ui.py: Reordered the option like in the man page, as it's a
191
more sensible ordering
193
2008-05-22 Guillaume Chazarain <guichaz@gmail.com>
195
* THANKS, iotop.1: Added a man page
197
2008-05-22 Guillaume Chazarain <guichaz@gmail.com>
199
* iotop/ui.py: Safer color terminal handling
201
2008-05-22 Guillaume Chazarain <guichaz@gmail.com>
203
* iotop/ui.py: Stop flickering during refresh
205
2008-05-22 Guillaume Chazarain <guichaz@gmail.com>
207
* NEWS, iotop/data.py, iotop/ui.py: Added workaround for missing
208
ac_etime in TASKSTATS_CMD_ATTR_TGID
210
2008-04-20 Guillaume Chazarain <guichaz@gmail.com>
214
2008-04-20 Guillaume Chazarain <guichaz@gmail.com>
216
* iotop/ui.py: Document the 'o' key.
218
2008-04-20 Guillaume Chazarain <guichaz@gmail.com>
220
* iotop/ui.py: Consistency in the grammar
222
2008-04-20 Guillaume Chazarain <guichaz@gmail.com>
224
* iotop/ui.py: Filter processes to display before trimming them to
225
avoid removing processes that would be displayed after the trimming.
226
For example, sorting by PID could place I/O active processes at the
227
end, but we don't want to delete them as they would be shown anyway
230
2008-04-06 Guillaume Chazarain <guichaz@gmail.com>
232
* NEWS, iotop/ui.py: Typing 'p' dynamically toggle the --only option
234
2008-03-20 Guillaume Chazarain <guichaz@gmail.com>
236
* bin/iotop: Detect unsuccessful attempts at running an uninstalled
239
2008-03-14 Guillaume Chazarain <guichaz@gmail.com>
241
* iotop.py, run-iotop: Let's use the obvious filename
243
2008-03-10 Guillaume Chazarain <guichaz@gmail.com>
245
* release.sh: Remove blank line
247
2008-03-10 Guillaume Chazarain <guichaz@gmail.com>
249
* release.sh: Added release script
251
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
253
* MANIFEST.in, bin/iotop, setup.cfg, setup.py: Added packaging
256
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
258
* iotop/ui.py, iotop/version.py: Extracted out version number
260
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
262
* COPYING: Added GPLv2 COPYING file
264
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
266
* THANKS: Added THANKS file
268
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
270
* .gitignore: Ignore byte compiled files
272
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
274
* NEWS: Added NEWS file
276
2008-03-09 Guillaume Chazarain <guichaz@yahoo.fr>
278
* genetlink.py, iotop.py, iotop/__init__.py, iotop/data.py,
279
iotop/genetlink.py, iotop/netlink.py, iotop/ui.py, netlink.py,
280
run-iotop: Code reorganization
282
2008-03-05 Guillaume Chazarain <guichaz@yahoo.fr>
284
* genetlink.py, iotop.py, netlink.py: Instead of copy/pasting
285
pynl80211 in iotop.py, keep it in separate files
287
2008-03-05 Guillaume Chazarain <guichaz@yahoo.fr>
289
* iotop.py: Update e-mail and copyright information
291
2008-03-05 Guillaume Chazarain <guichaz@yahoo.fr>
293
* iotop.py: Reading the cmdline of a dead process raises an
294
exception too. Reported by Roland Kletzing <devzero@web.de>
296
2008-03-02 Guillaume Chazarain <guichaz@yahoo.fr>
298
* iotop.py: Skip the dirname only when the cmdline starts with an
301
2008-01-20 Guillaume Chazarain <guichaz@yahoo.fr>
303
* iotop.py: Fix the typo with the right correction this time
305
2008-01-20 Guillaume Chazarain <guichaz@yahoo.fr>
307
* iotop.py: Simplify help generation
309
2008-01-18 Guillaume Chazarain <guichaz@yahoo.fr>
311
* iotop.py: Bump version
313
2008-01-18 Guillaume Chazarain <guichaz@yahoo.fr>
315
* iotop.py: Removed embedded history comments as it is now in git.
317
2008-01-18 Guillaume Chazarain <guichaz@yahoo.fr>
319
* iotop.py: Added --only as suggested by Iain Lea <iain@bricbrac.de>
321
2008-01-18 Guillaume Chazarain <guichaz@yahoo.fr>
323
* iotop.py: Fix typo, reported by Iain Lea <iain@bricbrac.de>
325
2007-12-19 Guillaume Chazarain <guichaz@yahoo.fr>
327
* iotop.py: Tolerate misconfigured terminals
329
2007-09-30 Guillaume Chazarain <guichaz@yahoo.fr>
333
2007-08-26 Guillaume Chazarain <guichaz@yahoo.fr>
335
* iotop.py: Document taskstats bug:
336
http://lkml.org/lkml/2007/8/2/185
338
2007-08-25 Guillaume Chazarain <guichaz@yahoo.fr>
340
* iotop.py: Handle terminal resizing
342
2007-08-25 Guillaume Chazarain <guichaz@yahoo.fr>
344
* iotop.py: More accurate cutting of the command line
346
2007-08-19 Guillaume Chazarain <guichaz@yahoo.fr>
348
* iotop.py: handle empty process list
350
2007-08-19 Guillaume Chazarain <guichaz@yahoo.fr>
352
* iotop.py: Fix "-P -p NOT_A_TGID", optimize -p
354
2007-08-13 Guillaume Chazarain <guichaz@yahoo.fr>
356
* iotop.py: Handle short replies, and fix bandwidth calculation when
359
2007-07-23 Guillaume Chazarain <guichaz@yahoo.fr>
361
* iotop.py: Added support for taskstats version > 4 in iotop.py
363
2007-07-15 Guillaume Chazarain <guichaz@yahoo.fr>
365
* Initial import of iotop