Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755044AbdCWTin (ORCPT ); Thu, 23 Mar 2017 15:38:43 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:34666 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752321AbdCWTil (ORCPT ); Thu, 23 Mar 2017 15:38:41 -0400 Date: Thu, 23 Mar 2017 20:38:33 +0100 (CET) From: Thomas Gleixner To: Nicolas Pitre cc: Daniel Lezcano , linux-kernel@vger.kernel.org, peterz@infradead.org, rafael@kernel.org, vincent.guittot@linaro.org Subject: Re: [PATCH V8 2/3] irq: Track the interrupt timings In-Reply-To: Message-ID: References: <1490290924-12958-1-git-send-email-daniel.lezcano@linaro.org> <1490290924-12958-2-git-send-email-daniel.lezcano@linaro.org> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 750 Lines: 29 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. Thanks, tglx