Hey Greg, Did you get a chance to look at this series? Thanks a lot! On Thu, Sep 06, 2018 at 06:42:14PM -0700, Ivan Delalande wrote: > This series fixes issues we've seen with softirq time accounting in 4.9: > - when ksoftirqd is running at 100% on a CPU, none of the values > reported by /proc/stat for that CPU will change, sometimes for > dozens of seconds, > - large deviations in the total number of ticks accumulated over a > fixed time for a CPU, probably because of the first issue hitting > for shorter periods. > > We found out that something pretty similar had been reported 9 months > ago, see the reference link below. In that discussion, Rabin Vincent had > made a 4.9 specific patch which fixes our first issue, but we were still > seeing some deviation from the total number of ticks (up to 1.7% from > expected, where we had only 0.2% on older kernels), and you had also > asked for a direct backport from the mainline series, if possible. > > As mentioned in that thread, a lot of changes (probably 50+) went into > 4.11 to remove cputime, but we could get something working with only the > 4 attached patches to fix these two issues. Three of these patches apply > without change, and the second one in the series ("sched/cputime: > Convert kcpustat to nsecs") needed a minor change as a cast had been > added in 527b0a76f41d ("sched/cpuacct: Avoid %lld seq_printf warning") > to fix a build warning on s390. I guess we could also include that patch > in this series, let me know if this is the preferred way to handle this. > > We ran our tests on 3.18, 4.4 and 4.9 and confirmed that only 4.9 would > need this series, and that this series indeed restores the behavior we > were seeing on those older kernels. > > Thanks! > > Reference: http://lkml.kernel.org/r/%3C1513159876-5125-1-git-send-email-rabin.vincent@xxxxxxxx > > > Frederic Weisbecker (4): > time: Introduce jiffies64_to_nsecs() > sched/cputime: Convert kcpustat to nsecs > sched/cputime: Increment kcpustat directly on irqtime account > sched/cputime: Fix ksoftirqd cputime accounting regression > > arch/s390/appldata/appldata_os.c | 16 +++---- > drivers/cpufreq/cpufreq.c | 6 +-- > drivers/cpufreq/cpufreq_governor.c | 2 +- > drivers/cpufreq/cpufreq_stats.c | 1 - > drivers/macintosh/rack-meter.c | 2 +- > fs/proc/stat.c | 68 +++++++++++++-------------- > fs/proc/uptime.c | 7 +-- > include/linux/jiffies.h | 2 + > kernel/sched/cpuacct.c | 2 +- > kernel/sched/cputime.c | 75 +++++++++++++----------------- > kernel/sched/sched.h | 12 +++-- > kernel/time/time.c | 10 ++++ > kernel/time/timeconst.bc | 6 +++ > 13 files changed, 109 insertions(+), 100 deletions(-) -- Ivan Delalande Arista Networks