From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934377AbbDVTIs (ORCPT ); Wed, 22 Apr 2015 15:08:48 -0400 Received: from terminus.zytor.com ([198.137.202.10]:41327 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932416AbbDVTIo (ORCPT ); Wed, 22 Apr 2015 15:08:44 -0400 Date: Wed, 22 Apr 2015 12:07:53 -0700 From: tip-bot for Thomas Gleixner Message-ID: Cc: tglx@linutronix.de, viresh.kumar@linaro.org, mtosatti@redhat.com, fweisbec@gmail.com, linux-kernel@vger.kernel.org, mingo@kernel.org, hpa@zytor.com, preeti@linux.vnet.ibm.com, peterz@infradead.org Reply-To: peterz@infradead.org, preeti@linux.vnet.ibm.com, hpa@zytor.com, linux-kernel@vger.kernel.org, mingo@kernel.org, mtosatti@redhat.com, viresh.kumar@linaro.org, fweisbec@gmail.com, tglx@linutronix.de In-Reply-To: <20150414203501.498165771@linutronix.de> References: <20150414203501.498165771@linutronix.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:timers/core] hrtimer: Align the hrtimer clock bases as well Git-Commit-ID: b8e38413ac2c33c497e72895fcd5da709fd1b908 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: b8e38413ac2c33c497e72895fcd5da709fd1b908 Gitweb: http://git.kernel.org/tip/b8e38413ac2c33c497e72895fcd5da709fd1b908 Author: Thomas Gleixner AuthorDate: Tue, 14 Apr 2015 21:08:44 +0000 Committer: Thomas Gleixner CommitDate: Wed, 22 Apr 2015 17:06:49 +0200 hrtimer: Align the hrtimer clock bases as well We don't use cacheline_align here because that might waste lot of space on 32bit machine with 64 bytes cachelines and on 64bit machines with 128 bytes cachelines. The size of struct hrtimer_clock_base is 64byte on 64bit and 32byte on 32bit machines. So we utilize the cache lines proper. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.498165771@linutronix.de Signed-off-by: Thomas Gleixner --- include/linux/hrtimer.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 0853f52..e5c22d6 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -130,6 +130,12 @@ struct hrtimer_sleeper { struct task_struct *task; }; +#ifdef CONFIG_64BIT +# define HRTIMER_CLOCK_BASE_ALIGN 64 +#else +# define HRTIMER_CLOCK_BASE_ALIGN 32 +#endif + /** * struct hrtimer_clock_base - the timer base for a specific clock * @cpu_base: per cpu clock base @@ -147,7 +153,7 @@ struct hrtimer_clock_base { struct timerqueue_head active; ktime_t (*get_time)(void); ktime_t offset; -}; +} __attribute__((__aligned__(HRTIMER_CLOCK_BASE_ALIGN))); enum hrtimer_base_type { HRTIMER_BASE_MONOTONIC, @@ -195,6 +201,8 @@ struct hrtimer_cpu_base { static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) { + BUILD_BUG_ON(sizeof(struct hrtimer_clock_base) > HRTIMER_CLOCK_BASE_ALIGN); + timer->node.expires = time; timer->_softexpires = time; }