Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932870AbbKMPjY (ORCPT ); Fri, 13 Nov 2015 10:39:24 -0500 Received: from mail1.bemta8.messagelabs.com ([216.82.243.208]:15008 "EHLO mail1.bemta8.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754653AbbKMPjX (ORCPT ); Fri, 13 Nov 2015 10:39:23 -0500 X-Env-Sender: Marc_Gonzalez@sigmadesigns.com X-Msg-Ref: server-7.tower-94.messagelabs.com!1447429151!5439197!1 X-Originating-IP: [195.215.56.170] X-StarScan-Received: X-StarScan-Version: 7.19.2; banners=-,-,- X-VirusChecked: Checked Subject: Re: [PATCH] clocksource/drivers/tango-xtal: Replace code by clocksource_mmio_init To: Thomas Gleixner CC: Daniel Lezcano , LKML , Linux ARM , Arnd Bergmann References: <1447412292-841-1-git-send-email-daniel.lezcano@linaro.org> <5645D5A0.1000502@sigmadesigns.com> <5645F0D0.4060503@linaro.org> <5645F616.9060707@sigmadesigns.com> From: Marc Gonzalez Message-ID: <5646041E.4040209@sigmadesigns.com> Date: Fri, 13 Nov 2015 16:39:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0 SeaMonkey/2.38 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Originating-IP: [172.27.0.114] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1752 Lines: 59 On 13/11/2015 16:26, Thomas Gleixner wrote: > On Fri, 13 Nov 2015, Marc Gonzalez wrote: >> On 13/11/2015 15:16, Daniel Lezcano wrote: >>> For example: >>> >>> struct clockcommon { >>> u32 mult; >>> u32 shift; >>> int rating; >>> void __iomem *base; >>> char *name; >>> int irq; >>> }; >>> >>> struct clocksource { >>> struct clockcommon common; /* MUST be the first field */ >>> cycle_t (*read)(struct clocksource *cs); >>> cycle_t mask; >>> ... >>> }; >> >> According to my notes, commit 369db4c952 grouped hot-path data >> into a single cache line (hence ____cacheline_aligned). >> >> (AFAIR, ARMv7 ARCH_MULTIPLATFORM assumes CACHE_LINE=64) >> >> Not sure how to make the two concepts (common base struct and >> grouping hot data) play nicely, without wasting a lot of space >> on padding. > > It wont play well. We are not going to change the layout of struct > clocksource because it will hurt the sane use cases for no reason. You are referring to Daniel's proposed reorg, right? What about my proposal? I inserted reg after maxadj, but it may be inserted anywhere in the struct. diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 278dd279a7a8..03807ca0d54e 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h @@ -74,6 +74,9 @@ struct clocksource { u32 shift; u64 max_idle_ns; u32 maxadj; +#ifdef CONFIG_CLKSRC_MMIO + void __iomem *reg; +#endif #ifdef CONFIG_ARCH_CLOCKSOURCE_DATA struct arch_clocksource_data archdata; #endif -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/