Updated with Tizen:Base source codes
[external/procps.git] / TODO
1 -------------------------- general ------------------------
2
3 Consider using glibc obstacks for memory allocation.
4
5 Implement /usr/proc/bin tools like Solaris has.
6 The prstat command is interesting, like top in batch mode.
7 SCO has a pstat command.
8
9 Don't these really belong in the procps package?
10          killall   pstree   fuser   lsof   who
11 (they are maintained elsewhere, which causes version problems)
12
13 OpenBSD has a pfind command.
14
15 Cache results of dev_to_tty.
16
17 ---------------------- kernel -------------------------
18
19 Add an "adopted child" flag to mark processes that are not
20 natural children of init. This can make --forest work better.
21
22 Supply better data for top's CPU state display. Currently top has
23 to subtract old numbers from new numbers and divide that result by
24 the number of processors. The kernel won't even supply the number
25 of processors in a portable way.
26
27 Supply data for the ADDR and JOBC fields.
28
29 Support & supply data for SL and RE.
30
31 Add a /proc/*/tty symlink to eliminate guessing when /proc/*/fd is
32 not accessable.
33
34 Add /proc/*/.bindata files to avoid string parsing. It should be an array
35 of 64-bit values on all machines. New entries go on the end and obsolete
36 ones get filled in with something logical -- entries must never be deleted!
37
38 Add all the stuff Solaris has. This would also replace ptrace.
39
40 ---------------------- watch --------------------------
41
42 Tolerate UTF-8.
43
44 Tolerate color, bold, underline, etc. #129334
45
46 Tolerate stderr.  #420377 #155227 #225549
47
48 Tolerate VT100 line-drawing characters. Maybe translate them.
49
50 ---------------------- w --------------------------
51
52 The LOGIN@ column sometimes has a space in it. This makes correct
53 scripting difficult.
54
55 Time formats are demented.
56
57 ---------------------- vmstat --------------------------
58
59 Extract /proc/diskstats parsing from vmstat into libproc somewhere.
60
61 --------------------- libproc ----------------------
62
63 Stop storing fields with duplicate info (often different
64 units: kB and pages, seconds and jiffies) in the proc_t struct.
65
66 Use own readdir code (assembly language) because glibc sucks ass.
67
68 ---------------------- top -------------------------
69
70 Share more stuff with ps.
71
72 don't truncate long usernames
73
74 have a --config option
75
76 ---------------- ps for now, maybe move to libproc ------------------
77
78 With forest output and a tty named /dev/this_is_my_tty, the position
79 of the command name gets messed up. (we print too many spaces) (fixed?)
80
81 Fix missing stuff for these formats: FB_j FB_l FB_v HP_f HP_l HP_fl JFMT OL_m
82 (jobc,cpu,sl,re,cpu,prmgrp,m_swap,m_share,vm_lib,m_dt)
83 Note that "cpu" has two meanings.
84
85 Add Beowulf support. This is ugly, since the current patches use a
86 daemon to collect info and add a HOST field after the PID field.
87
88 Query optimizer, put cheap/required process selection first.
89
90 Avoid reading both /proc/*/status and /proc/*/stat.
91
92 Support printing the client hostname (the FROM that w(1) uses) in place
93 of a pty.
94
95 Disambiguate narrow tty info. (/dev/tty7 == /dev/pts/7 now)
96 1------8     1--4
97 ttyS2        S2
98 ttyI31       I31
99 pts/7        7        Short form could be /999.
100 pts/9999     9999     Short form could just be trunctuated to /999.
101 tty7         7        Short form could be vc-7.
102 tty63        63       Short form could be vc63.
103
104 Internationalization, as specified by XPG3, Volume 1, Commands and Utilities.
105 (and suggested by Unix98) LC_TIME affects date format.
106
107 ----------------------- ps -----------------------
108
109 Add an option to select all processes that a user can kill.
110 (related to RUID, EUID, tty, etc. -- but maybe ignore root power)
111
112 Add a nice display option for killing things.
113 ruser,euser,ppid,pid,pmem,stime,args
114
115 For RT stuff:
116 pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
117
118 For job control:
119 stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
120
121 Make the column alignment algorithm support this:
122     FOO BAR
123     8 44444
124     453  45
125     45 2989
126     63666 0
127     34  333
128 (useful for the UNIX tty and time values, since the time might look
129 like 100-10:40:32 for old processes and the tty might have extra room)
130
131 Improve long sort/format specifiers documentation and fill in the missing
132 code as much as the kernel can support. Make sure that memory amounts are in
133 pages when they should be and in kB when they should be, not backwards.
134
135 output encoding: UTF8 --nul --null
136
137 Make BSD formats use non-standard BSD time format, at least when it
138 doesn't violate the "no whitespace" rule.
139
140 Better unmangling of '?' as a tty. The shell destroys '?' when there
141 is a filename that matches. If the argument seems like garbage,
142 check for a file that might have screwed up the '?'.
143
144 If the 'O' option is given something already implied by 'O',
145 assume the user wanted a sorting option.
146
147 Conflict:
148 Digital THREAD is user,pcpu,pri,scnt,wchan,usertime,systime
149 AIX     THREAD is uname,pid,ppid,tid,S,C,PRI,scount,WCHAN,F,tty,bnd,comm
150 AIX looks like this:
151          USER   PID  PPID  TID S  C PRI SC   WCHAN   FLAG   TTY BND  CMD