powertop: code shrink
authorMaksym Kryzhanovskyy <xmaks@email.cz>
Sat, 6 Nov 2010 00:56:19 +0000 (01:56 +0100)
committerDenys Vlasenko <dvlasenk@redhat.com>
Sat, 6 Nov 2010 00:56:19 +0000 (01:56 +0100)
function                                             old     new   delta
process_timer_stats                                  490     449     -41

Signed-off-by: Maksym Kryzhanovskyy <xmaks@email.cz>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
procps/powertop.c

index da7f052589331f36e7e974beb8906a62f2e9b266..2f977a03bde93a5d05ef38694a46019038e7d838 100644 (file)
@@ -399,6 +399,7 @@ static NOINLINE int process_timer_stats(void)
        buf[0] = '\0';
        totalticks = 0;
 
+       n = 0;
        fp = NULL;
        if (!G.cant_enable_timer_stats)
                fp = fopen_for_read("/proc/timer_stats");
@@ -418,14 +419,24 @@ static NOINLINE int process_timer_stats(void)
                        const char *count, *process, *func;
                        char *p;
                        int idx;
+                       unsigned cnt;
 
                        count = skip_whitespace(buf);
                        p = strchr(count, ',');
                        if (!p)
                                continue;
                        *p++ = '\0';
-                       if (strcmp(skip_non_whitespace(count), " total events") == 0)
+                       cnt = bb_strtou(count, NULL, 10);
+                       if (strcmp(skip_non_whitespace(count), " total events") == 0) {
+#if ENABLE_FEATURE_POWERTOP_PROCIRQ
+                               n = cnt / G.total_cpus;
+                               if (n > 0 && n < G.interrupt_0) {
+                                       sprintf(line, "    <interrupt> : %s", "extra timer interrupt");
+                                       save_line(line, G.interrupt_0 - n);
+                               }
+#endif
                                break;
+                       }
                        if (strchr(count, 'D'))
                                continue; /* deferred */
                        p = skip_whitespace(p); /* points to pid now */
@@ -471,21 +482,11 @@ static NOINLINE int process_timer_stats(void)
                                sprintf(line, "%15.15s : %s", process, func);
                        //else
                        //      sprintf(line, "%s", process);
-                       save_line(line, bb_strtoull(count, NULL, 10));
+                       save_line(line, cnt);
                }
                fclose(fp);
        }
 
-       n = 0;
-#if ENABLE_FEATURE_POWERTOP_PROCIRQ
-       if (strstr(buf, " total events")) {
-               n = bb_strtoull(buf, NULL, 10) / G.total_cpus;
-               if (n > 0 && n < G.interrupt_0) {
-                       sprintf(line, "    <interrupt> : %s", "extra timer interrupt");
-                       save_line(line, G.interrupt_0 - n);
-               }
-       }
-#endif
        return n;
 }