Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1475182
| From | Frederic Weisbecker <fweisbec@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 5/5] irqtime: Consolidate irqtime flushing code |
| Date | 2016-09-02 16:10 +0200 |
| Message-ID | <scXkm-s8-37@gated-at.bofh.it> (permalink) |
| References | <scXkm-s8-19@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The code performing irqtime nsecs stats flushing to kcpustat is roughly
the same for hardirq and softirq. So lets consolidate that common code.
Cc: Rik van Riel <riel@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Wanpeng Li <wanpeng.li@hotmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
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 f51c9a9..f8de5d3 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_hi_update(cputime_t maxtime)
+{
+ return irqtime_account_update(__this_cpu_read(cpu_irqtime.hardirq_time),
+ CPUTIME_IRQ, maxtime);
+}
+
static cputime_t irqtime_account_si_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 softirq_cputime;
+ return irqtime_account_update(__this_cpu_read(cpu_irqtime.softirq_time),
+ CPUTIME_SOFTIRQ, maxtime);
}
#else /* CONFIG_IRQ_TIME_ACCOUNTING */
--
2.7.0
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/5] sched/cputime: irqtime cleanups Frederic Weisbecker <fweisbec@gmail.com> - 2016-09-02 16:10 +0200
[PATCH 1/5] irqtime: No need for preempt-safe accessors Frederic Weisbecker <fweisbec@gmail.com> - 2016-09-02 16:10 +0200
Re: [PATCH 1/5] irqtime: No need for preempt-safe accessors Rik van Riel <riel@redhat.com> - 2016-09-06 19:10 +0200
[PATCH 2/5] irqtime: Remove needless IRQs disablement on kcpustat update Frederic Weisbecker <fweisbec@gmail.com> - 2016-09-02 16:10 +0200
Re: [PATCH 2/5] irqtime: Remove needless IRQs disablement on kcpustat update Paolo Bonzini <pbonzini@redhat.com> - 2016-09-02 17:00 +0200
Re: [PATCH 2/5] irqtime: Remove needless IRQs disablement on kcpustat update Peter Zijlstra <peterz@infradead.org> - 2016-09-02 18:40 +0200
Re: [PATCH 2/5] irqtime: Remove needless IRQs disablement on kcpustat update Rik van Riel <riel@redhat.com> - 2016-09-06 19:10 +0200
Re: [PATCH 2/5] irqtime: Remove needless IRQs disablement on kcpustat update Peter Zijlstra <peterz@infradead.org> - 2016-09-07 10:00 +0200
[PATCH 3/5] u64_stats: Introduce IRQs disabled helpers Frederic Weisbecker <fweisbec@gmail.com> - 2016-09-02 16:10 +0200
Re: [PATCH 3/5] u64_stats: Introduce IRQs disabled helpers Paolo Bonzini <pbonzini@redhat.com> - 2016-09-02 16:40 +0200
[PATCH 5/5] irqtime: Consolidate irqtime flushing code Frederic Weisbecker <fweisbec@gmail.com> - 2016-09-02 16:10 +0200
Re: [PATCH 5/5] irqtime: Consolidate irqtime flushing code Rik van Riel <riel@redhat.com> - 2016-09-06 19:00 +0200
csiph-web