From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933432AbcI3MHS (ORCPT ); Fri, 30 Sep 2016 08:07:18 -0400 Received: from terminus.zytor.com ([198.137.202.10]:45306 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932303AbcI3MHL (ORCPT ); Fri, 30 Sep 2016 08:07:11 -0400 Date: Fri, 30 Sep 2016 05:06:19 -0700 From: tip-bot for Frederic Weisbecker Message-ID: Cc: hpa@zytor.com, pbonzini@redhat.com, wanpeng.li@hotmail.com, mingo@kernel.org, torvalds@linux-foundation.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, eric.dumazet@gmail.com, efault@gmx.de, fweisbec@gmail.com, riel@redhat.com, peterz@infradead.org Reply-To: tglx@linutronix.de, torvalds@linux-foundation.org, mingo@kernel.org, pbonzini@redhat.com, wanpeng.li@hotmail.com, hpa@zytor.com, peterz@infradead.org, riel@redhat.com, fweisbec@gmail.com, efault@gmx.de, eric.dumazet@gmail.com, linux-kernel@vger.kernel.org In-Reply-To: <1474849761-12678-6-git-send-email-fweisbec@gmail.com> References: <1474849761-12678-6-git-send-email-fweisbec@gmail.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:sched/core] sched/irqtime: Consolidate irqtime flushing code Git-Commit-ID: 447976ef4fd09b1be88b316d1a81553f1aa7cd07 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 447976ef4fd09b1be88b316d1a81553f1aa7cd07 Gitweb: http://git.kernel.org/tip/447976ef4fd09b1be88b316d1a81553f1aa7cd07 Author: Frederic Weisbecker AuthorDate: Mon, 26 Sep 2016 02:29:21 +0200 Committer: Ingo Molnar CommitDate: Fri, 30 Sep 2016 11:46:41 +0200 sched/irqtime: Consolidate irqtime flushing code The code performing irqtime nsecs stats flushing to kcpustat is roughly the same for hardirq and softirq. So lets consolidate that common code. Signed-off-by: Frederic Weisbecker Reviewed-by: Rik van Riel Cc: Eric Dumazet Cc: Linus Torvalds Cc: Mike Galbraith Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Wanpeng Li Link: http://lkml.kernel.org/r/1474849761-12678-6-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar --- kernel/sched/cputime.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c index 1cea2f1..5ebee31 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -70,32 +70,28 @@ void irqtime_account_irq(struct task_struct *curr) } EXPORT_SYMBOL_GPL(irqtime_account_irq); -static cputime_t irqtime_account_hi_update(cputime_t maxtime) +static cputime_t irqtime_account_update(u64 irqtime, int idx, cputime_t maxtime) { u64 *cpustat = kcpustat_this_cpu->cpustat; cputime_t irq_cputime; - u64 nsecs; - nsecs = __this_cpu_read(cpu_irqtime.hardirq_time); - irq_cputime = nsecs_to_cputime64(nsecs) - cpustat[CPUTIME_IRQ]; + irq_cputime = nsecs_to_cputime64(irqtime) - cpustat[idx]; irq_cputime = min(irq_cputime, maxtime); - cpustat[CPUTIME_IRQ] += irq_cputime; + cpustat[idx] += irq_cputime; return irq_cputime; } -static cputime_t irqtime_account_si_update(cputime_t maxtime) +static cputime_t irqtime_account_hi_update(cputime_t maxtime) { - u64 *cpustat = kcpustat_this_cpu->cpustat; - cputime_t softirq_cputime; - u64 nsecs; - - nsecs = __this_cpu_read(cpu_irqtime.softirq_time); - softirq_cputime = nsecs_to_cputime64(nsecs) - cpustat[CPUTIME_SOFTIRQ]; - softirq_cputime = min(softirq_cputime, maxtime); - cpustat[CPUTIME_SOFTIRQ] += softirq_cputime; + return irqtime_account_update(__this_cpu_read(cpu_irqtime.hardirq_time), + CPUTIME_IRQ, maxtime); +} - return softirq_cputime; +static cputime_t irqtime_account_si_update(cputime_t maxtime) +{ + return irqtime_account_update(__this_cpu_read(cpu_irqtime.softirq_time), + CPUTIME_SOFTIRQ, maxtime); } #else /* CONFIG_IRQ_TIME_ACCOUNTING */