fix %CPU max on 2..9 CPU SMP -- thanks Ga*tan LEURENT

This commit is contained in:
albert 2005-09-12 01:27:59 +00:00
parent 38d36b4960
commit a402ba1848
3 changed files with 12 additions and 14 deletions

1
NEWS
View File

@ -3,6 +3,7 @@ procps-3.2.5 --> procps-3.2.6
top can do per-task display -- thanks John Blackwood rh114012
more MIPS crud -- thanks Jim Gifford and Ryan Oliver
begin prep for setuid
top: fix %CPU max on 2..9 CPU SMP -- thanks Ga*tan LEURENT
procps-3.2.4 --> procps-3.2.5

8
TODO
View File

@ -1,5 +1,7 @@
-------------------------- general ------------------------
Consider using glibc obstacks for memory allocation.
Implement /usr/proc/bin tools like Solaris has.
The prstat command is interesting, like top in batch mode.
SCO has a pstat command.
@ -56,12 +58,6 @@ units: kB and pages, seconds and jiffies) in the proc_t struct.
Share more stuff with ps.
'H' command (shows threads)
Adjust PID-like and PSR-like columns to fit the data.
The normal PID limit is 5 digits; it can go up to 10.
The normal CPU limit is 1 digit; it can go to 3 or 4.
don't truncate long usernames
have a --config option

17
top.c
View File

@ -1605,20 +1605,21 @@ static void before (char *me)
page_to_kb_shift++;
}
Fieldstab[P_CPU].head = " %CPU";
Fieldstab[P_CPU].fmts = " %#4.1f";
// commented out because it is redundant with the table content
// Fieldstab[P_CPU].head = " %CPU";
// Fieldstab[P_CPU].fmts = " %#4.1f";
pcpu_max_value = 99.9;
if(Rc.mode_irixps && smp_num_cpus>1){
// good for 100 CPUs per process
pcpu_max_value = 9999.0;
Fieldstab[P_CPU].fmts = " %4.0f";
}
Fieldstab[P_CPN].head = " P";
Fieldstab[P_CPN].fmts = " %1u";
if(smp_num_cpus>9){
Fieldstab[P_CPN].head = " P";
Fieldstab[P_CPN].fmts = " %2u";
if(Rc.mode_irixps){
// this will do for up to 999; hopefully a 1024-node box
// will have at least 2.4% idle time
pcpu_max_value = 9999.0;
Fieldstab[P_CPU].fmts = " %4.0f";
}
}
if(smp_num_cpus>99){
Fieldstab[P_CPN].head = " P";