linux_dsm_epyc7002/kernel/time
Peter Zijlstra b337a9380f timer: Allocate per-cpu tvec_base's statically
Memory for the 'tvec_base' array is allocated separately for the boot CPU (statically)
and non-boot CPUs (dynamically).

The reason is because __TIMER_INITIALIZER() needs to set ->base to a
valid pointer (because we've made NULL special, hint: lock_timer_base())
and we cannot get a compile time pointer to per-cpu entries because we
don't know where we'll map the section, even for the boot cpu.

This can be simplified a bit by statically allocating per-cpu memory.
The only disadvantage is that memory for one of the structures will stay
unused, i.e. for the boot CPU, which uses boot_tvec_bases.

This will also guarantee that tvec_base is cacheline aligned. Even
though tvec_base has ____cacheline_aligned stuck on, kzalloc_node() does
not actually respect that (but guarantees a minimum u64 alignment).

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/17cdf560f2727f687ab159707d0aa591f8a2f82d.1427814611.git.viresh.kumar@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-04-02 17:46:00 +02:00
..
alarmtimer.c all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
clockevents.c clockevents: Make suspend/resume calls explicit 2015-04-01 14:22:59 +02:00
clocksource.c tick: Move core only declarations and functions to core 2015-04-01 14:22:58 +02:00
hrtimer.c tick: Move core only declarations and functions to core 2015-04-01 14:22:58 +02:00
itimer.c time/timers: Move all time(r) related files into kernel/time 2014-06-23 11:22:35 +02:00
jiffies.c tick: Move clocksource related stuff to timekeeping.h 2015-04-01 14:22:58 +02:00
Kconfig clockevents: Remove CONFIG_GENERIC_CLOCKEVENTS_BUILD 2015-04-01 14:22:57 +02:00
Makefile clockevents: Remove CONFIG_GENERIC_CLOCKEVENTS_BUILD 2015-04-01 14:22:57 +02:00
ntp_internal.h timekeeping: Convert timekeeping core to use timespec64s 2014-07-23 10:17:54 -07:00
ntp.c tick: Move clocksource related stuff to timekeeping.h 2015-04-01 14:22:58 +02:00
posix-clock.c kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure 2011-10-31 19:30:05 -04:00
posix-cpu-timers.c all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
posix-timers.c posix-timers: Fix stack info leak in timer_create() 2014-10-25 10:43:15 +02:00
sched_clock.c timers, sched/clock: Clean up the code a bit 2015-03-27 08:34:01 +01:00
test_udelay.c time: Rename udelay_test.c to test_udelay.c 2014-11-21 11:59:55 -08:00
tick-broadcast-hrtimer.c timers/tick/broadcast-hrtimer: Fix suspicious RCU usage in idle loop 2015-03-23 10:50:05 +01:00
tick-broadcast.c clockevents: Fix cpu_down() race for hrtimer based broadcasting 2015-04-02 14:25:39 +02:00
tick-common.c arm/bL_switcher: Kill tick suspend hackery 2015-04-01 14:23:00 +02:00
tick-internal.h tick: Further simplify tick-internal.h 2015-04-02 11:26:35 +02:00
tick-oneshot.c clockevents: Manage device's state separately for the core 2015-03-27 10:26:19 +01:00
tick-sched.c tick: Move core only declarations and functions to core 2015-04-01 14:22:58 +02:00
tick-sched.h arm/bL_switcher: Kill tick suspend hackery 2015-04-01 14:23:00 +02:00
time.c Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-01-25 17:47:34 -08:00
timeconst.bc time/timers: Move all time(r) related files into kernel/time 2014-06-23 11:22:35 +02:00
timeconv.c time: add function to convert between calendar time and broken-down time for universal use 2009-09-24 07:20:56 -07:00
timecounter.c timecounter: keep track of accumulated fractional nanoseconds 2014-12-30 18:29:27 -05:00
timekeeping_debug.c timekeeping: Convert timekeeping core to use timespec64s 2014-07-23 10:17:54 -07:00
timekeeping_internal.h clocksource: Move cycle_last validation to core code 2014-07-23 15:01:51 -07:00
timekeeping.c clockevents: Make suspend/resume calls explicit 2015-04-01 14:22:59 +02:00
timekeeping.h tick: Move clocksource related stuff to timekeeping.h 2015-04-01 14:22:58 +02:00
timer_list.c tick: Move core only declarations and functions to core 2015-04-01 14:22:58 +02:00
timer_stats.c timer stats: Add a 'Collection: active/inactive' line to timer usage statistics 2013-10-10 09:59:25 +02:00
timer.c timer: Allocate per-cpu tvec_base's statically 2015-04-02 17:46:00 +02:00