Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1607850

Re: [PATCH V8 2/3] irq: Track the interrupt timings

From Nicolas Pitre <nicolas.pitre@linaro.org>
Newsgroups linux.kernel
Subject Re: [PATCH V8 2/3] irq: Track the interrupt timings
Date 2017-03-23 21:00 +0100
Message-ID <toh3P-72e-1@gated-at.bofh.it> (permalink)
References <tof22-5ye-13@gated-at.bofh.it> <tof22-5ye-11@gated-at.bofh.it> <togr8-6L0-19@gated-at.bofh.it> <togKu-6RO-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, 23 Mar 2017, Thomas Gleixner wrote:

> On Thu, 23 Mar 2017, Nicolas Pitre wrote:
> 
> > On Thu, 23 Mar 2017, Daniel Lezcano wrote:
> > 
> > > +#define IRQ_TIMINGS_SHIFT	5
> > > +#define IRQ_TIMINGS_SIZE	(1 << IRQ_TIMINGS_SHIFT)
> > > +#define IRQ_TIMINGS_MASK	(IRQ_TIMINGS_SIZE - 1)
> > > +
> > > +struct irq_timing {
> > > +	u32 irq;
> > > +	u64 ts;
> > > +};
> > > +
> > > +struct irq_timings {
> > > +	struct irq_timing values[IRQ_TIMINGS_SIZE]; /* our circular buffer */
> > 
> > This is not very space efficient because of alignment restrictions from 
> > the u64 in struct irq_timing. 25% of the memory is wasted.
> > 
> > You could consider having two arrays instead:
> > 
> > 	u32 irq_values[IRQ_TIMINGS_SIZE];
> > 	u64 ts_values[IRQ_TIMINGS_SIZE];
> 
> For the penalty of dirtying two cachelines instead of one.

Well...

Is there a need for 64 bits of relative time stamps?
And 32 bits of IRQ number?

I'd say that 48 bit time stamp and 16 bit IRQ number is way sufficient.
Who cares if we mispredict an IRQ after 78 hours of idle time?

Hence:

	u64 value = (ts << 16) | irq;


Nicolas

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH V8 2/3] irq: Track the interrupt timings Daniel Lezcano <daniel.lezcano@linaro.org> - 2017-03-23 18:50 +0100
  Re: [PATCH V8 2/3] irq: Track the interrupt timings Peter Zijlstra <peterz@infradead.org> - 2017-03-23 19:40 +0100
    Re: [PATCH V8 2/3] irq: Track the interrupt timings Nicolas Pitre <nicolas.pitre@linaro.org> - 2017-03-23 20:10 +0100
    Re: [PATCH V8 2/3] irq: Track the interrupt timings Daniel Lezcano <daniel.lezcano@linaro.org> - 2017-03-23 20:10 +0100
  Re: [PATCH V8 2/3] irq: Track the interrupt timings Nicolas Pitre <nicolas.pitre@linaro.org> - 2017-03-23 20:20 +0100
    Re: [PATCH V8 2/3] irq: Track the interrupt timings Thomas Gleixner <tglx@linutronix.de> - 2017-03-23 20:40 +0100
      Re: [PATCH V8 2/3] irq: Track the interrupt timings Nicolas Pitre <nicolas.pitre@linaro.org> - 2017-03-23 21:00 +0100
        Re: [PATCH V8 2/3] irq: Track the interrupt timings Thomas Gleixner <tglx@linutronix.de> - 2017-03-23 22:20 +0100

csiph-web