On Wed, Sep 09, 2020 at 08:41:22AM -0600, Tom Hromatka wrote: > static u64 get_idle_time(struct kernel_cpustat *kcs, int cpu) > { > - u64 idle, idle_usecs = -1ULL; > + u64 idle, idle_usecs; > > - if (cpu_online(cpu)) > - idle_usecs = get_cpu_idle_time_us(cpu, NULL); > - > - if (idle_usecs == -1ULL) > - /* !NO_HZ or cpu offline so we can rely on cpustat.idle */ > - idle = kcs->cpustat[CPUTIME_IDLE]; > - else > - idle = idle_usecs * NSEC_PER_USEC; > + idle_usecs = get_cpu_idle_time_us(cpu, NULL); > + idle = idle_usecs * NSEC_PER_USEC; > > return idle; > } > > static u64 get_iowait_time(struct kernel_cpustat *kcs, int cpu) > { > - u64 iowait, iowait_usecs = -1ULL; > - > - if (cpu_online(cpu)) > - iowait_usecs = get_cpu_iowait_time_us(cpu, NULL); > + u64 iowait, iowait_usecs; > > - if (iowait_usecs == -1ULL) > - /* !NO_HZ or cpu offline so we can rely on cpustat.iowait */ > - iowait = kcs->cpustat[CPUTIME_IOWAIT]; > - else > - iowait = iowait_usecs * NSEC_PER_USEC; > + iowait_usecs = get_cpu_iowait_time_us(cpu, NULL); > + iowait = iowait_usecs * NSEC_PER_USEC; You can gc variables in both cases: return get_cpu_iowait_time_us() * NSEC_PER_USEC;