Skip to contentSkip to conversation

printk: Add new timestamps

PATCH Superseded Prarit Bhargava 3 participants 6 messages Aug 16, 2017 – Aug 17, 2017

Subsystems (32)

v6 of 12 Superseded Latest is v12 →

lore
Share & tools
lore
#0 lore raw

v6 cover printk: Add new timestamps

printk.time=1/CONFIG_PRINTK_TIME=1 adds a unmodified local hardware clock timestamp to printk messages. The local hardware clock loses time each day making it difficult to determine exactly when an issue has occurred in the kernel log, and making it difficult to determine how kernel and hardware issues relate to each other in real time.

Add monotonic, boottime, and real clock timestamps in addition to the existing local hardware clock timestamp.

Cc Mark Salyzyn <[email protected]>
Cc Jonathan Corbet <[email protected]>
Cc Petr Mladek <[email protected]>
Cc Sergey Senozhatsky <[email protected]>
Cc Steven Rostedt <[email protected]>
Cc John Stultz <[email protected]>
Cc Thomas Gleixner <[email protected]>
Cc Stephen Boyd <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc "Paul E. McKenney" <[email protected]>
Cc Christoffer Dall <[email protected]>
Cc Deepa Dinamani <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Joel Fernandes <[email protected]>
Cc Prarit Bhargava <[email protected]>
Cc Kees Cook <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc "Luis R. Rodriguez" <[email protected]>
Cc Nicholas Piggin <[email protected]>
Cc "Jason A. Donenfeld" <[email protected]>
Cc Olof Johansson <[email protected]>
Cc Josh Poimboeuf <[email protected]>

Prarit Bhargava (2):
time: Make fast functions return 0 before timekeeping is initialized
printk: Add monotonic, boottime, and realtime timestamps

 Documentation/admin-guide/kernel-parameters.txt    |   6 +-
 arch/arm/configs/aspeed_g4_defconfig               |   2 +-
 arch/arm/configs/aspeed_g5_defconfig               |   2 +-
 arch/arm/configs/axm55xx_defconfig                 |   2 +-
 arch/arm/configs/bcm2835_defconfig                 |   2 +-
 arch/arm/configs/colibri_pxa270_defconfig          |   2 +-
 arch/arm/configs/colibri_pxa300_defconfig          |   2 +-
 arch/arm/configs/dove_defconfig                    |   2 +-
 arch/arm/configs/efm32_defconfig                   |   2 +-
 arch/arm/configs/exynos_defconfig                  |   2 +-
 arch/arm/configs/ezx_defconfig                     |   2 +-
 arch/arm/configs/h5000_defconfig                   |   2 +-
 arch/arm/configs/hisi_defconfig                    |   2 +-
 arch/arm/configs/imote2_defconfig                  |   2 +-
 arch/arm/configs/imx_v6_v7_defconfig               |   2 +-
 arch/arm/configs/keystone_defconfig                |   2 +-
 arch/arm/configs/lpc18xx_defconfig                 |   2 +-
 arch/arm/configs/magician_defconfig                |   2 +-
 arch/arm/configs/mmp2_defconfig                    |   2 +-
 arch/arm/configs/moxart_defconfig                  |   2 +-
 arch/arm/configs/mps2_defconfig                    |   2 +-
 arch/arm/configs/multi_v7_defconfig                |   2 +-
 arch/arm/configs/mvebu_v7_defconfig                |   2 +-
 arch/arm/configs/mxs_defconfig                     |   2 +-
 arch/arm/configs/omap2plus_defconfig               |   2 +-
 arch/arm/configs/pxa168_defconfig                  |   2 +-
 arch/arm/configs/pxa3xx_defconfig                  |   2 +-
 arch/arm/configs/pxa910_defconfig                  |   2 +-
 arch/arm/configs/pxa_defconfig                     |   2 +-
 arch/arm/configs/qcom_defconfig                    |   2 +-
 arch/arm/configs/raumfeld_defconfig                |   2 +-
 arch/arm/configs/shmobile_defconfig                |   2 +-
 arch/arm/configs/socfpga_defconfig                 |   2 +-
 arch/arm/configs/stm32_defconfig                   |   2 +-
 arch/arm/configs/sunxi_defconfig                   |   2 +-
 arch/arm/configs/tango4_defconfig                  |   2 +-
 arch/arm/configs/tegra_defconfig                   |   2 +-
 arch/arm/configs/u300_defconfig                    |   2 +-
 arch/arm/configs/u8500_defconfig                   |   2 +-
 arch/arm/configs/vt8500_v6_v7_defconfig            |   2 +-
 arch/arm/configs/xcep_defconfig                    |   2 +-
 arch/arm/configs/zx_defconfig                      |   2 +-
 arch/arm64/configs/defconfig                       |   2 +-
 arch/m68k/configs/amcore_defconfig                 |   2 +-
 arch/mips/configs/ath25_defconfig                  |   2 +-
 arch/mips/configs/bcm47xx_defconfig                |   2 +-
 arch/mips/configs/bmips_be_defconfig               |   2 +-
 arch/mips/configs/bmips_stb_defconfig              |   2 +-
 arch/mips/configs/ci20_defconfig                   |   2 +-
 arch/mips/configs/generic_defconfig                |   2 +-
 arch/mips/configs/lemote2f_defconfig               |   2 +-
 arch/mips/configs/loongson3_defconfig              |   2 +-
 arch/mips/configs/nlm_xlp_defconfig                |   2 +-
 arch/mips/configs/nlm_xlr_defconfig                |   2 +-
 arch/mips/configs/pistachio_defconfig              |   2 +-
 arch/mips/configs/qi_lb60_defconfig                |   2 +-
 arch/mips/configs/rt305x_defconfig                 |   2 +-
 arch/mips/configs/xway_defconfig                   |   2 +-
 arch/parisc/configs/generic-64bit_defconfig        |   2 +-
 arch/powerpc/configs/40x/virtex_defconfig          |   2 +-
 arch/powerpc/configs/44x/fsp2_defconfig            |   2 +-
 arch/powerpc/configs/44x/virtex5_defconfig         |   2 +-
 arch/powerpc/configs/44x/warp_defconfig            |   2 +-
 arch/powerpc/configs/52xx/cm5200_defconfig         |   2 +-
 arch/powerpc/configs/52xx/lite5200b_defconfig      |   2 +-
 arch/powerpc/configs/52xx/motionpro_defconfig      |   2 +-
 arch/powerpc/configs/52xx/tqm5200_defconfig        |   2 +-
 arch/powerpc/configs/gamecube_defconfig            |   2 +-
 arch/powerpc/configs/mpc5200_defconfig             |   2 +-
 arch/powerpc/configs/pasemi_defconfig              |   2 +-
 arch/powerpc/configs/wii_defconfig                 |   2 +-
 arch/s390/configs/default_defconfig                |   2 +-
 arch/s390/configs/gcov_defconfig                   |   2 +-
 arch/s390/configs/performance_defconfig            |   2 +-
 arch/s390/configs/zfcpdump_defconfig               |   2 +-
 arch/sh/configs/edosk7760_defconfig                |   2 +-
 arch/sh/configs/sdk7786_defconfig                  |   2 +-
 arch/sh/configs/se7722_defconfig                   |   2 +-
 arch/sh/configs/sh7785lcr_32bit_defconfig          |   2 +-
 arch/sh/configs/urquell_defconfig                  |   2 +-
 arch/sparc/configs/sparc64_defconfig               |   2 +-
 arch/x86/configs/i386_defconfig                    |   2 +-
 arch/x86/configs/x86_64_defconfig                  |   2 +-
 arch/xtensa/configs/audio_kc705_defconfig          |   2 +-
 arch/xtensa/configs/cadence_csp_defconfig          |   2 +-
 arch/xtensa/configs/generic_kc705_defconfig        |   2 +-
 arch/xtensa/configs/nommu_kc705_defconfig          |   2 +-
 arch/xtensa/configs/smp_lx200_defconfig            |   2 +-
 include/linux/timekeeping.h                        |   1 +
 kernel/printk/printk.c                             | 147 ++++++++++++++++++++-
 kernel/time/timekeeping.c                          |  46 +++++--
 lib/Kconfig.debug                                  |  54 +++++++-
 .../selftests/rcutorture/configs/lock/CFcommon     |   2 +-
 .../selftests/rcutorture/configs/rcu/CFcommon      |   2 +-
 .../selftests/rcutorture/configs/rcuperf/CFcommon  |   2 +-
 95 files changed, 320 insertions(+), 114 deletions(-)
Signature · 1 line
1.8.5.5
#1 lore raw

PATCH v6 1/2 time: Make fast functions return 0 before timekeeping is initialized

printk timestamps will be extended to include mono and boot time by using the fast timekeeping functions ktime_get_mono|boot_fast_ns() functions. The functions can return garbage before timekeeping is initialized resulting in garbage timestamps.

The fast time functions must return 0 before timekeeping is initialized.

v6: Separate these changes out into their own patch.

---
 kernel/time/timekeeping.c | 47 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 33 insertions(+), 14 deletions(-)
kernel/time/timekeeping.c +33 -14
index cedafa008de5..d111039e0245 100644
@@ -60,8 +60,39 @@ struct tk_fast {
 	struct tk_read_base	base[2];
 };
 
-static struct tk_fast tk_fast_mono ____cacheline_aligned;
-static struct tk_fast tk_fast_raw  ____cacheline_aligned;
+/* Suspend-time cycles value for halted fast timekeeper. */
+static u64 cycles_at_suspend;
+
+static u64 dummy_clock_read(struct clocksource *cs)
+{
+	return cycles_at_suspend;
+}
+
+static struct clocksource dummy_clock = {
+	.read = dummy_clock_read,
+};
+
+static struct tk_fast tk_fast_mono ____cacheline_aligned = {
+	.base = {
+		(struct tk_read_base){
+			.clock = &dummy_clock,
+		},
+		(struct tk_read_base){
+			.clock = &dummy_clock,
+		},
+	},
+};
+
+static struct tk_fast tk_fast_raw  ____cacheline_aligned = {
+	.base = {
+		(struct tk_read_base){
+			.clock = &dummy_clock,
+		},
+		(struct tk_read_base){
+			.clock = &dummy_clock,
+		},
+	},
+};
 
 /* flag for if timekeeping is suspended */
 int __read_mostly timekeeping_suspended;
@@ -477,18 +508,6 @@ u64 notrace ktime_get_boot_fast_ns(void)
 }
 EXPORT_SYMBOL_GPL(ktime_get_boot_fast_ns);
 
-/* Suspend-time cycles value for halted fast timekeeper. */
-static u64 cycles_at_suspend;
-
-static u64 dummy_clock_read(struct clocksource *cs)
-{
-	return cycles_at_suspend;
-}
-
-static struct clocksource dummy_clock = {
-	.read = dummy_clock_read,
-};
-
 /**
  * halt_fast_timekeeper - Prevent fast timekeeper from accessing clocksource.
  * @tk: Timekeeper to snapshot.
Signature · 1 line
1.8.5.5
#2 lore raw

Re: [PATCH 1/2 v6] time: Make fast functions return 0 before timekeeping is initialized

Quoted 7 lines · Prarit Bhargava

printk timestamps will be extended to include mono and boot time by using the fast timekeeping functions ktime_get_mono|boot_fast_ns() functions. The functions can return garbage before timekeeping is initialized resulting in garbage timestamps.

The fast time functions must return 0 before timekeeping is initialized.

This looks reasonable. I can queue it, but you still have feedback to address on 2/2, so I may wait until that is sorted.

thanks
-john

#3 lore raw

PATCH v6 2/2 printk: Add monotonic, boottime, and realtime timestamps

In reply to Prarit Bhargava

printk.time=1/CONFIG_PRINTK_TIME=1 adds a unmodified local hardware clock timestamp to printk messages. The local hardware clock loses time each day making it difficult to determine exactly when an issue has occurred in the kernel log, and making it difficult to determine how kernel and hardware issues relate to each other in real time.

Make printk output different timestamps by adding options for no timestamp, the local hardware clock, the monotonic clock, the boottime clock, and the real clock. Allow a user to pick one of the clocks by using the printk.time kernel parameter. Output the type of clock in /sys/module/printk/parameters/time so userspace programs can interpret the timestamp.

Real clock & 32-bit systems: Selecting the real clock printk timestamp may lead to unlikely situations where a timestamp is wrong because the real time without the protection of a sequence lock when printk_get_ts() is set printk_get_real_ns().

v2: Use peterz's suggested Kconfig options. Merge patchset together. Fix i386 !CONFIG_PRINTK builds.

v3: Fixed x86_64_defconfig. Added printk_time_type enum and printk_time_str for better output. Added BOOTTIME clock functionality.

v4: Fix messages, add additional printk.time options, and fix configs.

v5: Renaming of structures, and allow printk_time_set() to evaluate substrings of entries (eg: allow 'r', 'real', 'realtime'). From peterz, make fast functions return 0 until timekeeping is initialized (removes timekeeping_active & ktime_get_boot|real_log_ts() suggested by
tglx and adds ktime_get_real_offset()). Switch to a function pointer
for printk_get_ts() and reference fast functions. Make timestamp_sources enum match choice options for CONFIG_PRINTK_TIME (adds PRINTK_TIME_UNDEFINED).

v6: Define PRINTK_TIME_UNDEFINED for !CONFIG_PRINTK builds. Separate timekeeping changes into separate patch. Minor include file cleanup.

Cc Mark Salyzyn <[email protected]>
Cc Jonathan Corbet <[email protected]>
Cc Petr Mladek <[email protected]>
Cc Sergey Senozhatsky <[email protected]>
Cc Steven Rostedt <[email protected]>
Cc John Stultz <[email protected]>
Cc Thomas Gleixner <[email protected]>
Cc Stephen Boyd <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc "Paul E. McKenney" <[email protected]>
Cc Christoffer Dall <[email protected]>
Cc Deepa Dinamani <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Joel Fernandes <[email protected]>
Cc Prarit Bhargava <[email protected]>
Cc Kees Cook <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc "Luis R. Rodriguez" <[email protected]>
Cc Nicholas Piggin <[email protected]>
Cc "Jason A. Donenfeld" <[email protected]>
Cc Olof Johansson <[email protected]>
Cc Josh Poimboeuf <[email protected]>
---
 Documentation/admin-guide/kernel-parameters.txt    |   6 +-
 arch/arm/configs/aspeed_g4_defconfig               |   2 +-
 arch/arm/configs/aspeed_g5_defconfig               |   2 +-
 arch/arm/configs/axm55xx_defconfig                 |   2 +-
 arch/arm/configs/bcm2835_defconfig                 |   2 +-
 arch/arm/configs/colibri_pxa270_defconfig          |   2 +-
 arch/arm/configs/colibri_pxa300_defconfig          |   2 +-
 arch/arm/configs/dove_defconfig                    |   2 +-
 arch/arm/configs/efm32_defconfig                   |   2 +-
 arch/arm/configs/exynos_defconfig                  |   2 +-
 arch/arm/configs/ezx_defconfig                     |   2 +-
 arch/arm/configs/h5000_defconfig                   |   2 +-
 arch/arm/configs/hisi_defconfig                    |   2 +-
 arch/arm/configs/imote2_defconfig                  |   2 +-
 arch/arm/configs/imx_v6_v7_defconfig               |   2 +-
 arch/arm/configs/keystone_defconfig                |   2 +-
 arch/arm/configs/lpc18xx_defconfig                 |   2 +-
 arch/arm/configs/magician_defconfig                |   2 +-
 arch/arm/configs/mmp2_defconfig                    |   2 +-
 arch/arm/configs/moxart_defconfig                  |   2 +-
 arch/arm/configs/mps2_defconfig                    |   2 +-
 arch/arm/configs/multi_v7_defconfig                |   2 +-
 arch/arm/configs/mvebu_v7_defconfig                |   2 +-
 arch/arm/configs/mxs_defconfig                     |   2 +-
 arch/arm/configs/omap2plus_defconfig               |   2 +-
 arch/arm/configs/pxa168_defconfig                  |   2 +-
 arch/arm/configs/pxa3xx_defconfig                  |   2 +-
 arch/arm/configs/pxa910_defconfig                  |   2 +-
 arch/arm/configs/pxa_defconfig                     |   2 +-
 arch/arm/configs/qcom_defconfig                    |   2 +-
 arch/arm/configs/raumfeld_defconfig                |   2 +-
 arch/arm/configs/shmobile_defconfig                |   2 +-
 arch/arm/configs/socfpga_defconfig                 |   2 +-
 arch/arm/configs/stm32_defconfig                   |   2 +-
 arch/arm/configs/sunxi_defconfig                   |   2 +-
 arch/arm/configs/tango4_defconfig                  |   2 +-
 arch/arm/configs/tegra_defconfig                   |   2 +-
 arch/arm/configs/u300_defconfig                    |   2 +-
 arch/arm/configs/u8500_defconfig                   |   2 +-
 arch/arm/configs/vt8500_v6_v7_defconfig            |   2 +-
 arch/arm/configs/xcep_defconfig                    |   2 +-
 arch/arm/configs/zx_defconfig                      |   2 +-
 arch/arm64/configs/defconfig                       |   2 +-
 arch/m68k/configs/amcore_defconfig                 |   2 +-
 arch/mips/configs/ath25_defconfig                  |   2 +-
 arch/mips/configs/bcm47xx_defconfig                |   2 +-
 arch/mips/configs/bmips_be_defconfig               |   2 +-
 arch/mips/configs/bmips_stb_defconfig              |   2 +-
 arch/mips/configs/ci20_defconfig                   |   2 +-
 arch/mips/configs/generic_defconfig                |   2 +-
 arch/mips/configs/lemote2f_defconfig               |   2 +-
 arch/mips/configs/loongson3_defconfig              |   2 +-
 arch/mips/configs/nlm_xlp_defconfig                |   2 +-
 arch/mips/configs/nlm_xlr_defconfig                |   2 +-
 arch/mips/configs/pistachio_defconfig              |   2 +-
 arch/mips/configs/qi_lb60_defconfig                |   2 +-
 arch/mips/configs/rt305x_defconfig                 |   2 +-
 arch/mips/configs/xway_defconfig                   |   2 +-
 arch/parisc/configs/generic-64bit_defconfig        |   2 +-
 arch/powerpc/configs/40x/virtex_defconfig          |   2 +-
 arch/powerpc/configs/44x/fsp2_defconfig            |   2 +-
 arch/powerpc/configs/44x/virtex5_defconfig         |   2 +-
 arch/powerpc/configs/44x/warp_defconfig            |   2 +-
 arch/powerpc/configs/52xx/cm5200_defconfig         |   2 +-
 arch/powerpc/configs/52xx/lite5200b_defconfig      |   2 +-
 arch/powerpc/configs/52xx/motionpro_defconfig      |   2 +-
 arch/powerpc/configs/52xx/tqm5200_defconfig        |   2 +-
 arch/powerpc/configs/gamecube_defconfig            |   2 +-
 arch/powerpc/configs/mpc5200_defconfig             |   2 +-
 arch/powerpc/configs/pasemi_defconfig              |   2 +-
 arch/powerpc/configs/wii_defconfig                 |   2 +-
 arch/s390/configs/default_defconfig                |   2 +-
 arch/s390/configs/gcov_defconfig                   |   2 +-
 arch/s390/configs/performance_defconfig            |   2 +-
 arch/s390/configs/zfcpdump_defconfig               |   2 +-
 arch/sh/configs/edosk7760_defconfig                |   2 +-
 arch/sh/configs/sdk7786_defconfig                  |   2 +-
 arch/sh/configs/se7722_defconfig                   |   2 +-
 arch/sh/configs/sh7785lcr_32bit_defconfig          |   2 +-
 arch/sh/configs/urquell_defconfig                  |   2 +-
 arch/sparc/configs/sparc64_defconfig               |   2 +-
 arch/x86/configs/i386_defconfig                    |   2 +-
 arch/x86/configs/x86_64_defconfig                  |   2 +-
 arch/xtensa/configs/audio_kc705_defconfig          |   2 +-
 arch/xtensa/configs/cadence_csp_defconfig          |   2 +-
 arch/xtensa/configs/generic_kc705_defconfig        |   2 +-
 arch/xtensa/configs/nommu_kc705_defconfig          |   2 +-
 arch/xtensa/configs/smp_lx200_defconfig            |   2 +-
 include/linux/timekeeping.h                        |   1 +
 kernel/printk/printk.c                             | 147 ++++++++++++++++++++-
 kernel/time/timekeeping.c                          |   5 +
 lib/Kconfig.debug                                  |  54 +++++++-
 .../selftests/rcutorture/configs/lock/CFcommon     |   2 +-
 .../selftests/rcutorture/configs/rcu/CFcommon      |   2 +-
 .../selftests/rcutorture/configs/rcuperf/CFcommon  |   2 +-
 95 files changed, 290 insertions(+), 103 deletions(-)
Documentation/admin-guide/kernel-parameters.txt +4 -2
index d9c171ce4190..1ba277ecbf24 100644
@@ -3188,8 +3188,10 @@
 			ratelimit - ratelimit the logging
 			Default: ratelimit
 
-	printk.time=	Show timing data prefixed to each printk message line
-			Format: <bool>  (1/Y/y=enable, 0/N/n=disable)
+	printk.time=	Show timestamp prefixed to each printk message line
+			Format: <string>
+				(0/N/n/disable, 1/Y/y/local,
+				 b/boot, m/monotonic, r/realtime)
 
 	processor.max_cstate=	[HW,ACPI]
 			Limit processor to maximum C-state
arch/arm/configs/aspeed_g4_defconfig +1 -1
index cfc2465e8b77..5f3c50914e92 100644
@@ -162,7 +162,7 @@ CONFIG_JFFS2_FS_XATTR=y
 CONFIG_UBIFS_FS=y
 CONFIG_SQUASHFS=y
 CONFIG_SQUASHFS_XZ=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
arch/arm/configs/aspeed_g5_defconfig +1 -1
index 3c20d93de389..a9082d7504de 100644
@@ -165,7 +165,7 @@ CONFIG_JFFS2_FS_XATTR=y
 CONFIG_UBIFS_FS=y
 CONFIG_SQUASHFS=y
 CONFIG_SQUASHFS_XZ=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
arch/arm/configs/axm55xx_defconfig +1 -1
index 8e17e7ed1f02..e4d8acd0820c 100644
@@ -231,7 +231,7 @@ CONFIG_NFS_FSCACHE=y
 CONFIG_SUNRPC_DEBUG=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/bcm2835_defconfig +1 -1
index 3ee9d78c412a..15da3215a3c4 100644
@@ -141,7 +141,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_BOOT_PRINTK_DELAY=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
arch/arm/configs/colibri_pxa270_defconfig +1 -1
index 8995695fc118..0c11113bddc8 100644
@@ -144,7 +144,7 @@ CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
arch/arm/configs/colibri_pxa300_defconfig +1 -1
index d282e8b0bf33..c43c8777c2df 100644
@@ -51,7 +51,7 @@ CONFIG_EXT3_FS=y
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_USER=y
arch/arm/configs/dove_defconfig +1 -1
index a93cc2fcf791..2ecc71d71c7d 100644
@@ -118,7 +118,7 @@ CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_2=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/efm32_defconfig +1 -1
index 860d27138e6f..bcc809398198 100644
@@ -92,7 +92,7 @@ CONFIG_EXT2_FS=y
 CONFIG_ROMFS_FS=y
 CONFIG_ROMFS_BACKED_BY_MTD=y
 # CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/exynos_defconfig +1 -1
index 25325ed9319e..ae136425c18b 100644
@@ -253,7 +253,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
arch/arm/configs/ezx_defconfig +1 -1
index 23660f3d0f7f..1f4e558284b9 100644
@@ -363,7 +363,7 @@ CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/h5000_defconfig +1 -1
index e90d1dfeb188..702f3c0eed39 100644
@@ -61,7 +61,7 @@ CONFIG_TMPFS=y
 CONFIG_JFFS2_FS=y
 CONFIG_JFFS2_COMPRESSION_OPTIONS=y
 # CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_SCHED_DEBUG is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
arch/arm/configs/hisi_defconfig +1 -1
index b2e340b272ee..8edb1194c2f3 100644
@@ -82,7 +82,7 @@ CONFIG_NFS_FS=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
arch/arm/configs/imote2_defconfig +1 -1
index f204017c26b9..47f33125979b 100644
@@ -336,7 +336,7 @@ CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/imx_v6_v7_defconfig +1 -1
index e74de69caeab..aeada269d4e6 100644
@@ -382,7 +382,7 @@ CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
 # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/keystone_defconfig +1 -1
index 1331f6dc456a..d0f714554c04 100644
@@ -200,7 +200,7 @@ CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_SHIRQ=y
 CONFIG_DEBUG_USER=y
arch/arm/configs/lpc18xx_defconfig +1 -1
index 23df2518203d..88aced7fc3a2 100644
@@ -160,7 +160,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_INOTIFY_USER is not set
 CONFIG_JFFS2_FS=y
 # CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/magician_defconfig +1 -1
index ec5674c229a3..d131969de0cb 100644
@@ -154,7 +154,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_1251=m
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_SCHED_DEBUG is not set
 CONFIG_TIMER_STATS=y
arch/arm/configs/mmp2_defconfig +1 -1
index 1eeee7f11d91..5b0475cfa215 100644
@@ -74,7 +74,7 @@ CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
arch/arm/configs/moxart_defconfig +1 -1
index 2da0d9ee2107..bd29a3d9293d 100644
@@ -123,7 +123,7 @@ CONFIG_EXT3_FS=y
 CONFIG_TMPFS=y
 CONFIG_CONFIGFS_FS=y
 CONFIG_JFFS2_FS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/mps2_defconfig +1 -1
index 0bcdec7cc169..777835c1c21b 100644
@@ -98,7 +98,7 @@ CONFIG_NFS_V4_1=y
 CONFIG_NFS_V4_2=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/multi_v7_defconfig +1 -1
index 4d19c1b4b8e7..a8d046f15632 100644
@@ -929,7 +929,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_LOCKUP_DETECTOR=y
arch/arm/configs/mvebu_v7_defconfig +1 -1
index 69553704f2dc..5c04f1f301a7 100644
@@ -152,7 +152,7 @@ CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_2=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/mxs_defconfig +1 -1
index e5822ab01b7d..46cf9c63f226 100644
@@ -167,7 +167,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_FRAME_WARN=2048
 CONFIG_UNUSED_SYMBOLS=y
arch/arm/configs/omap2plus_defconfig +1 -1
index a120ae816260..0ee5782face7 100644
@@ -493,7 +493,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_INFO_SPLIT=y
 CONFIG_DEBUG_INFO_DWARF4=y
arch/arm/configs/pxa168_defconfig +1 -1
index e7c7b91b6de2..b51e29401cbd 100644
@@ -50,7 +50,7 @@ CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_PREEMPT is not set
arch/arm/configs/pxa3xx_defconfig +1 -1
index bfea6874b0a1..4b651e11b59d 100644
@@ -109,7 +109,7 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_SHIRQ=y
arch/arm/configs/pxa910_defconfig +1 -1
index 3aff71e6dae5..47bcde44f5ed 100644
@@ -58,7 +58,7 @@ CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_PREEMPT is not set
arch/arm/configs/pxa_defconfig +1 -1
index 64e3a2a8cede..e8e73782b99e 100644
@@ -727,7 +727,7 @@ CONFIG_NLS_ASCII=m
 CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_FRAME_WARN=0
arch/arm/configs/qcom_defconfig +1 -1
index b02039c712c3..4e3cd37cdbf3 100644
@@ -231,7 +231,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/raumfeld_defconfig +1 -1
index e3dc80ead465..1f95b508f519 100644
@@ -187,7 +187,7 @@ CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_KOI8_R=y
 CONFIG_NLS_KOI8_U=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_USER=y
arch/arm/configs/shmobile_defconfig +1 -1
index 3c66a422fb4d..6c63fe1ff985 100644
@@ -218,7 +218,7 @@ CONFIG_NFS_V4_1=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 # CONFIG_ARM_UNWIND is not set
arch/arm/configs/socfpga_defconfig +1 -1
index 2620ce790db0..df29e7f39753 100644
@@ -155,7 +155,7 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DETECT_HUNG_TASK=y
arch/arm/configs/stm32_defconfig +1 -1
index 90e5c46913a5..ab16e8a60675 100644
@@ -74,7 +74,7 @@ CONFIG_STM32_ADC=y
 # CONFIG_DNOTIFY is not set
 # CONFIG_INOTIFY_USER is not set
 CONFIG_NLS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/sunxi_defconfig +1 -1
index 0ec1d1ec130f..875aca7b9790 100644
@@ -151,6 +151,6 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_CRYPTO_DEV_SUN4I_SS=y
arch/arm/configs/tango4_defconfig +1 -1
index 68725d4eae45..fd7567905749 100644
@@ -90,5 +90,5 @@ CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=m
 CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_CRYPTO_ECHAINIV is not set
arch/arm/configs/tegra_defconfig +1 -1
index f0efc854b5a2..10899ebd9a9c 100644
@@ -286,7 +286,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/u300_defconfig +1 -1
index 36d77406e31b..3bb82939ca11 100644
@@ -62,7 +62,7 @@ CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/u8500_defconfig +1 -1
index e2151a7aaf49..f815d0370226 100644
@@ -127,7 +127,7 @@ CONFIG_NFS_FS=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/vt8500_v6_v7_defconfig +1 -1
index 1bfaa7bfc392..8cdbe4416009 100644
@@ -84,6 +84,6 @@ CONFIG_NFS_FS=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_LOCKUP_DETECTOR=y
arch/arm/configs/xcep_defconfig +1 -1
index 2eda24635e65..bac1996361a3 100644
@@ -79,7 +79,7 @@ CONFIG_NFS_V3=y
 CONFIG_NLS=m
 CONFIG_NLS_DEFAULT="utf8"
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/zx_defconfig +1 -1
index dfc061d87d2f..d3fbc60e34b2 100644
@@ -95,7 +95,7 @@ CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_NLS_CODEPAGE_936=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_INFO=y
arch/arm64/configs/defconfig +1 -1
index b4ca115b3be1..9284bc83f439 100644
@@ -549,7 +549,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
arch/m68k/configs/amcore_defconfig +1 -1
index 131b4101ae5d..4159926ed8b6 100644
@@ -107,7 +107,7 @@ CONFIG_JFFS2_FS=y
 CONFIG_ROMFS_FS=y
 CONFIG_ROMFS_BACKED_BY_BOTH=y
 # CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 # CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
arch/mips/configs/ath25_defconfig +1 -1
index 2c829950be17..d76cddf62e88 100644
@@ -105,7 +105,7 @@ CONFIG_SQUASHFS_FILE_DIRECT=y
 CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
 # CONFIG_SQUASHFS_ZLIB is not set
 CONFIG_SQUASHFS_XZ=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
arch/mips/configs/bcm47xx_defconfig +1 -1
index fad8e964f14c..c5b1b6f3cf84 100644
@@ -74,7 +74,7 @@ CONFIG_USB_HCD_BCMA=y
 CONFIG_USB_HCD_SSB=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_INFO_REDUCED=y
 CONFIG_STRIP_ASM_SYMS=y
arch/mips/configs/bmips_be_defconfig +1 -1
index a7072a14d396..fd75f5c176cc 100644
@@ -32,7 +32,7 @@ CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_STANDALONE is not set
 # CONFIG_PREVENT_FIRMWARE_BUILD is not set
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_BRCMSTB_GISB_ARB=y
 CONFIG_MTD=y
 CONFIG_MTD_BCM63XX_PARTS=y
arch/mips/configs/bmips_stb_defconfig +1 -1
index 3cefa6bc01dd..732720fce553 100644
@@ -85,7 +85,7 @@ CONFIG_CIFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_CMDLINE_BOOL=y
arch/mips/configs/ci20_defconfig +1 -1
index b42cfa7865f9..6b5b24e65412 100644
@@ -147,7 +147,7 @@ CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_KOI8_R=y
 CONFIG_NLS_KOI8_U=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
arch/mips/configs/generic_defconfig +1 -1
index 91aacf2ef26d..fdebcb55c956 100644
@@ -83,7 +83,7 @@ CONFIG_NFS_V4=y
 CONFIG_NFS_V4_1=y
 CONFIG_NFS_V4_2=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_INFO_REDUCED=y
 CONFIG_DEBUG_FS=y
arch/mips/configs/lemote2f_defconfig +1 -1
index 1ec8ed8d05d1..c87c7739a75d 100644
@@ -394,7 +394,7 @@ CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_FRAME_WARN=1024
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
arch/mips/configs/loongson3_defconfig +1 -1
index 324dfee23dfb..03a8062bcf50 100644
@@ -327,7 +327,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_936=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_FRAME_WARN=1024
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_MAGIC_SYSRQ=y
arch/mips/configs/nlm_xlp_defconfig +1 -1
index 5720ce23e9aa..aa8b2b7ab34b 100644
@@ -549,7 +549,7 @@ CONFIG_NLS_ISO8859_14=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_FRAME_WARN=1024
arch/mips/configs/nlm_xlr_defconfig +1 -1
index fea56c535d92..1e4dad09e863 100644
@@ -506,7 +506,7 @@ CONFIG_NLS_ISO8859_14=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_UNUSED_SYMBOLS=y
arch/mips/configs/pistachio_defconfig +1 -1
index 7d32fbbca962..1af6fe3cac9b 100644
@@ -297,7 +297,7 @@ CONFIG_NLS_DEFAULT="utf8"
 CONFIG_NLS_CODEPAGE_437=m
 CONFIG_NLS_ASCII=m
 CONFIG_NLS_ISO8859_1=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0
arch/mips/configs/qi_lb60_defconfig +1 -1
index 3f1333517405..08a0a201ca51 100644
@@ -170,7 +170,7 @@ CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_KOI8_R=y
 CONFIG_NLS_KOI8_U=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_READABLE_ASM=y
arch/mips/configs/rt305x_defconfig +1 -1
index c695b7b1c4ae..23292a112756 100644
@@ -143,7 +143,7 @@ CONFIG_JFFS2_COMPRESSION_OPTIONS=y
 CONFIG_SQUASHFS=y
 # CONFIG_SQUASHFS_ZLIB is not set
 CONFIG_SQUASHFS_XZ=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_STRIP_ASM_SYMS=y
arch/mips/configs/xway_defconfig +1 -1
index 4365108bef77..b6c38ef02e77 100644
@@ -151,7 +151,7 @@ CONFIG_JFFS2_COMPRESSION_OPTIONS=y
 CONFIG_SQUASHFS=y
 # CONFIG_SQUASHFS_ZLIB is not set
 CONFIG_SQUASHFS_XZ=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
arch/parisc/configs/generic-64bit_defconfig +1 -1
index d39e7f821aba..cdd53e723412 100644
@@ -272,7 +272,7 @@ CONFIG_NLS_ASCII=m
 CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_2=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_DEBUG_FS=y
arch/powerpc/configs/40x/virtex_defconfig +1 -1
index 65dc084a154c..39c8bed85ade 100644
@@ -71,7 +71,7 @@ CONFIG_CRC_CCITT=y
 CONFIG_FONTS=y
 CONFIG_FONT_8x8=y
 CONFIG_FONT_8x16=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_CRYPTO_ANSI_CPRNG is not set
arch/powerpc/configs/44x/fsp2_defconfig +1 -1
index e8e6a6999852..62b469cd8988 100644
@@ -111,7 +111,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_DEFAULT="n"
 CONFIG_XZ_DEC=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=3
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
arch/powerpc/configs/44x/virtex5_defconfig +1 -1
index ce052064bcbb..1b09850c15a9 100644
@@ -70,7 +70,7 @@ CONFIG_CRC_CCITT=y
 CONFIG_FONTS=y
 CONFIG_FONT_8x8=y
 CONFIG_FONT_8x16=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_CRYPTO_ANSI_CPRNG is not set
arch/powerpc/configs/44x/warp_defconfig +1 -1
index ab932488e68b..f9b7a4f8513e 100644
@@ -90,7 +90,7 @@ CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_UTF8=y
 CONFIG_CRC_CCITT=y
 CONFIG_CRC_T10DIF=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
arch/powerpc/configs/52xx/cm5200_defconfig +1 -1
index c1faac800806..74219e75eb11 100644
@@ -72,7 +72,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DETECT_HUNG_TASK=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
 CONFIG_CRYPTO_ECB=y
arch/powerpc/configs/52xx/lite5200b_defconfig +1 -1
index 9493b02ac660..cf5934721730 100644
@@ -58,7 +58,7 @@ CONFIG_TMPFS=y
 CONFIG_NFS_FS=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DETECT_HUNG_TASK=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
arch/powerpc/configs/52xx/motionpro_defconfig +1 -1
index fe8126bc1655..97705da7e508 100644
@@ -84,7 +84,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DETECT_HUNG_TASK=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
arch/powerpc/configs/52xx/tqm5200_defconfig +1 -1
index b8b316b884aa..6c963b1067c0 100644
@@ -86,7 +86,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DETECT_HUNG_TASK=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
arch/powerpc/configs/gamecube_defconfig +1 -1
index c0eec4a5df4e..ac60af8537c8 100644
@@ -89,7 +89,7 @@ CONFIG_CIFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_CRC_CCITT=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_SPINLOCK=y
 CONFIG_DEBUG_MUTEXES=y
 CONFIG_LATENCYTOP=y
arch/powerpc/configs/mpc5200_defconfig +1 -1
index 88336d0df0d6..fef3c9549558 100644
@@ -126,7 +126,7 @@ CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DETECT_HUNG_TASK=y
arch/powerpc/configs/pasemi_defconfig +1 -1
index fe43ff47bd2f..d0bcd472f761 100644
@@ -166,7 +166,7 @@ CONFIG_NFSD_V4=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_CRC_CCITT=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
arch/powerpc/configs/wii_defconfig +1 -1
index dcdd51b57783..b0c60a7de5d1 100644
@@ -110,7 +110,7 @@ CONFIG_CIFS=m
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_CRC_CCITT=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_SPINLOCK=y
 CONFIG_DEBUG_MUTEXES=y
arch/s390/configs/default_defconfig +1 -1
index 282072206df7..afd70fad4c9c 100644
@@ -564,7 +564,7 @@ CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=m
 CONFIG_DLM=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_INFO_DWARF4=y
arch/s390/configs/gcov_defconfig +1 -1
index 3c6b78189fbc..952e1edc9a15 100644
@@ -558,7 +558,7 @@ CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=m
 CONFIG_DLM=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_INFO_DWARF4=y
 CONFIG_GDB_SCRIPTS=y
arch/s390/configs/performance_defconfig +1 -1
index 653d72bcc007..c40b77458693 100644
@@ -556,7 +556,7 @@ CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=m
 CONFIG_DLM=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_INFO_DWARF4=y
 CONFIG_GDB_SCRIPTS=y
arch/s390/configs/zfcpdump_defconfig +1 -1
index afa46a7406ea..f7a27cdb6ae1 100644
@@ -57,7 +57,7 @@ CONFIG_RAW_DRIVER=y
 CONFIG_CONFIGFS_FS=y
 # CONFIG_MISC_FILESYSTEMS is not set
 # CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_PANIC_ON_OOPS=y
arch/sh/configs/edosk7760_defconfig +1 -1
index e1077a041ac3..5426621c31e5 100644
@@ -109,7 +109,7 @@ CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_UNUSED_SYMBOLS=y
arch/sh/configs/sdk7786_defconfig +1 -1
index 36642ec2cb97..58f6ca4cd95d 100644
@@ -215,7 +215,7 @@ CONFIG_NLS_ASCII=m
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=m
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_MAGIC_SYSRQ=y
arch/sh/configs/se7722_defconfig +1 -1
index ae998c7e2ee0..90c80700ce42 100644
@@ -53,7 +53,7 @@ CONFIG_EXT3_FS=y
 CONFIG_PROC_KCORE=y
 CONFIG_TMPFS=y
 CONFIG_HUGETLBFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_FS=y
arch/sh/configs/sh7785lcr_32bit_defconfig +1 -1
index 2fce54d9c388..b42ebc0cb68c 100644
@@ -144,7 +144,7 @@ CONFIG_NFSD_V3=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_932=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
arch/sh/configs/urquell_defconfig +1 -1
index 01c9a91ee896..b662c27ae110 100644
@@ -142,7 +142,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_932=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_DEBUG_FS=y
arch/sparc/configs/sparc64_defconfig +1 -1
index ca8609d7292f..45325ef8aaa9 100644
@@ -200,7 +200,7 @@ CONFIG_EXT3_FS_SECURITY=y
 CONFIG_PROC_KCORE=y
 CONFIG_TMPFS=y
 CONFIG_HUGETLBFS=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
arch/x86/configs/i386_defconfig +1 -1
index 0eb9f92f3717..f7d0ae1aa8f0 100644
@@ -284,7 +284,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_FRAME_WARN=1024
 CONFIG_MAGIC_SYSRQ=y
arch/x86/configs/x86_64_defconfig +1 -1
index 4a4b16e56d35..ad3c15b7efa7 100644
@@ -283,7 +283,7 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_MAGIC_SYSRQ=y
 # CONFIG_UNUSED_SYMBOLS is not set
arch/xtensa/configs/audio_kc705_defconfig +1 -1
index 8d16925765cb..673ce814fd94 100644
@@ -123,7 +123,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_SUNRPC_DEBUG=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
arch/xtensa/configs/cadence_csp_defconfig +1 -1
index f2d3094aa1d1..251ca322bf41 100644
@@ -102,7 +102,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_SUNRPC_DEBUG=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
arch/xtensa/configs/generic_kc705_defconfig +1 -1
index 744adeaf2945..a0c84cad8ef5 100644
@@ -110,7 +110,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_SUNRPC_DEBUG=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
arch/xtensa/configs/nommu_kc705_defconfig +1 -1
index 78c2529d0459..7522b3953fb1 100644
@@ -107,7 +107,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_SUNRPC_DEBUG=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_FRAME_POINTER is not set
arch/xtensa/configs/smp_lx200_defconfig +1 -1
index 14e3ca353ac8..6af72da56a81 100644
@@ -114,7 +114,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_SUNRPC_DEBUG=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
include/linux/timekeeping.h +1 -0
index ddc229ff6d1e..80ca2fa22b6a 100644
@@ -239,6 +239,7 @@ static inline u64 ktime_get_raw_ns(void)
 extern u64 ktime_get_mono_fast_ns(void);
 extern u64 ktime_get_raw_fast_ns(void);
 extern u64 ktime_get_boot_fast_ns(void);
+extern u64 ktime_get_real_offset(void);
 
 /*
  * Timespec interfaces utilizing the ktime based ones
kernel/printk/printk.c +142 -5

188 lines not on this page · raw message

kernel/time/timekeeping.c +5 -0
index d111039e0245..de07bb5ffef5 100644
@@ -508,6 +508,11 @@ u64 notrace ktime_get_boot_fast_ns(void)
 }
 EXPORT_SYMBOL_GPL(ktime_get_boot_fast_ns);
 
+u64 ktime_get_real_offset(void)
+{
+	return ktime_to_ns(tk_core.timekeeper.offs_real);
+}
+
 /**
  * halt_fast_timekeeper - Prevent fast timekeeper from accessing clocksource.
  * @tk: Timekeeper to snapshot.
lib/Kconfig.debug +48 -6

67 lines not on this page · raw message

tools/testing/selftests/rcutorture/configs/lock/CFcommon +1 -1
index e372dc269254..e6ed3d26cca2 100644
@@ -1,2 +1,2 @@
 CONFIG_LOCK_TORTURE_TEST=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
tools/testing/selftests/rcutorture/configs/rcu/CFcommon +1 -1
index d2d2a86139db..9f3b8045da8f 100644
@@ -1,2 +1,2 @@
 CONFIG_RCU_TORTURE_TEST=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
tools/testing/selftests/rcutorture/configs/rcuperf/CFcommon +1 -1
index a09816b8c0f3..0ef54bd1bdcd 100644
@@ -1,2 +1,2 @@
 CONFIG_RCU_PERF_TEST=y
-CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_TIME_LOCAL=y
Signature · 1 line
1.8.5.5
#4 lore raw

Re: [PATCH 2/2 v6] printk: Add monotonic, boottime, and realtime timestamps

Quoted 58 lines · Prarit Bhargava

. . .

kernel/printk/printk.c +4 -1
index fc47863f629c..f627a9bb97d1 100644
@@ -576,6 +576,9 @@ static u32 truncate_msg(u16 *text_len, u16 *trunc_msg_len,
  	return msg_used_size(*text_len + *trunc_msg_len, 0, pad_len);
  }
 
+static u64 printk_set_timestamp(void);
+static u64 (*printk_get_ts)(void) = printk_set_timestamp;
+
  /* insert record into the buffer, discard old ones, update heads */
  static int log_store(int facility, int level,
  		     enum log_flags flags, u64 ts_nsec,
@@ -624,7 +627,7 @@ static int log_store(int facility, int level,
  	if (ts_nsec > 0)
  		msg->ts_nsec = ts_nsec;
  	else
-		msg->ts_nsec = local_clock();
+		msg->ts_nsec = printk_get_ts();
  	memset(log_dict(msg) + dict_len, 0, pad_len);
  	msg->len = size;
 

. . .

kernel/printk/printk.c +33 -0
+/**
+ * enum timestamp_sources - Timestamp sources for printk() messages.
+ * @PRINTK_TIME_UNDEFINED: Timestamp undefined.  This option is not selectable
+ * from the configs, and is used as a reference in the code.
+ * @PRINTK_TIME_DISABLE: No time stamp.
+ * @PRINTK_TIME_LOCAL: Local hardware clock timestamp.
+ * @PRINTK_TIME_BOOT: Boottime clock timestamp.
+ * @PRINTK_TIME_MONO: Monotonic clock timestamp.
+ * @PRINTK_TIME_REAL: Realtime clock timestamp.  On 32-bit
+ * systems selecting the real clock printk timestamp may lead to unlikely
+ * situations where a timestamp is wrong because the real time offset is read
+ * without the protection of a sequence lock when printk_get_ts() is set to
+ * printk_get_real_ns().
+ */
+enum timestamp_sources {
+	PRINTK_TIME_UNDEFINED = 0,
+	PRINTK_TIME_DISABLE = 1,
+	PRINTK_TIME_LOCAL = 2,
+	PRINTK_TIME_BOOT = 3,
+	PRINTK_TIME_MONO = 4,
+	PRINTK_TIME_REAL = 5,
+};
+. . .
+
+static u64 printk_set_timestamp(void)
+{
+	switch (printk_time) {
+	case PRINTK_TIME_LOCAL:
+	case PRINTK_TIME_DISABLE:
+		printk_get_ts = local_clock;
+		break;
+	case PRINTK_TIME_BOOT:
+		printk_get_ts = ktime_get_boot_fast_ns;

kernel/printk/printk.c static inline void boot_delay_msec(int level) · line 1272

Quoted 10 lines
kernel/printk/printk.c +10 -0
+		break;
+	case PRINTK_TIME_MONO:
+		printk_get_ts = ktime_get_mono_fast_ns;
+		break;
+	case PRINTK_TIME_REAL:
+		printk_get_ts = printk_get_real_ns;
+		break;
+	}
+	return printk_get_ts();
+}

I am really nervous about the default case, despite PRINTK_TIME_UNDEFINED being declared impossible. Either set printk_get_ts to local_clock for default: (which I prefer), or return (printk_get_ts != printk_set_timestamp) ? printk_get_ts() : 0; (which at least prevents the infinite loop).

Quoted 27 lines
kernel/printk/printk.c +27 -0
+
+static int printk_time_set(const char *val, const struct kernel_param *kp)
+{
+	char *param = strstrip((char *)val);
+	int _printk_time = PRINTK_TIME_UNDEFINED;
+	int ts;
+
+	if (strlen(param) == 1) {
+		/* Preserve legacy boolean settings */
+		if ((param[0] == '0') || (param[0] == 'n') ||
+		    (param[0] == 'N'))
+			_printk_time = PRINTK_TIME_DISABLE;
+		if ((param[0] == '1') || (param[0] == 'y') ||
+		    (param[0] == 'Y'))
+			_printk_time = PRINTK_TIME_LOCAL;
+	}
+	if (_printk_time == PRINTK_TIME_UNDEFINED) {
+		for (ts = 0; ts < ARRAY_SIZE(timestamp_sources_str); ts++) {
+			if (!strncmp(timestamp_sources_str[ts], param,
+				     strlen(param))) {
+				_printk_time = ts;
+				break;
+			}
+		}
+	}
+	if (_printk_time == PRINTK_TIME_UNDEFINED) {
+		pr_warn("printk: invalid timestamp option %s\n", param);

kernel/printk/printk.c static inline void boot_delay_msec(int level) · line 1309

Quoted 10 lines
kernel/printk/printk.c +10 -0
+		return -EINVAL;
+	}
+
+	/*
+	 * Only allow enabling and disabling of the current printk_time
+	 * setting.  Changing it from one setting to another confuses
+	 * userspace.
+	 */
+	if (printk_time_source == PRINTK_TIME_UNDEFINED)
+		printk_time_source = _printk_time;

(I've asked this before) Could we add something like #ifndef PRINTK_TIME_DEBUG around the following to allow the option to chose for those that like to 'play' with the value?

kernel/printk/printk.c static inline void boot_delay_msec(int level) · line 1316

Quoted 7 lines
kernel/printk/printk.c +7 -0
+	else if ((printk_time_source != _printk_time) &&
+		 (_printk_time != PRINTK_TIME_DISABLE)) {
+		pr_warn("printk: timestamp can only be set to 0, disabled, or %s\n",
+			timestamp_sources_str[printk_time_source]);
+		return -EINVAL;
+	}
+

-- Mark

#5 lore raw

Re: [PATCH 2/2 v6] printk: Add monotonic, boottime, and realtime timestamps

In reply to Prarit Bhargava
Quoted 34 lines
lib/Kconfig.debug +27 -0
index 98fe715522e8..c303b235a0b1 100644
@@ -1,19 +1,61 @@
 menu "printk and dmesg options"
 
+choice
+       prompt "printk default clock timestamp"
+
+config PRINTK_TIME_DISABLE
+       bool "Disabled"
+       help
+        Selecting this option disables the time stamps of printk().
+
+config PRINTK_TIME_LOCAL
+       bool "Local Clock"
+       help
+         Selecting this option causes the time stamps of printk() to be
+         stamped with the unadjusted hardware clock.
+
+config PRINTK_TIME_BOOT
+       bool "CLOCK_BOOTTIME"
+       help
+         Selecting this option causes the time stamps of printk() to be
+         stamped with the adjusted boottime clock.
+
+config PRINTK_TIME_MONO
+       bool "CLOCK_MONOTONIC"
+       help
+         Selecting this option causes the time stamps of printk() to be
+         stamped with the adjusted monotonic clock.
+
+config PRINTK_TIME_REAL

lib/Kconfig.debug line 38

Quoted 10 lines
lib/Kconfig.debug +8 -1
+       bool "CLOCK_REALTIME"
+       help
+         Selecting this option causes the time stamps of printk() to be
+         stamped with the adjusted realtime clock.
+
+endchoice
+
 config PRINTK_TIME
-       bool "Show timing information on printks"
+       int "Show timestamp information on printks"

You need to drop the prompt on this, as it ends up with this insane setup where you chose from the choice list, but then you can go and set the PRINTK_TIME manually to something else?

So PRINTK_TIME_REAL can be y, but PRINTK_TIME can be 2... Yuck.

I'm still annoyed enough with this Kconfig/defconfig noise in the patch that I'm going to take my own shot at it ( hopefully there's a better way, but likely it will help me understand why it was done this way :).

thanks
-john