On September 16, 2014 2:11:28 PM CEST, Mark Kettenis <mark.kette...@xs4all.nl> wrote: >> Date: Tue, 16 Sep 2014 21:51:00 +1000 >> From: David Gwynne <da...@gwynne.id.au> >> >> if you have more than 8 cpus, combine the cpu lines by default.
Just curious, is there a command line argument to expand the list? /Alexander >> >> ok? > >8 seems a reasonable number > >ok kettenis@ > >> Index: machine.c >> =================================================================== >> RCS file: /cvs/src/usr.bin/top/machine.c,v >> retrieving revision 1.78 >> diff -u -p -r1.78 machine.c >> --- machine.c 4 Jul 2014 05:58:31 -0000 1.78 >> +++ machine.c 16 Sep 2014 11:46:41 -0000 >> @@ -141,14 +141,26 @@ int ncpu; >> unsigned int maxslp; >> >> int >> -machine_init(struct statics *statics) >> +getncpu(void) >> { >> + int mib[] = { CTL_HW, HW_NCPU }; >> + int ncpu; >> size_t size = sizeof(ncpu); >> - int mib[2], pagesize, cpu; >> >> - mib[0] = CTL_HW; >> - mib[1] = HW_NCPU; >> - if (sysctl(mib, 2, &ncpu, &size, NULL, 0) == -1) >> + if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), >> + &ncpu, &size, NULL, 0) == -1) >> + return (-1); >> + >> + return (ncpu); >> +} >> + >> +int >> +machine_init(struct statics *statics) >> +{ >> + int pagesize, cpu; >> + >> + ncpu = getncpu(); >> + if (ncpu == -1) >> return (-1); >> cpu_states = calloc(ncpu, CPUSTATES * sizeof(int64_t)); >> if (cpu_states == NULL) >> Index: machine.h >> =================================================================== >> RCS file: /cvs/src/usr.bin/top/machine.h,v >> retrieving revision 1.17 >> diff -u -p -r1.17 machine.h >> --- machine.h 5 Jun 2012 18:52:53 -0000 1.17 >> +++ machine.h 16 Sep 2014 11:46:41 -0000 >> @@ -93,3 +93,5 @@ extern char *format_next_process(cadd >> extern uid_t proc_owner(pid_t); >> >> extern struct kinfo_proc *getprocs(int, int, int *); >> + >> +int getncpu(void); >> Index: top.c >> =================================================================== >> RCS file: /cvs/src/usr.bin/top/top.c,v >> retrieving revision 1.81 >> diff -u -p -r1.81 top.c >> --- top.c 7 Apr 2014 15:49:22 -0000 1.81 >> +++ top.c 16 Sep 2014 11:46:41 -0000 >> @@ -250,6 +250,13 @@ parseargs(int ac, char **av) >> } >> } >> >> + i = getncpu(); >> + if (i == -1) >> + err(1, NULL); >> + >> + if (i > 8) >> + combine_cpus = 1; >> + >> /* get count of top processes to display (if any) */ >> if (optind < ac) { >> if ((topn = atoiwi(av[optind])) == Invalid) { >> >>