printk: Add boottime and real timestamps
Subsystems (32)
PATCH v2 1/1 printk: Add boottime and real 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.
Make printk output different timestampes by adding options for no timestamp, the local hardware clock, the monotonic 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 offset is read without the protection of a sequence lock in the call to ktime_get_log_ts() in printk_get_ts().
v2: Use peterz's suggested Kconfig options. Merge patchset together. Fix i386 !CONFIG_PRINTK builds.
--- Documentation/admin-guide/kernel-parameters.txt | 6 +- arch/arm/configs/aspeed_g4_defconfig | 4 +- arch/arm/configs/aspeed_g5_defconfig | 4 +- arch/arm/configs/axm55xx_defconfig | 4 +- arch/arm/configs/bcm2835_defconfig | 4 +- arch/arm/configs/colibri_pxa270_defconfig | 4 +- arch/arm/configs/colibri_pxa300_defconfig | 4 +- arch/arm/configs/dove_defconfig | 4 +- arch/arm/configs/efm32_defconfig | 4 +- arch/arm/configs/exynos_defconfig | 4 +- arch/arm/configs/ezx_defconfig | 4 +- arch/arm/configs/h5000_defconfig | 4 +- arch/arm/configs/hisi_defconfig | 4 +- arch/arm/configs/imote2_defconfig | 4 +- arch/arm/configs/imx_v6_v7_defconfig | 4 +- arch/arm/configs/keystone_defconfig | 4 +- arch/arm/configs/lpc18xx_defconfig | 4 +- arch/arm/configs/magician_defconfig | 4 +- arch/arm/configs/mmp2_defconfig | 4 +- arch/arm/configs/moxart_defconfig | 4 +- arch/arm/configs/mps2_defconfig | 4 +- arch/arm/configs/multi_v7_defconfig | 4 +- arch/arm/configs/mvebu_v7_defconfig | 4 +- arch/arm/configs/mxs_defconfig | 4 +- arch/arm/configs/omap2plus_defconfig | 4 +- arch/arm/configs/pxa168_defconfig | 4 +- arch/arm/configs/pxa3xx_defconfig | 4 +- arch/arm/configs/pxa910_defconfig | 4 +- arch/arm/configs/pxa_defconfig | 4 +- arch/arm/configs/qcom_defconfig | 4 +- arch/arm/configs/raumfeld_defconfig | 4 +- arch/arm/configs/shmobile_defconfig | 4 +- arch/arm/configs/socfpga_defconfig | 4 +- arch/arm/configs/stm32_defconfig | 4 +- arch/arm/configs/sunxi_defconfig | 4 +- arch/arm/configs/tango4_defconfig | 4 +- arch/arm/configs/tegra_defconfig | 4 +- arch/arm/configs/u300_defconfig | 4 +- arch/arm/configs/u8500_defconfig | 4 +- arch/arm/configs/vt8500_v6_v7_defconfig | 4 +- arch/arm/configs/xcep_defconfig | 4 +- arch/arm/configs/zx_defconfig | 4 +- arch/arm64/configs/defconfig | 4 +- arch/m68k/configs/amcore_defconfig | 4 +- arch/mips/configs/ath25_defconfig | 4 +- arch/mips/configs/bcm47xx_defconfig | 4 +- arch/mips/configs/bmips_be_defconfig | 4 +- arch/mips/configs/bmips_stb_defconfig | 4 +- arch/mips/configs/ci20_defconfig | 4 +- arch/mips/configs/generic_defconfig | 4 +- arch/mips/configs/lemote2f_defconfig | 4 +- arch/mips/configs/loongson3_defconfig | 4 +- arch/mips/configs/nlm_xlp_defconfig | 4 +- arch/mips/configs/nlm_xlr_defconfig | 4 +- arch/mips/configs/pistachio_defconfig | 4 +- arch/mips/configs/qi_lb60_defconfig | 4 +- arch/mips/configs/rt305x_defconfig | 4 +- arch/mips/configs/xway_defconfig | 4 +- arch/parisc/configs/generic-64bit_defconfig | 4 +- arch/powerpc/configs/40x/virtex_defconfig | 4 +- arch/powerpc/configs/44x/fsp2_defconfig | 4 +- arch/powerpc/configs/44x/virtex5_defconfig | 4 +- arch/powerpc/configs/44x/warp_defconfig | 4 +- arch/powerpc/configs/52xx/cm5200_defconfig | 4 +- arch/powerpc/configs/52xx/lite5200b_defconfig | 4 +- arch/powerpc/configs/52xx/motionpro_defconfig | 4 +- arch/powerpc/configs/52xx/tqm5200_defconfig | 4 +- arch/powerpc/configs/gamecube_defconfig | 4 +- arch/powerpc/configs/mpc5200_defconfig | 4 +- arch/powerpc/configs/pasemi_defconfig | 4 +- arch/powerpc/configs/wii_defconfig | 4 +- arch/s390/configs/default_defconfig | 4 +- arch/s390/configs/gcov_defconfig | 4 +- arch/s390/configs/performance_defconfig | 4 +- arch/s390/configs/zfcpdump_defconfig | 4 +- arch/sh/configs/edosk7760_defconfig | 4 +- arch/sh/configs/sdk7786_defconfig | 4 +- arch/sh/configs/se7722_defconfig | 4 +- arch/sh/configs/sh7785lcr_32bit_defconfig | 4 +- arch/sh/configs/urquell_defconfig | 4 +- arch/sparc/configs/sparc64_defconfig | 4 +- arch/x86/configs/i386_defconfig | 4 +- arch/x86/configs/x86_64_defconfig | 8 +- arch/xtensa/configs/audio_kc705_defconfig | 4 +- arch/xtensa/configs/cadence_csp_defconfig | 4 +- arch/xtensa/configs/generic_kc705_defconfig | 4 +- arch/xtensa/configs/nommu_kc705_defconfig | 4 +- arch/xtensa/configs/smp_lx200_defconfig | 4 +- include/linux/timekeeping.h | 1 + kernel/printk/printk.c | 97 +++++++++++++++++++++- kernel/time/timekeeping.c | 14 ++++ lib/Kconfig.debug | 36 +++++++- .../selftests/rcutorture/configs/lock/CFcommon | 4 +- .../selftests/rcutorture/configs/rcu/CFcommon | 4 +- .../selftests/rcutorture/configs/rcuperf/CFcommon | 4 +- 95 files changed, 420 insertions(+), 98 deletions(-)
Documentation/admin-guide/kernel-parameters.txt +4 -2
@@ -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/unadjusted HW, + 2 = monotonic, 3 = real) processor.max_cstate= [HW,ACPI] Limit processor to maximum C-state
arch/arm/configs/aspeed_g4_defconfig +3 -1
@@ -162,7 +162,9 @@ CONFIG_JFFS2_FS_XATTR=y CONFIG_UBIFS_FS=y CONFIG_SQUASHFS=y CONFIG_SQUASHFS_XZ=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y
arch/arm/configs/aspeed_g5_defconfig +3 -1
@@ -165,7 +165,9 @@ CONFIG_JFFS2_FS_XATTR=y CONFIG_UBIFS_FS=y CONFIG_SQUASHFS=y CONFIG_SQUASHFS_XZ=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y
arch/arm/configs/axm55xx_defconfig +3 -1
@@ -231,7 +231,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/bcm2835_defconfig +3 -1
@@ -141,7 +141,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y
arch/arm/configs/colibri_pxa270_defconfig +3 -1
@@ -144,7 +144,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y
arch/arm/configs/colibri_pxa300_defconfig +3 -1
@@ -51,7 +51,9 @@ CONFIG_EXT3_FS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_USER=y
arch/arm/configs/dove_defconfig +3 -1
@@ -118,7 +118,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/efm32_defconfig +3 -1
@@ -92,7 +92,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/exynos_defconfig +3 -1
@@ -253,7 +253,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y
arch/arm/configs/ezx_defconfig +3 -1
@@ -363,7 +363,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/h5000_defconfig +3 -1
@@ -61,7 +61,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_BUGVERBOSE is not set
arch/arm/configs/hisi_defconfig +3 -1
@@ -82,7 +82,9 @@ CONFIG_NFS_FS=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y
arch/arm/configs/imote2_defconfig +3 -1
@@ -336,7 +336,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/imx_v6_v7_defconfig +3 -1
@@ -382,7 +382,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/keystone_defconfig +3 -1
@@ -200,7 +200,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_SHIRQ=y CONFIG_DEBUG_USER=y
arch/arm/configs/lpc18xx_defconfig +3 -1
@@ -160,7 +160,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/magician_defconfig +3 -1
@@ -154,7 +154,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set CONFIG_TIMER_STATS=y
arch/arm/configs/mmp2_defconfig +3 -1
@@ -74,7 +74,9 @@ CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y
arch/arm/configs/moxart_defconfig +3 -1
@@ -123,7 +123,9 @@ CONFIG_EXT3_FS=y CONFIG_TMPFS=y CONFIG_CONFIGFS_FS=y CONFIG_JFFS2_FS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/mps2_defconfig +3 -1
@@ -98,7 +98,9 @@ CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_ROOT_NFS=y CONFIG_NLS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/multi_v7_defconfig +3 -1
@@ -929,7 +929,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_LOCKUP_DETECTOR=y
arch/arm/configs/mvebu_v7_defconfig +3 -1
@@ -152,7 +152,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/mxs_defconfig +3 -1
@@ -167,7 +167,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_FRAME_WARN=2048 CONFIG_UNUSED_SYMBOLS=y
arch/arm/configs/omap2plus_defconfig +3 -1
@@ -493,7 +493,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_SPLIT=y CONFIG_DEBUG_INFO_DWARF4=y
arch/arm/configs/pxa168_defconfig +3 -1
@@ -50,7 +50,9 @@ CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_PREEMPT is not set
arch/arm/configs/pxa3xx_defconfig +3 -1
@@ -109,7 +109,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y CONFIG_NLS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_SHIRQ=y
arch/arm/configs/pxa910_defconfig +3 -1
@@ -58,7 +58,9 @@ CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_PREEMPT is not set
arch/arm/configs/pxa_defconfig +3 -1
@@ -727,7 +727,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_FRAME_WARN=0
arch/arm/configs/qcom_defconfig +3 -1
@@ -231,7 +231,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/raumfeld_defconfig +3 -1
@@ -187,7 +187,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_USER=y
arch/arm/configs/shmobile_defconfig +3 -1
@@ -218,7 +218,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # 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 +3 -1
@@ -155,7 +155,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y
arch/arm/configs/stm32_defconfig +3 -1
@@ -74,7 +74,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set
arch/arm/configs/sunxi_defconfig +3 -1
@@ -151,6 +151,8 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_CRYPTO_DEV_SUN4I_SS=y
arch/arm/configs/tango4_defconfig +3 -1
@@ -90,5 +90,7 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_CRYPTO_ECHAINIV is not set
arch/arm/configs/tegra_defconfig +3 -1
@@ -286,7 +286,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/u300_defconfig +3 -1
@@ -62,7 +62,9 @@ CONFIG_VFAT_FS=y CONFIG_TMPFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/u8500_defconfig +3 -1
@@ -127,7 +127,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y
arch/arm/configs/vt8500_v6_v7_defconfig +3 -1
@@ -84,6 +84,8 @@ CONFIG_NFS_FS=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_KERNEL=y CONFIG_LOCKUP_DETECTOR=y
arch/arm/configs/xcep_defconfig +3 -1
@@ -79,7 +79,9 @@ CONFIG_NFS_V3=y CONFIG_NLS=m CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_UTF8=m -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set
arch/arm/configs/zx_defconfig +3 -1
@@ -95,7 +95,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_INFO=y
arch/arm64/configs/defconfig +3 -1
@@ -548,7 +548,9 @@ CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y
arch/m68k/configs/amcore_defconfig +3 -1
@@ -107,7 +107,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # 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 +3 -1
@@ -105,7 +105,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y
arch/mips/configs/bcm47xx_defconfig +3 -1
@@ -74,7 +74,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y CONFIG_STRIP_ASM_SYMS=y
arch/mips/configs/bmips_be_defconfig +3 -1
@@ -32,7 +32,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_BRCMSTB_GISB_ARB=y CONFIG_MTD=y CONFIG_MTD_BCM63XX_PARTS=y
arch/mips/configs/bmips_stb_defconfig +3 -1
@@ -85,7 +85,9 @@ CONFIG_CIFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_CMDLINE_BOOL=y
arch/mips/configs/ci20_defconfig +3 -1
@@ -147,7 +147,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y
arch/mips/configs/generic_defconfig +3 -1
@@ -83,7 +83,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y CONFIG_DEBUG_FS=y
arch/mips/configs/lemote2f_defconfig +3 -1
@@ -394,7 +394,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_FRAME_WARN=1024 CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y
arch/mips/configs/loongson3_defconfig +3 -1
@@ -327,7 +327,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_FRAME_WARN=1024 CONFIG_STRIP_ASM_SYMS=y CONFIG_MAGIC_SYSRQ=y
arch/mips/configs/nlm_xlp_defconfig +3 -1
@@ -549,7 +549,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=1024
arch/mips/configs/nlm_xlr_defconfig +3 -1
@@ -506,7 +506,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_UNUSED_SYMBOLS=y
arch/mips/configs/pistachio_defconfig +3 -1
@@ -297,7 +297,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0
arch/mips/configs/qi_lb60_defconfig +3 -1
@@ -170,7 +170,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_STRIP_ASM_SYMS=y CONFIG_READABLE_ASM=y
arch/mips/configs/rt305x_defconfig +3 -1
@@ -143,7 +143,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_MAGIC_SYSRQ=y CONFIG_STRIP_ASM_SYMS=y
arch/mips/configs/xway_defconfig +3 -1
@@ -151,7 +151,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y
arch/parisc/configs/generic-64bit_defconfig +3 -1
@@ -272,7 +272,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_STRIP_ASM_SYMS=y CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_FS=y
arch/powerpc/configs/40x/virtex_defconfig +3 -1
@@ -71,7 +71,9 @@ CONFIG_CRC_CCITT=y CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_CRYPTO_ANSI_CPRNG is not set
arch/powerpc/configs/44x/fsp2_defconfig +3 -1
@@ -111,7 +111,9 @@ CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y CONFIG_NLS_DEFAULT="n" CONFIG_XZ_DEC=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=3 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y
arch/powerpc/configs/44x/virtex5_defconfig +3 -1
@@ -70,7 +70,9 @@ CONFIG_CRC_CCITT=y CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_CRYPTO_ANSI_CPRNG is not set
arch/powerpc/configs/44x/warp_defconfig +3 -1
@@ -90,7 +90,9 @@ CONFIG_NLS_ISO8859_15=y CONFIG_NLS_UTF8=y CONFIG_CRC_CCITT=y CONFIG_CRC_T10DIF=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y
arch/powerpc/configs/52xx/cm5200_defconfig +3 -1
@@ -72,7 +72,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_CRYPTO_ECB=y
arch/powerpc/configs/52xx/lite5200b_defconfig +3 -1
@@ -58,7 +58,9 @@ CONFIG_TMPFS=y CONFIG_NFS_FS=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set
arch/powerpc/configs/52xx/motionpro_defconfig +3 -1
@@ -84,7 +84,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set
arch/powerpc/configs/52xx/tqm5200_defconfig +3 -1
@@ -86,7 +86,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set
arch/powerpc/configs/gamecube_defconfig +3 -1
@@ -89,7 +89,9 @@ CONFIG_CIFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_CRC_CCITT=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_LATENCYTOP=y
arch/powerpc/configs/mpc5200_defconfig +3 -1
@@ -126,7 +126,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y CONFIG_DETECT_HUNG_TASK=y
arch/powerpc/configs/pasemi_defconfig +3 -1
@@ -166,7 +166,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y
arch/powerpc/configs/wii_defconfig +3 -1
@@ -110,7 +110,9 @@ CONFIG_CIFS=m CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_CRC_CCITT=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y
arch/s390/configs/default_defconfig +3 -1
@@ -564,7 +564,9 @@ CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=m CONFIG_DLM=m -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_DWARF4=y
arch/s390/configs/gcov_defconfig +3 -1
@@ -558,7 +558,9 @@ CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=m CONFIG_DLM=m -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_DWARF4=y CONFIG_GDB_SCRIPTS=y
arch/s390/configs/performance_defconfig +3 -1
@@ -556,7 +556,9 @@ CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=m CONFIG_DLM=m -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_DWARF4=y CONFIG_GDB_SCRIPTS=y
arch/s390/configs/zfcpdump_defconfig +3 -1
@@ -57,7 +57,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y CONFIG_PANIC_ON_OOPS=y
arch/sh/configs/edosk7760_defconfig +3 -1
@@ -109,7 +109,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_MAGIC_SYSRQ=y CONFIG_UNUSED_SYMBOLS=y
arch/sh/configs/sdk7786_defconfig +3 -1
@@ -215,7 +215,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_MAGIC_SYSRQ=y
arch/sh/configs/se7722_defconfig +3 -1
@@ -53,7 +53,9 @@ CONFIG_EXT3_FS=y CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_HUGETLBFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y
arch/sh/configs/sh7785lcr_32bit_defconfig +3 -1
@@ -144,7 +144,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y
arch/sh/configs/urquell_defconfig +3 -1
@@ -142,7 +142,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_DEBUG_FS=y
arch/sparc/configs/sparc64_defconfig +3 -1
@@ -202,7 +202,9 @@ CONFIG_EXT3_FS_SECURITY=y CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_HUGETLBFS=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y
arch/x86/configs/i386_defconfig +3 -1
@@ -284,7 +284,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y
arch/x86/configs/x86_64_defconfig +7 -1
@@ -283,7 +283,13 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set
arch/xtensa/configs/audio_kc705_defconfig +3 -1
@@ -123,7 +123,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y
arch/xtensa/configs/cadence_csp_defconfig +3 -1
@@ -102,7 +102,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y
arch/xtensa/configs/generic_kc705_defconfig +3 -1
@@ -110,7 +110,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y
arch/xtensa/configs/nommu_kc705_defconfig +3 -1
@@ -107,7 +107,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y # CONFIG_FRAME_POINTER is not set
arch/xtensa/configs/smp_lx200_defconfig +3 -1
@@ -114,7 +114,9 @@ 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_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y
include/linux/timekeeping.h +1 -0
@@ -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_log_ts (u64 *offset_real);/* * Timespec interfaces utilizing the ktime based ones
kernel/printk/printk.c +93 -4
133 lines not on this page · raw message
kernel/time/timekeeping.c +14 -0
@@ -25,6 +25,7 @@#include <linux/stop_machine.h> #include <linux/pvclock_gtod.h> #include <linux/compiler.h> +#include <linux/sched/clock.h> #include "tick-internal.h" #include "ntp_internal.h"
@@ -45,6 +46,7 @@static DEFINE_RAW_SPINLOCK (timekeeper_lock);static struct timekeeper shadow_timekeeper; +static int timekeeping_active;/** * struct tk_fast - NMI safe timekeeper
@@ -477,6 +479,16 @@ u64 notrace ktime_get_boot_fast_ns(void) }EXPORT_SYMBOL_GPL (ktime_get_boot_fast_ns); +u64 ktime_get_log_ts (u64 *offset_real) +{ + *offset_real =ktime_to_ns (tk_core.timekeeper.offs_real); + +if (timekeeping_active) +return ktime_get_mono_fast_ns (); +else +return local_clock (); +} +/* Suspend-time cycles value for halted fast timekeeper. */ static u64 cycles_at_suspend;
@@ -1530,6 +1542,8 @@ void __init timekeeping_init(void)write_seqcount_end (&tk_core.seq);raw_spin_unlock_irqrestore (&timekeeper_lock, flags); + + timekeeping_active =1 ; }/* time in seconds when suspend began for persistent clock */
lib/Kconfig.debug +34 -2
@@ -1,8 +1,39 @@ menu "printk and dmesg options" +choice + prompt "printk default clock" + 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_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 + 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 time stamp information on printks" depends on PRINTK + default 0 if PRINTK_TIME_DISABLE + default 1 if PRINTK_TIME_LOCAL + default 2 if PRINTK_TIME_MONO + default 3 if PRINTK_TIME_REAL help Selecting this option causes time stamps of the printk() messages to be added to the output of the syslog() system
@@ -13,7 +44,8 @@ config PRINTK_TIME be included, not that the timestamp is recorded. The behavior is also controlled by the kernel command line - parameter printk.time=1. See Documentation/admin-guide/kernel-parameters.rst + parameter printk.time=[0-3]. See + Documentation/admin-guide/kernel-parameters.rst config CONSOLE_LOGLEVEL_DEFAULT int "Default console loglevel (1-15)"
tools/testing/selftests/rcutorture/configs/lock/CFcommon +3 -1
@@ -1,2 +1,4 @@ CONFIG_LOCK_TORTURE_TEST=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1
tools/testing/selftests/rcutorture/configs/rcu/CFcommon +3 -1
@@ -1,2 +1,4 @@ CONFIG_RCU_TORTURE_TEST=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1
tools/testing/selftests/rcutorture/configs/rcuperf/CFcommon +3 -1
@@ -1,2 +1,4 @@ CONFIG_RCU_PERF_TEST=y -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1
Signature · 1 line
1.8.5.5
Quoted 9 lines · Prarit Bhargava
arch/x86/configs/x86_64_defconfig +0
-1@@ -283,7 +283,13 @@ CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_PRINTK_TIME=y
arch/x86/configs/x86_64_defconfig CONFIG_NLS_CODEPAGE_437=y · line 295
Quoted 10 lines
arch/x86/configs/x86_64_defconfig +7
-0+# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +# CONFIG_PRINTK_TIME_DISABLE is not set +CONFIG_PRINTK_TIME_LOCAL=Y +CONFIG_PRINTK_TIME=1 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set
You've gone trigger paste happy here.
Quoted 23 lines
kernel/printk/printk.c +3
-1@@ -576,6 +576,8 @@ 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_get_ts (void ); +/* 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 +626,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 static inline void boot_delay_msec(int level) · line 1208
Quoted 7 lines
kernel/printk/printk.c +2
-2@@ -1202,8 +1204,89 @@ static inline void boot_delay_msec(int level) }#endif -static bool printk_time =IS_ENABLED (CONFIG_PRINTK_TIME ); -module_param_named (time, printk_time, bool,S_IRUGO |S_IWUSR ); +static int printk_time =CONFIG_PRINTK_TIME ; +static int printk_time_setting;/* initial setting */
If you use an enum for printk_time_setting you can then kdoc'ify each setting and also match the values names on kconfig. With this you can move the big comment below onto the kdoc for the enum. You can then nicely expand on the documentation to explain what compromises were made for providing time if timekeeping_init() was not called yet.
/**
* enum printk_time_setting - description
* @PRINTK_TIME_DISABLE: description
* @PRINTK_TIME_LOCAL: description
* @PRINTK_TIME_MONO: description
* @PRINTK_TIME_REAL: description - you can go into the 32-bit issue here */
enum printk_time_setting {
PRINTK_TIME_DISABLE = 0,
PRINTK_TIME_LOCAL = 1,
PRINTK_TIME_MONO = 2,
PRINTK_TIME_REAL = 3,
};
And since you are kdoc'ifying consider later adding proper rst format docs for printk and then pegging this kdoc entry into it. Unfortunately I only see Documentation/printk-formats.txt and Documentation/x86/earlyprintk.txt, is that all we have on printk docs?
Quoted 43 lines
kernel/printk/printk.c +43
-0+ +/* +* 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 +* offset is read without the protection of a sequence lock in the call to +* ktime_get_log_ts() in printk_get_ts() below. +*/ +static int printk_time_set (const char *val,const struct kernel_param *kp) +{ +char *param =strstrip ((char *)val); +int _printk_time; + +if (strlen (param) !=1 ) +return -EINVAL ; + +switch (param[0 ]) { +case '0' : +case 'n' : +case 'N' : + _printk_time =0 ;/* none/disabled */ +break ; +case '1' : +case 'y' : +case 'Y' : + _printk_time =1 ;/* local unadjusted HW clock */ +break ; +case '2' : + _printk_time =2 ;/* monotonic */ +break ; +case '3' : + _printk_time =3 ;/* realtime */ +break ; +default : +pr_warn ("printk: invalid timestamp value\n" ); +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_setting ==0 ) {
kernel/printk/printk.c static inline void boot_delay_msec(int level) · line 1261
Quoted 10 lines
kernel/printk/printk.c +10
-0+ printk_time_setting = _printk_time; + }else if ((printk_time_setting != _printk_time) && + (_printk_time !=0 )) { +pr_warn ("printk: timestamp can only be set to 0 or %d " , + printk_time_setting); +return -EINVAL ; + } + + printk_time = _printk_time; +pr_info ("printk: timestamp set to %d." , printk_time);
Then here you can also add a respective conversion for describing what the enum was, "%s (%d)", printk_time_desc(printk_time), printk_time) which will make it easier to understand what was done at init in the log.
Luis
On 08/01/2017 12:29 PM, Luis R. Rodriguez wrote:
<snip>
Thanks for the previous comments re: enum & kdoc'ifying. I will apply them to v3.
Quoted 5 lines
And since you are kdoc'ifying consider later adding proper rst format docs for printk and then pegging this kdoc entry into it. Unfortunately I only see
Documentation/printk-formats.txtandDocumentation/x86/earlyprintk.txt, is that all we have on printk docs?
Yes, that's it AFAICT.
P.
Quoted 22 lines · 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 timestampes by adding options for no timestamp, the local hardware clock, the monotonic 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/timeso 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 offset is read without the protection of a sequence lock in the call to
ktime_get_log_ts()inprintk_get_ts().v2: Use peterz's suggested
Kconfigoptions. Merge patchset together. Fix i386 !CONFIG_PRINTK builds.Signed-off-by Prarit Bhargava <[email protected]>
...
Quoted 21 lines
lib/Kconfig.debug +14
-0@@ -1,8 +1,39 @@ menu "printk and dmesg options" +choice + prompt "printk default clock" + 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_MONO
lib/Kconfig.debug line 26
Quoted 10 lines
lib/Kconfig.debug +10
-0+ 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 + bool "CLOCK_REALTIME" + help + Selecting this option causes the time stamps of printk() to be + stamped with the adjusted realtime clock.
Its been asked already, but I've not yet seen an answer.
Is there a reason your not also adding PRINTK_TIME_BOOT here (which to me would be more generally useful then REAL or MONO)?
thanks
-john
Quoted 49 lines · John Stultz
Quoted 22 lines · 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 timestampes by adding options for no timestamp, the local hardware clock, the monotonic 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/timeso 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 offset is read without the protection of a sequence lock in the call to
ktime_get_log_ts()inprintk_get_ts().v2: Use peterz's suggested
Kconfigoptions. Merge patchset together. Fix i386 !CONFIG_PRINTK builds.Signed-off-by Prarit Bhargava <[email protected]>...
Quoted 25 lines
lib/Kconfig.debug +18
-0@@ -1,8 +1,39 @@ menu "printk and dmesg options" +choice + prompt "printk default clock" + 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_MONO + bool "CLOCK_MONOTONIC" + help + Selecting this option causes the time stamps of printk() to be + stamped with the adjusted monotonic clock.
Quoted 8 lines
lib/Kconfig.debug line 26
Quoted 6 lines
lib/Kconfig.debug +6
-0+ + config PRINTK_TIME_REAL + bool "CLOCK_REALTIME" + help + Selecting this option causes the time stamps of printk() to be + stamped with the adjusted realtime clock.Its been asked already, but I've not yet seen an answer.
Sorry for missing this.
Quoted 2 lines
Is there a reason your not also adding
PRINTK_TIME_BOOThere (which to me would be more generally useful then REAL or MONO)?
REAL has been useful to me in debug cases where events on the system were timed to the wall clock (ex cron job running at 3AM). I hadn't really thought much about using BOOT TBH because MONO seemed to work just fine.
Mark Salyzyn, did you want BOOT or MONO?
P.
Quoted 11 lines · Prarit Bhargava
Quoted 2 lines · John Stultz
Is there a reason your not also adding
PRINTK_TIME_BOOThere (which to me would be more generally useful then REAL or MONO)?REAL has been useful to me in debug cases where events on the system were timed to the wall clock (ex cron job running at 3AM). I hadn't really thought much about using BOOT TBH because MONO seemed to work just fine.
Mark Salyzyn, did you want BOOT or MONO?
I know Mark has specific formatting needs, so I'm not going to speak for him, but BOOT is actually a nice improvement over MONO, since it includes suspend time, and avoids inconsistencies due to userspace tweaking the time, which REALTIME has. So for debugging suspend related issues and being able to understand how much time a system has spent in suspend vs not it would be quite useful.
thanks
-john
Quoted 5 lines · Prarit Bhargava
Quoted 1 line · John Stultz
Its been asked already, but I've not yet seen an answer.
Sorry for missing this.
Quoted 8 lines
Quoted 2 lines
Is there a reason your not also adding
PRINTK_TIME_BOOThere (which to me would be more generally useful then REAL or MONO)?REAL has been useful to me in debug cases where events on the system were timed to the wall clock (ex cron job running at 3AM). I hadn't really thought much about using BOOT TBH because MONO seemed to work just fine.
Mark Salyzyn, did you want BOOT or MONO?
We really want both.
Thanks,
tglx
Quoted 62 lines · Prarit Bhargava
Quoted 48 lines · John Stultz
Quoted 22 lines · 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 timestampes by adding options for no timestamp, the local hardware clock, the monotonic 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/timeso 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 offset is read without the protection of a sequence lock in the call to
ktime_get_log_ts()inprintk_get_ts().v2: Use peterz's suggested
Kconfigoptions. Merge patchset together. Fix i386 !CONFIG_PRINTK builds.Signed-off-by Prarit Bhargava <[email protected]>...
Quoted 24 lines
lib/Kconfig.debug +17
-0@@ -1,8 +1,39 @@ menu "printk and dmesg options" +choice + prompt "printk default clock" + 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_MONO + bool "CLOCK_MONOTONIC" + help + Selecting this option causes the time stamps of printk() to beQuoted 8 lines
lib/Kconfig.debug line 26
Quoted 7 lines
lib/Kconfig.debug +7
-0+ stamped with the adjusted monotonic clock. + + config PRINTK_TIME_REAL + bool "CLOCK_REALTIME" + help + Selecting this option causes the time stamps of printk() to be + stamped with the adjusted realtime clock.Its been asked already, but I've not yet seen an answer.
Sorry for missing this.
Quoted 2 lines
Is there a reason your not also adding
PRINTK_TIME_BOOThere (which to me would be more generally useful then REAL or MONO)?
Quoted 7 lines
REAL has been useful to me in debug cases where events on the system were timed to the wall clock (ex cron job running at 3AM). I hadn't really thought much about using BOOT TBH because MONO seemed to work just fine.
Mark Salyzyn, did you want BOOT or MONO?
P.
You must IMHO include MONO (default when on?), BOOT and REAL if you are offering the ability for the kernel to switch time base.
[TL;DR]
I had a partner request for Boottime (for kernel and userspace) for those that are providing products that focus more on sensors. We said no, case closed. This option in your patch would reopen that possibility.
We have too many use cases, too many partners all pulling in different directions. We have met with resistance moving userspace to monotonic to match kernel on phones, preference remains realtime for user space, and monotonic for kernel. Yet watch partners preferred moving all to monotonic time, but they required realtime (or could do with boottime) dual-print to monitor battery and power. We only wanted to print realtime (or monotonic depending on case) during time disruptions (suspend/resume mainly). With your proposal we may have less resistance to realtime for kernel and userspace, but we will have partners that insist on using monotonic none-the-less because we do not have control, so we _must_ provide the dual-time option for them.
The dual-time in disruptive cases depends a _lot_ on what happens with this patch. I am expecting mine to be very sensitive to the config settings (ie: if both select realtime, then no dual-time is printed), so my proposal is on hiatus until this is resolved.
-- Mark