Re: [PATCH 4.9 0/4] Fix softirq time accounting issues on 4.9

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux