Messages in this thread | | | Subject | Re: [PATCH 5/5] irqtime: drop local_irq_save/restore from irqtime_account_irq | From | Rik van Riel <> | Date | Tue, 21 Jun 2016 18:32:31 -0400 |
| |
On Wed, 2016-06-22 at 00:28 +0200, Peter Zijlstra wrote: > On Tue, Jun 21, 2016 at 06:23:34PM -0400, Rik van Riel wrote: > > > > > > + /* > > > > + * Softirq context may get interrupted by hardirq > > > > context, > > > > + * on the same CPU. At softirq entry time the amount > > > > of > > > > time > > > > + * spent in hardirq context is stored. At softirq exit > > > > time, > > > > + * the time spent in hardirq context during the > > > > softirq is > > > > + * subtracted. > > > > + */ > > > > + prev_hardirq = __this_cpu_read(prev_hardirq_time); > > > > + prev_softirq_start = > > > > __this_cpu_read(softirq_start_time); > > > > + > > > > + if (irqtype == HARDIRQ_OFFSET) { > > > > + delta = sched_clock_cpu(cpu) - > > > > __this_cpu_read(hardirq_start_time); > > > > + __this_cpu_add(hardirq_start_time, delta); > > > > + } else do { > > > > + u64 now = sched_clock_cpu(cpu); > > > > + hardirq_time = > > > > READ_ONCE(per_cpu(cpu_hardirq_time, > > > > cpu)); > > > Which makes this per_cpu(,cpu) usage somewhat curious. What's > > > wrong > > > with > > > __this_cpu_read() ? > > Is __this_cpu_read() as fast as per_cpu(,cpu) on all > > architectures? > Can't be slower. Don't get the argument though; you've used > __this_cpu > stuff all over the place, and here you use a per_cpu() for no reason. > Good point. I will use __this_cpu_read here.
> > > That whole thing is somewhat hard to read; but its far too late > > > for > > > me > > > to suggest anything more readable :/ > > I only had 2 1/2 hours of sleep last night, so I will not > > try to rewrite it now, but I will see if there is anything > > I can do to make it more readable tomorrow. > > > > If you have any ideas before then, please let me know :) > Heh, step away from the computer ... ;-)
No worries, I have booze with me. Everything will be just fine! ;)
-- All Rights Reversed.
[unhandled content-type:application/pgp-signature] | |