From 85a359afab4743e68977086bddac301ef0675ee1 Mon Sep 17 00:00:00 2001 From: Marek Polacek Date: Fri, 30 Jul 2010 16:43:11 +0200 Subject: mpstat: do not use /sys to get number of CPUs. /proc should be ok. function old new delta get_cpu_nr - 137 +137 mpstat_main 1140 1131 -9 get_proc_cpu_nr 137 - -137 get_sys_cpu_nr 178 - -178 ------------------------------------------------------------------------------ (add/remove: 1/2 grow/shrink: 0/1 up/down: 137/-324) Total: -187 bytes Signed-off-by: Denys Vlasenko --- procps/mpstat.c | 49 +------------------------------------------------ 1 file changed, 1 insertion(+), 48 deletions(-) (limited to 'procps/mpstat.c') diff --git a/procps/mpstat.c b/procps/mpstat.c index 1199b98dd..7610a68fb 100644 --- a/procps/mpstat.c +++ b/procps/mpstat.c @@ -815,46 +815,12 @@ static void print_header(struct tm *t) uts.sysname, uts.release, uts.nodename, cur_date, uts.machine, G.cpu_nr); } -/* - * Get number of processors in /sys - */ -static int get_sys_cpu_nr(void) -{ - DIR *dir; - struct dirent *d; - struct stat buf; - char line[MAX_PF_NAME]; - int proc_nr = 0; - - dir = opendir(SYSFS_DEVCPU); - if (!dir) - return 0; /* /sys not mounted */ - - /* Get current file entry */ - while ((d = readdir(dir)) != NULL) { - if (starts_with_cpu(d->d_name) && isdigit(d->d_name[3])) { - snprintf(line, MAX_PF_NAME, "%s/%s", SYSFS_DEVCPU, - d->d_name); - line[MAX_PF_NAME - 1] = '\0'; - /* Get information about file */ - if (stat(line, &buf) < 0) - continue; - /* If found 'cpuN', we have one more processor */ - if (S_ISDIR(buf.st_mode)) - proc_nr++; - } - } - - closedir(dir); - return proc_nr; -} - /* * Get number of processors in /proc/stat * Return value '0' means one CPU and non SMP kernel. * Otherwise N means N processor(s) and SMP kernel. */ -static int get_proc_cpu_nr(void) +static int get_cpu_nr(void) { FILE *fp; char line[256]; @@ -881,19 +847,6 @@ static int get_proc_cpu_nr(void) return proc_nr + 1; } -static int get_cpu_nr(void) -{ - int n; - - /* Try to use /sys, if possible */ - n = get_sys_cpu_nr(); - if (n == 0) - /* Otherwise use /proc/stat */ - n = get_proc_cpu_nr(); - - return n; -} - /* * Get number of interrupts available per processor */ -- cgit v1.2.3