-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
897 lines (515 loc) · 28.9 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
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
2013-05-27 Guillaume Chazarain <[email protected]>
* NEWS: Document signature
2013-05-27 Guillaume Chazarain <[email protected]>
* release.sh: GPG sign all released files
2013-05-26 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump.
2013-05-26 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Clean exit also on SIGTERM otherwise the terminal is
unusable.
2013-05-26 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Python3 can print UTF-8 to curses, python2 can't so
let's handle both.
2013-05-26 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Cleanly exit on SIGINT otherwise python3 will leave
the terminal in an unusable state.
2013-05-26 Guillaume Chazarain <[email protected]>
* .install-rpm.sh: No need to make the RPM install script move bin/
to sbin/ now that setup.py installs to sbin/.
2013-05-26 Guillaume Chazarain <[email protected]>
* setup.py: Make setup.py install the iotop script in sbin/ instead
of bin/.
2013-05-26 Guillaume Chazarain <[email protected]>
* iotop/ui.py: In some setup closing the xterm window only has the
effect of deleting the pty. Then iotop would be busy looping
reading on stdin. Instead we should detect the terminal deletion and
exit. When this happens iotop receives (0, 25) as an event, which
is (stdin, select.POLLIN|select.POLLERR|select.POLLHUP). Also, represent an empty even list as [] instead of 0, this is just
cosmetic.
2013-02-04 Paul Wise <[email protected]>
* iotop/data.py, iotop/ioprio.py, iotop/ui.py, iotop/vmstat.py: Fix
the FSF address embedded in a few files
2013-02-04 Paul Wise <[email protected]>
* sbin/iotop: Fix python3 compatibility for iotop when installed
2013-02-03 Guillaume Chazarain <[email protected]>
* README, iotop/data.py: Update python requirements
2013-02-03 Guillaume Chazarain <[email protected]>
* NEWS: Also advertise the move to sbin/ as it's significant
2013-02-03 Guillaume Chazarain <[email protected]>
* .install-rpm.sh: The RPM should also install to sbin.
2013-02-03 Guillaume Chazarain <[email protected]>
* bin/iotop, sbin/iotop: Moved to sbin.
2013-02-03 Guillaume Chazarain <[email protected]>
* .install-rpm.sh, MANIFEST.in: Finish man page renaming
2013-02-03 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump
2013-02-03 Guillaume Chazarain <[email protected]>
* NEWS, THANKS: Advertise the newly introduced differentiation
between total and actual I/O.
2013-02-03 Guillaume Chazarain <[email protected]>
* iotop/ui.py: 80 cols
2012-10-10 Igor Bazhitov <[email protected]>
* iotop.8, iotop/data.py, iotop/ui.py: Add 'Actual' bandwidth stats
to summary header 'Total' values in the summary header may look confusing to users.
They represent actual kernel <-> disk I/O bandwidth, while
individual values for processes/threads show process <-> kernel I/O
bandwidth. Rename 'Total' to 'Actual' and add old 'Total' status line that sums
up all individual process/thread bandwidths. Explain the difference
between 'Total' and 'Actual' in the manpage.
2012-10-09 Igor Bazhitov <[email protected]>
* README: Update manpage name in README
2012-12-05 Paul Wise <[email protected]>
* iotop/data.py: Fix crash when running under python3. This reverts cd6ffb5913664844290f44a7ea48533caf8c459e Traceback (most recent call last): File "./iotop.py", line 12, in <module> main() File "./iotop/iotop/ui.py", line 597, in main main_loop() File "./iotop/iotop/ui.py", line 587, in <lambda> main_loop = lambda: run_iotop(options) File "./iotop/iotop/ui.py", line 485, in run_iotop return curses.wrapper(run_iotop_window, options) File "/usr/lib/python3.2/curses/wrapper.py", line 43, in wrapper return func(stdscr, *args, **kwds) File "./iotop/iotop/ui.py", line 478, in run_iotop_window ui.run() File "./iotop/iotop/ui.py", line 153, in run total = self.process_list.refresh_processes() File "./iotop/iotop/data.py", line 459, in refresh_processes self.processes.items() if File "./iotop/iotop/data.py", line 460, in <listcomp> process.update_stats()]) File "./iotop/iotop/data.py", line 358, in update_stats for tid, thread in self.threads.items(): RuntimeError:
dictionary changed size during iteration [This is valid since 0fc4ab84c8cbba1fbe83dc71fb89100b87c54898 added the self.threads = dict(...)]
2012-09-02 Paul Wise <[email protected]>
* iotop.1, iotop.8, setup.py: Move iotop out of the path for users
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Fix the setting of the I/O priority and advertise it
a litle more.
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Here we print a string, not bytes.
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/netlink.py: Remove stray print added during the python3
conversion.
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/data.py: Restore compatibility with python2
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/data.py: Put back code deleted in the python3 conversion
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/data.py: Some missed python3 conversions
2012-09-03 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/ui.py: Cosmetic fixes
2012-09-02 Paul Wise <[email protected]>
* iotop/data.py, iotop/genetlink.py, iotop/ioprio.py,
iotop/netlink.py, iotop/ui.py: Port to Python 3 Not entirely sure about all parts of this but it works in Python 2/3
2012-09-03 Guillaume Chazarain <[email protected]>
* THANKS, iotop/data.py: Show custom thread names.
2012-05-13 Paul Wise <[email protected]>
* iotop/ui.py: Improve the message that is printed when Linux denies
access to taskstats.
2012-03-08 Guillaume Chazarain <[email protected]>
* README: Consistent option names
2012-01-22 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Restore the default SIGPIPE handler so that sudo
./iotop.py -b|head does what's expected.
2012-01-22 Guillaume Chazarain <[email protected]>
* NEWS, iotop/ui.py: Adapt the display to the maximum pid width
2012-01-18 Guillaume Chazarain <[email protected]>
* .gitignore: Ignore the build directory.
2011-10-30 Guillaume Chazarain <[email protected]>
* .install-rpm.sh, setup.cfg: Actually install-rpm.sh is still
needed.
2011-10-30 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump
2011-10-15 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Explain that iotop now requires root.
https://lkml.org/lkml/2011/10/1/170
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1a51410abe7d0ee4b1d112780f46df87d3621043
2011-09-17 Thomas Guettler <[email protected]>
* iotop/ui.py: Right-justify the header so that numbers stop
"bouncing".
2011-08-04 Guillaume Chazarain <[email protected]>
* iotop/ui.py: When printing the time, print it also in the summary
2011-04-10 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/genetlink.py, iotop/ioprio.py,
iotop/netlink.py, iotop/ui.py, iotop/vmstat.py: Address some
pyflakes and pychecker warnings
2011-03-28 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump
2011-03-14 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Show stats since iotop started, not since 'a' was
pressed. This is to avoid losing valuable data when 'a' is
inadvertently pressed.
2011-03-13 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Force UTF-8 output even if the locale is not set to
UTF-8. At worst it will output garbage, which is better than
crashing in this case.
2011-01-16 Guillaume Chazarain <[email protected]>
* THANKS, iotop/data.py, iotop/genetlink.py: Fix netlink message
parsing to accept alignement padding. https://lkml.org/lkml/2010/12/13/176
https://lkml.org/lkml/2010/12/29/237
2010-12-15 Guillaume Chazarain <[email protected]>
* iotop/data.py: Removing dead code
2010-12-14 Guillaume Chazarain <[email protected]>
* NEWS: Grammar
2010-12-14 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump
2010-12-14 Guillaume Chazarain <[email protected]>
* MANIFEST.in, install-rpm.sh, setup.cfg: Try to do without
install-rpm.sh
2010-12-14 Guillaume Chazarain <[email protected]>
* iotop/ui.py: With addstr instead of insstr we get a harmless
exception when writing on the last column. Confirmed by http://ubuntuforums.org/showthread.php?t=457689
addstr() raises an exception but the string is printed anyway
2010-12-14 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Back to addstr because of:
http://marc.info/?l=ncurses-bug&m=125233342917443&w=3 insstr (from ncursesw) UTF-8 issue => The cursor position was not
updated for wide characters by insstr()
2010-09-06 Guillaume Chazarain <[email protected]>
* bin/iotop: Revert "Some distributions have a default distutils
prefix which is not in sys.path, so installed modules cannot be
imported." This reverts commit d0812c2024a1f8edb081a2996af12efacdf8c961. Actually I don't think this is needed for now.
2010-09-06 Guillaume Chazarain <[email protected]>
* bin/iotop: Some distributions have a default distutils prefix
which is not in sys.path, so installed modules cannot be imported.
To address that, explicitely add the path where the module is
supposed to be installed to sys.path.
2010-09-04 Guillaume Chazarain <[email protected]>
* THANKS, iotop/ioprio.py: Support for getting and setting IO
priority on armel and hppa architectures.
2010-09-04 Guillaume Chazarain <[email protected]>
* THANKS, iotop/data.py: Instead of assuming the pid field is 4
bytes long, take its length from the header. This is needed for
http://lkml.org/lkml/2010/2/12/167 [PATCH] delayacct: align to 8
byte boundary on 64-bit systems
2010-08-22 Paul Wise <[email protected]>
* iotop/ui.py: Fix traceback with an invalid locale. Closes: http://bugs.debian.org/593846
2010-06-27 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Bump version
2010-06-26 Guillaume Chazarain <[email protected]>
* MANIFEST.in: We no longer use setuptools.
2010-06-26 Guillaume Chazarain <[email protected]>
* iotop.1: Document the competition
2010-06-26 Guillaume Chazarain <[email protected]>
* iotop/data.py: Whitespace fixes
2010-05-31 Paul Wise <[email protected]>
* README, iotop.1, iotop/data.py: Document the requirement for
CONFIG_VM_EVENT_COUNTERS and check for it on startup. Closes: http://bugs.debian.org/574346
2010-03-17 Paul Wise <[email protected]>
* iotop/data.py: Do not report requirements that are available. Closes: http://bugs.debian.org/574246
2010-06-26 Guillaume Chazarain <[email protected]>
* release.sh: Build the source distribution using ./setup.py sdist
2010-06-26 Guillaume Chazarain <[email protected]>
* MANIFEST.in: Make sure to bundle all files in the source
distribution
2010-06-26 Guillaume Chazarain <[email protected]>
* iotop.py, iotop/data.py, iotop/ioprio.py, iotop/ui.py,
iotop/vmstat.py: Added GPLv2+ headers
2010-04-27 Guillaume Chazarain <[email protected]>
* iotop/genetlink.py, iotop/netlink.py: Johannes relicensed
pynl80211 to GPL version 2 or later.
2010-04-26 Jiri Olsa <[email protected]>
* iotop/netlink.py: This broke on ppc64. Let's make U32Attr
consistent with u32().
2010-01-11 Guillaume Chazarain <[email protected]>
* iotop/version.py: Bump the version number
2010-01-11 Guillaume Chazarain <[email protected]>
* release.sh, setup.cfg: Bring back the building of RPMs and
integration of the ChangeLog
2010-01-11 Guillaume Chazarain <[email protected]>
* NEWS, install-rpm.sh, setup.cfg, setup.py: Stopped using
setuptools in favor of straight distutils
2010-01-02 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Negative sizes shouldn't ever happen, but let's
handle them gracefully anyway.
2009-12-13 Guillaume Chazarain <[email protected]>
* : commit b76e492ce5dbdecb198109e1bbc77aad909a0a67 Author:
Guillaume Chazarain <[email protected]> Date: Sun Dec 13 21:17:56
2009 +0100
2009-12-13 Guillaume Chazarain <[email protected]>
* README, iotop/data.py: Document the new python requirements
2009-12-13 Jiri Olsa <[email protected]>
* NEWS, THANKS, iotop/data.py, iotop/netlink.py: Compatibility with
python2.4 using the ctypes module
2009-12-13 Guillaume Chazarain <[email protected]>
* iotop/genetlink.py: 80 columns
2009-12-13 Guillaume Chazarain <[email protected]>
* iotop/genetlink.py, iotop/netlink.py: Untabify
2009-12-13 Guillaume Chazarain <[email protected]>
* iotop/data.py: Don't use all() as it was introduced in python-2.5
2009-11-05 Guillaume Chazarain <[email protected]>
* THANKS, iotop/data.py: Fix a crash were iotop could open
/proc/PID/status but not read it as the process disappeared by then.
2009-09-26 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Default to 0 instead of None
2009-09-22 Guillaume Chazarain <[email protected]>
* iotop/data.py: commit d4cab23b1c8c2f91ae7b353087bc60e7659620ef
broke iotop -o
2009-09-06 Guillaume Chazarain <[email protected]>
* : commit b8bf63094a8903004126c8293d1874ad0565e68a Author: Paul
Wise <[email protected]> Date: Sun Sep 6 23:19:46 2009 +0200
2009-09-06 Guillaume Chazarain <[email protected]>
* iotop/data.py: ioprio.sort_key() expects keys starting with '?' to
be at least two character long. It was not the case when different
threads in the same process had different ionice values, so adjust
the ionice key in this case. Bug reported by: Paul Wise <[email protected]>
2009-09-06 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Make it even more obvious that something is wrong
when CONFIG_TASK_DELAY_ACCT is missing
2009-09-06 Guillaume Chazarain <[email protected]>
* iotop/data.py: Detect python-2.5 before importing incompatible
stuff
2009-08-30 Guillaume Chazarain <[email protected]>
* iotop/data.py: Turns out returning a list is faster than
iterating.
2009-08-30 Guillaume Chazarain <[email protected]>
* iotop/data.py: Some more minor optimizations
2009-08-30 Guillaume Chazarain <[email protected]>
* iotop/data.py: Optimize Stats.__init__ so that Stats.accumulate
can be cleaned up
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Gracefully handle disappearing PIDs
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Faster ui.human_size()
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Faster ProcessList.list_dir()
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/ioprio.py: Optimization: call getpriority() instead of
reading /proc
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Finish the implementation of the UID cache... by
actually caching the UID
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/ui.py: 80 columns
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Cache the taskstats request in the thread_info as
building it every time is a hotspot
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Optimize even further the hotspot by unrolling the
loop and keeping the __dict__ objects in local variables.
2009-08-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Optimize even further Stats.accumulate as it's a
hotspot: don't create a new Stats object everytime on every
invocation, keep updating the same object.
2009-08-23 Guillaume Chazarain <[email protected]>
* NEWS, iotop/data.py, iotop/ui.py: Added a heuristic to detect
kernels without CONFIG_TASK_DELAY_ACCT
2009-08-02 Guillaume Chazarain <[email protected]>
* iotop/data.py: Use .__dict__ instead of [gs]etattr as it's
slightly faster.
2009-08-02 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Use insstr instead of addstr so that we can write in
the last column, but this means we have to be careful not to add
trailing garbage as it would appear on the next line.
2009-08-02 Guillaume Chazarain <[email protected]>
* NEWS, iotop/ui.py: Split long command lines in the middle instead
of cutting them at the end.
2009-08-02 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Bump version.
2009-06-10 Guillaume Chazarain <[email protected]>
* release.sh: Stop building RPMs after my move to Ubuntu
2009-06-10 Guillaume Chazarain <[email protected]>
* NEWS, iotop/ui.py: Fixed column sorting with --accumulated
2009-06-10 Guillaume Chazarain <[email protected]>
* NEWS, iotop/data.py, iotop/ui.py: Fixed interaction between
--accumulated and --only
2009-06-10 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump and start documenting new
features
2009-05-19 Guillaume Chazarain <[email protected]>
* THANKS, iotop/ioprio.py: Fixed ioprio_get syscall detection on
i386 userspace/x86_64 kernel
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529429)
2009-05-05 Guillaume Chazarain <[email protected]>
* MANIFEST.in, README, setup.cfg: Include a light README
2009-05-05 Guillaume Chazarain <[email protected]>
* iotop.1: Escape even more minus signs in the iotop manual page
2009-05-05 Paul Wise <[email protected]>
* iotop.1: Escape some more minus signs in the iotop manual page
2009-05-04 Guillaume Chazarain <[email protected]>
* NEWS, THANKS, iotop.1, iotop/ui.py: Added --quiet
2009-05-03 Guillaume Chazarain <[email protected]>
* NEWS, THANKS, iotop.1, iotop/ui.py: Added --time
2009-05-02 Guillaume Chazarain <[email protected]>
* NEWS, iotop.1, iotop/data.py, iotop/ui.py: Added the -k,
--kilobytes option
2009-05-02 Guillaume Chazarain <[email protected]>
* MANIFEST.in, setup.py: Upgrade setuptools from 0.6c6 to 0.6c9
2009-03-31 Guillaume Chazarain <[email protected]>
* MANIFEST.in, release.sh, setup.cfg: Include a ChangeLog in the
release
2009-03-30 Guillaume Chazarain <[email protected]>
* iotop/data.py: Put kernel threads between square brackets
2009-03-30 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Properly sanitize the value in the error report
2009-03-30 Guillaume Chazarain <[email protected]>
* NEWS, iotop.1, iotop/data.py, iotop/ui.py: - Added the --accumulated option to show the accumulated traffic
instead of the current bandwidth (dynamically toggled with 'a') - Resist to process dying during the taskstats retrieval - Adjusted column headers
2009-03-29 Guillaume Chazarain <[email protected]>
* NEWS: Document some recent changes
2009-03-29 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/ui.py, iotop/vmstat.py: - Manage a two level tree of processes: o with --processes:
[tgids...] -> [tid...] o without: [tids...] -> [tid] => This handles
nicely the case where a thread dies during a sampling period and we
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
it, as we can count some of it twice (ntfs-3g, nfsd...)
2009-03-29 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Added --profile
2009-03-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Don't crash when a thread just disappeared
2009-03-29 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/ui.py: Better UID detection: read it from
stat(/proc/PID) instead of /proc/PID/status and cache it only if not
running as root as the process may setuid(). Rewrite
check_if_valid() to is_monitored(). Also re-read /proc/PID/status
if needed when re-reading /proc/PID/cmdline.
2009-01-31 Guillaume Chazarain <[email protected]>
* THANKS, iotop/ui.py: From: Ryan Lovett <[email protected]>
When running in batch mode, iotop doesn't flush its output so if
you're writing to a file, you won't see anything (e.g. via 'tail
-f') until iotop terminates
2008-12-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: Add a meaningful __repr__()
2008-12-29 Guillaume Chazarain <[email protected]>
* iotop/data.py: If a new pinfo() is successfully created but we
cannot get its taskstats, it will not have a .ioprio field, so it
must be garbage collected. So, initialize .mark to False so that
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,
AttributeError: 'pinfo' object has no attribute 'ioprio'
2008-12-28 Guillaume Chazarain <[email protected]>
* iotop/data.py: The I/O priority can be dynamically changed, so we
must re-fetch it every time.
2008-12-28 Guillaume Chazarain <[email protected]>
* iotop.1, iotop/ui.py: Added the 'p' key to dynamically toggle the
--processes option
2008-12-25 Guillaume Chazarain <[email protected]>
* iotop/ui.py: The interactive control 'O' is the same as 'o'.
2008-12-25 Guillaume Chazarain <[email protected]>
* iotop.1, iotop/data.py, iotop/ioprio.py, iotop/ui.py: Added
support for showing the I/O priority
2008-12-23 Guillaume Chazarain <[email protected]>
* iotop/ui.py: More verbose error handling for this exception:
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'))
_curses.error: addstr() returned ERR
2008-11-16 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Also keep only 2 decimal digits when printing bytes
per second
2008-09-07 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Version bump and mention that -P is now
fully implemented
2008-09-07 Guillaume Chazarain <[email protected]>
* iotop.1, iotop/ui.py: Clarify -p help text, and cosmetically add a
terminating '.'.
2008-09-07 Guillaume Chazarain <[email protected]>
* iotop.1: iotop is a mix of top(1) and vmstat(1)
2008-09-07 Guillaume Chazarain <[email protected]>
* iotop.1, iotop/data.py: Precisely document required kernel options
http://bugs.debian.org/497360
2008-09-06 Guillaume Chazarain <[email protected]>
* iotop/data.py: Reimplement -P without using the half implemented
TASKSTATS_CMD_ATTR_TGID
2008-09-06 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/ui.py: Cleanup: introduce a Stats class to
aggregate the useful output from taskstats insteaf of using a dict.
2008-08-18 Guillaume Chazarain <[email protected]>
* iotop/data.py: It seems the Name: field can sometimes be empty.
http://bugs.debian.org/492568
2008-08-18 Guillaume Chazarain <[email protected]>
* iotop/data.py: Cosmetic
2008-07-07 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: The new features list is not that long
2008-06-24 Guillaume Chazarain <[email protected]>
* iotop/data.py: Also handle invalid UTF-8
2008-06-23 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Unlike insstr, addstr is picky about lines wider than
the terminal.
2008-06-23 Guillaume Chazarain <[email protected]>
* iotop/data.py, iotop/ui.py: Try harder at handling UTF-8
2008-06-18 Guillaume Chazarain <[email protected]>
* NEWS, THANKS, iotop/data.py, iotop/ui.py: UTF-8 strings are now
correctly handled.
2008-06-18 Guillaume Chazarain <[email protected]>
* NEWS, iotop/version.py: Bump version
2008-05-28 Guillaume Chazarain <[email protected]>
* iotop.1: Fix for
http://lintian.debian.org/reports/tags/hyphen-used-as-minus-sign.html
2008-05-23 Guillaume Chazarain <[email protected]>
* MANIFEST.in, install-rpm.sh, setup.cfg, setup.py: Package the man
page
2008-05-22 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Reordered the option like in the man page, as it's a
more sensible ordering
2008-05-22 Guillaume Chazarain <[email protected]>
* THANKS, iotop.1: Added a man page
2008-05-22 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Safer color terminal handling
2008-05-22 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Stop flickering during refresh
2008-05-22 Guillaume Chazarain <[email protected]>
* NEWS, iotop/data.py, iotop/ui.py: Added workaround for missing
ac_etime in TASKSTATS_CMD_ATTR_TGID
2008-04-20 Guillaume Chazarain <[email protected]>
* NEWS: Typo
2008-04-20 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Document the 'o' key.
2008-04-20 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Consistency in the grammar
2008-04-20 Guillaume Chazarain <[email protected]>
* iotop/ui.py: Filter processes to display before trimming them to
avoid removing processes that would be displayed after the trimming.
For example, sorting by PID could place I/O active processes at the
end, but we don't want to delete them as they would be shown anyway
is -o is used.
2008-04-06 Guillaume Chazarain <[email protected]>
* NEWS, iotop/ui.py: Typing 'p' dynamically toggle the --only option
2008-03-20 Guillaume Chazarain <[email protected]>
* bin/iotop: Detect unsuccessful attempts at running an uninstalled
iotop
2008-03-14 Guillaume Chazarain <[email protected]>
* iotop.py, run-iotop: Let's use the obvious filename
2008-03-10 Guillaume Chazarain <[email protected]>
* release.sh: Remove blank line
2008-03-10 Guillaume Chazarain <[email protected]>
* release.sh: Added release script
2008-03-09 Guillaume Chazarain <[email protected]>
* MANIFEST.in, bin/iotop, setup.cfg, setup.py: Added packaging
information
2008-03-09 Guillaume Chazarain <[email protected]>
* iotop/ui.py, iotop/version.py: Extracted out version number
2008-03-09 Guillaume Chazarain <[email protected]>
* COPYING: Added GPLv2 COPYING file
2008-03-09 Guillaume Chazarain <[email protected]>
* THANKS: Added THANKS file
2008-03-09 Guillaume Chazarain <[email protected]>
* .gitignore: Ignore byte compiled files
2008-03-09 Guillaume Chazarain <[email protected]>
* NEWS: Added NEWS file
2008-03-09 Guillaume Chazarain <[email protected]>
* genetlink.py, iotop.py, iotop/__init__.py, iotop/data.py,
iotop/genetlink.py, iotop/netlink.py, iotop/ui.py, netlink.py,
run-iotop: Code reorganization
2008-03-05 Guillaume Chazarain <[email protected]>
* genetlink.py, iotop.py, netlink.py: Instead of copy/pasting
pynl80211 in iotop.py, keep it in separate files
2008-03-05 Guillaume Chazarain <[email protected]>
* iotop.py: Update e-mail and copyright information
2008-03-05 Guillaume Chazarain <[email protected]>
* iotop.py: Reading the cmdline of a dead process raises an
exception too. Reported by Roland Kletzing <[email protected]>
2008-03-02 Guillaume Chazarain <[email protected]>
* iotop.py: Skip the dirname only when the cmdline starts with an
absolute path
2008-01-20 Guillaume Chazarain <[email protected]>
* iotop.py: Fix the typo with the right correction this time
2008-01-20 Guillaume Chazarain <[email protected]>
* iotop.py: Simplify help generation
2008-01-18 Guillaume Chazarain <[email protected]>
* iotop.py: Bump version
2008-01-18 Guillaume Chazarain <[email protected]>
* iotop.py: Removed embedded history comments as it is now in git.
2008-01-18 Guillaume Chazarain <[email protected]>
* iotop.py: Added --only as suggested by Iain Lea <[email protected]>
2008-01-18 Guillaume Chazarain <[email protected]>
* iotop.py: Fix typo, reported by Iain Lea <[email protected]>
2007-12-19 Guillaume Chazarain <[email protected]>
* iotop.py: Tolerate misconfigured terminals
2007-09-30 Guillaume Chazarain <[email protected]>
* iotop.py: Fixed -b
2007-08-26 Guillaume Chazarain <[email protected]>
* iotop.py: Document taskstats bug:
http://lkml.org/lkml/2007/8/2/185
2007-08-25 Guillaume Chazarain <[email protected]>
* iotop.py: Handle terminal resizing
2007-08-25 Guillaume Chazarain <[email protected]>
* iotop.py: More accurate cutting of the command line
2007-08-19 Guillaume Chazarain <[email protected]>
* iotop.py: handle empty process list
2007-08-19 Guillaume Chazarain <[email protected]>
* iotop.py: Fix "-P -p NOT_A_TGID", optimize -p
2007-08-13 Guillaume Chazarain <[email protected]>
* iotop.py: Handle short replies, and fix bandwidth calculation when
delay != 1s
2007-07-23 Guillaume Chazarain <[email protected]>
* iotop.py: Added support for taskstats version > 4 in iotop.py
2007-07-15 Guillaume Chazarain <[email protected]>
* Initial import of iotop