linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch V2 00/64] timekeeping: 2038, optimizations, NMI safe accessors
@ 2014-07-16 21:03 Thomas Gleixner
  2014-07-16 21:03 ` [patch V2 01/64] tile: Convert VDSO timekeeping to the precise mechanism Thomas Gleixner
                   ` (64 more replies)
  0 siblings, 65 replies; 76+ messages in thread
From: Thomas Gleixner @ 2014-07-16 21:03 UTC (permalink / raw)
  To: LKML; +Cc: John Stultz, Peter Zijlstra

Changes versus V1 [http://lkml.kernel.org/r/20140711133623.530368377@linutronix.de]

  - Addressed review comments and testing fallout

  - Simplified update of the ktime_t data in the timekeeper

  - Replaced some more interfaces which are availabe as timespec and
    ktime_t by the ktime_t version to get rid of the duplicated data.

  - Restructured the timekeeper again to share code with the NMI safe
    accessor, which simplifies the update to pure memcpy().

  - Removed the monotonic raw fast accessor

I also verified the size impact of the whole endavour:

x86_64:
   text	   data	    bss	    dec	    hex	filename
before:
 992378	 104211	 454784	1551373	 17ac0d	../build/kernel/built-in.o
2038 changes only:
 992312	 104211	 454784	1551307	 17abcb	../build/kernel/built-in.o
full series applied:
 991724	 104210	 454976	1550910	 17aa3e	../build/kernel/built-in.o

i386:
   text	   data	    bss	    dec	    hex	filename
before:
 910278	  56201	 372436	1338915	 146e23	../build-i386/kernel/built-in.o
2038 changes only:
 912381	  56201	 372468	1341050	 14767a	../build-i386/kernel/built-in.o
full series applied:
 911607	  56200	 372596	1340403	 1473f3	../build-i386/kernel/built-in.o

arm:
   text	   data	    bss	    dec	    hex	filename
before:
 443444	  58965	7813144	8315553	 7ee2a1	../build-arm/kernel/built-in.o
2038 changes only:
 445205	  58965	7813176	8317346	 7ee9a2	../build-arm/kernel/built-in.o
full series applied:
 444708	  58964	7813368	8317040	 7ee870	../build-arm/kernel/built-in.o

So on x8664 the new functionality comes with smaller size. I whish I
could say the same for 32bit, but there we pay the prize for making
the core timekeeping code 2038 ready. But also there, while the 2038
stuff adds ~2k, the rest (cleanup and the new monotonic accessor)
removes ~0.5k again. So features are not necessarily bundled with
bloat :)

The series is against tip/timers/core. It's also available in git at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tglx/timers/core

Thanks,

	tglx
----

 arch/arm/Kconfig                              |    1 
 arch/arm/common/bL_switcher.c                 |   16 
 arch/arm64/kernel/vdso.c                      |   10 
 arch/hexagon/Kconfig                          |    1 
 arch/ia64/kernel/time.c                       |    4 
 arch/powerpc/kernel/time.c                    |    4 
 arch/powerpc/platforms/cell/spu_base.c        |   11 
 arch/powerpc/platforms/cell/spufs/context.c   |    4 
 arch/powerpc/platforms/cell/spufs/file.c      |    4 
 arch/powerpc/platforms/cell/spufs/sched.c     |    4 
 arch/s390/Kconfig                             |    1 
 arch/s390/kernel/time.c                       |   16 
 arch/tile/kernel/time.c                       |   13 
 arch/tile/kernel/vdso/vgettimeofday.c         |    7 
 arch/x86/Kconfig                              |    2 
 arch/x86/kernel/tsc.c                         |   21 
 arch/x86/kernel/vsyscall_gtod.c               |   23 
 arch/x86/kvm/x86.c                            |   62 -
 drivers/char/hangcheck-timer.c                |   33 
 drivers/connector/cn_proc.c                   |   36 
 drivers/gpu/drm/drm_irq.c                     |   16 
 drivers/gpu/drm/i915/i915_drv.h               |    2 
 drivers/gpu/drm/i915/i915_gem.c               |   33 
 drivers/gpu/drm/i915/intel_pm.c               |   12 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h           |    4 
 drivers/gpu/drm/vmwgfx/vmwgfx_marker.c        |   44 -
 drivers/hwmon/ibmaem.c                        |    6 
 drivers/input/evdev.c                         |    7 
 drivers/mfd/cros_ec_spi.c                     |    8 
 drivers/misc/ioc4.c                           |    7 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c |   16 
 drivers/net/wireless/ath/ath9k/hw.c           |    7 
 fs/lockd/mon.c                                |    4 
 fs/proc/array.c                               |    7 
 fs/timerfd.c                                  |    6 
 include/linux/clocksource.h                   |    2 
 include/linux/hrtimer.h                       |   14 
 include/linux/iio/iio.h                       |    9 
 include/linux/ktime.h                         |  228 +-----
 include/linux/mlx5/driver.h                   |    4 
 include/linux/sched.h                         |    8 
 include/linux/seqlock.h                       |   27 
 include/linux/time.h                          |   65 -
 include/linux/time64.h                        |  191 +++++
 include/linux/timekeeper_internal.h           |  144 ++-
 include/linux/timekeeping.h                   |  209 +++++
 kernel/acct.c                                 |   10 
 kernel/delayacct.c                            |   52 -
 kernel/fork.c                                 |    5 
 kernel/time/Kconfig                           |    9 
 kernel/time/clocksource.c                     |   12 
 kernel/time/hrtimer.c                         |   80 --
 kernel/time/ntp.c                             |   15 
 kernel/time/ntp_internal.h                    |    2 
 kernel/time/posix-timers.c                    |    2 
 kernel/time/tick-internal.h                   |    2 
 kernel/time/time.c                            |   64 +
 kernel/time/timekeeping.c                     |  957 ++++++++++++++------------
 kernel/time/timekeeping.h                     |   20 
 kernel/time/timekeeping_debug.c               |    2 
 kernel/time/timekeeping_internal.h            |   17 
 kernel/trace/trace.c                          |   11 
 kernel/tsacct.c                               |   19 
 63 files changed, 1412 insertions(+), 1220 deletions(-)




^ permalink raw reply	[flat|nested] 76+ messages in thread

end of thread, other threads:[~2014-07-23 21:59 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-16 21:03 [patch V2 00/64] timekeeping: 2038, optimizations, NMI safe accessors Thomas Gleixner
2014-07-16 21:03 ` [patch V2 01/64] tile: Convert VDSO timekeeping to the precise mechanism Thomas Gleixner
2014-07-16 21:03 ` [patch V2 02/64] timekeeping: Simplify arch_gettimeoffset() Thomas Gleixner
2014-07-16 21:03 ` [patch V2 03/64] hrtimer: Cleanup hrtimer accessors to the timekepeing state Thomas Gleixner
2014-07-16 21:03 ` [patch V2 04/64] ktime: Kill non-scalar ktime_t implementation for 2038 Thomas Gleixner
2014-07-16 21:03 ` [patch V2 05/64] ktime: Sanitize ktime_to_us/ms conversion Thomas Gleixner
2014-07-16 21:03 ` [patch V2 06/64] ktime: Change ktime_set() to take 64bit seconds value Thomas Gleixner
2014-07-16 21:03 ` [patch V2 07/64] time64: Add time64.h header and define struct timespec64 Thomas Gleixner
2014-07-16 21:03 ` [patch V2 08/64] time: More core infrastructure for timespec64 Thomas Gleixner
2014-07-16 21:04 ` [patch V2 09/64] timekeeping: Convert timekeeping core to use timespec64s Thomas Gleixner
2014-07-16 21:04 ` [patch V2 10/64] time: Consolidate the time accessor prototypes Thomas Gleixner
2014-07-16 21:04 ` [patch V2 11/64] timekeeping: Provide timespec64 based interfaces Thomas Gleixner
2014-07-16 21:04 ` [patch V2 12/64] timekeeper: Move tk_xtime to core code Thomas Gleixner
2014-07-23 21:15   ` John Stultz
2014-07-23 21:59     ` Thomas Gleixner
2014-07-16 21:04 ` [patch V2 13/64] timekeeping: Cache optimize struct timekeeper Thomas Gleixner
2014-07-16 21:04 ` [patch V2 14/64] timekeeping: Use timekeeping_update() instead of memcpy() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 15/64] timekeeping: Provide internal ktime_t based data Thomas Gleixner
2014-07-16 21:04 ` [patch V2 16/64] timekeeping: Use ktime_t based data for ktime_get() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 17/64] timekeeping: Provide ktime_get_with_offset() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 18/64] timekeeping: Use ktime_t based data for ktime_get_real() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 19/64] timekeeping; Use ktime_t based data for ktime_get_boottime() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 20/64] timekeeping: Use ktime_t based data for ktime_get_clocktai() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 21/64] timekeeping: Use ktime_t data for ktime_get_update_offsets_now() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 22/64] timekeeping; Use ktime based data for ktime_get_update_offsets_tick() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 23/64] timekeeping: Provide ktime_mono_to_any() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 24/64] timerfd: Use ktime_mono_to_real() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 25/64] input: evdev: " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 26/64] drm: " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 27/64] timekeeping: Remove ktime_get_monotonic_offset() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 28/64] timekeeping: Provide ktime_get[*]_ns() helpers Thomas Gleixner
2014-07-16 21:04 ` [patch V2 29/64] time: Export nsecs_to_jiffies() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 30/64] sched: Make task->real_start_time nanoseconds based Thomas Gleixner
2014-07-16 21:04 ` [patch V2 31/64] sched: Make task->start_time " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 32/64] delayacct: Make accounting nanosecond based Thomas Gleixner
2014-07-16 21:04 ` [patch V2 33/64] delayacct: Remove braindamaged type conversions Thomas Gleixner
2014-07-16 21:04 ` [patch V2 34/64] powerpc: cell: Use ktime_get_ns() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 35/64] connector: " Thomas Gleixner
2014-07-16 21:06   ` Evgeniy Polyakov
2014-07-16 21:04 ` [patch V2 36/64] mfd: cros_ec_spi: " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 37/64] misc: ioc4: " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 38/64] net: mlx5: " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 39/64] fs: lockd: " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 40/64] hwmon: ibmaem: " Thomas Gleixner
2014-07-21  8:37   ` Jean Delvare
2014-07-21 21:38     ` Darrick J. Wong
2014-07-16 21:04 ` [patch V2 41/64] iio: Use ktime_get_real_ns() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 42/64] arm: bL_switcher:k " Thomas Gleixner
2014-07-16 21:04 ` [patch V2 43/64] x86: kvm: Use ktime_get_boot_ns() Thomas Gleixner
2014-07-17 10:58   ` Paolo Bonzini
2014-07-16 21:04 ` [patch V2 44/64] x86: kvm: Make kvm_get_time_and_clockread() nanoseconds based Thomas Gleixner
2014-07-17 10:58   ` Paolo Bonzini
2014-07-16 21:04 ` [patch V2 45/64] timekeeping: Remove monotonic_to_bootbased Thomas Gleixner
2014-07-16 21:04 ` [patch V2 46/64] timekeeping: Use ktime_get_boottime() for get_monotonic_boottime() Thomas Gleixner
2014-07-16 21:04 ` [patch V2 47/64] timekeeping: Simplify getboottime() Thomas Gleixner
2014-07-16 21:05 ` [patch V2 48/64] timekeeping: Remove timekeeper.total_sleep_time Thomas Gleixner
2014-07-16 21:05 ` [patch V2 49/64] timekeeping: Simplify timekeeping_clocktai() Thomas Gleixner
2014-07-16 21:05 ` [patch V2 50/64] hangcheck-timer: Use ktime_get_ns() Thomas Gleixner
2014-07-16 22:08   ` Greg Kroah-Hartman
2014-07-16 21:05 ` [patch V2 51/64] timekeeping: Provide ktime_get_raw() Thomas Gleixner
2014-07-16 21:05 ` [patch V2 52/64] drm: i915: Use nsec based interfaces Thomas Gleixner
2014-07-16 21:05 ` [patch V2 53/64] drm: vmwgfx: " Thomas Gleixner
2014-07-16 21:05 ` [patch V2 54/64] wireless: ath9k: Get rid of timespec conversions Thomas Gleixner
2014-07-16 21:05 ` [patch V2 55/64] clocksource: Make delta calculation a function Thomas Gleixner
2014-07-16 21:05 ` [patch V2 56/64] clocksource: Move cycle_last validation to core code Thomas Gleixner
2014-07-16 21:05 ` [patch V2 57/64] clocksource: Get rid of cycle_last Thomas Gleixner
2014-07-16 21:05 ` [patch V2 58/64] timekeeping: Restructure the timekeeper some more Thomas Gleixner
2014-07-16 21:05 ` [patch V2 59/64] timekeeping: Create struct tk_read_base and use it in struct timekeeper Thomas Gleixner
2014-07-16 21:05 ` [patch V2 60/64] timekeeping: Use tk_read_base as argument for timekeeping_get_ns() Thomas Gleixner
2014-07-16 21:05 ` [patch V2 61/64] seqcount: Provide raw_read_seqcount() Thomas Gleixner
2014-07-16 21:05 ` [patch V2 62/64] seqcount: Add raw_write_seqcount_latch() Thomas Gleixner
2014-07-16 21:05 ` [patch V2 63/64] timekeeping: Provide fast and NMI safe access to CLOCK_MONOTONIC Thomas Gleixner
2014-07-16 21:05 ` [patch V2 64/64] ftrace: Provide trace clocks monotonic Thomas Gleixner
2014-07-17 12:55   ` Steven Rostedt
2014-07-17 13:12     ` Steven Rostedt
2014-07-17 22:32 ` [patch V2 00/64] timekeeping: 2038, optimizations, NMI safe accessors Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).