[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150416033736.GC31571@wfg-t540p.sh.intel.com>
Date: Thu, 16 Apr 2015 11:37:36 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: fengguang.wu@...el.com, LKP <lkp@...org>,
linux-kernel@...r.kernel.org
Subject: [hrtimer] WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:318
clockevents_program_event()
Hi Thomas,
0day kernel testing robot got the below dmesg and the first bad commit is
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/wip
commit 8ca99a56579963a0d0a7e147e72600cca27dacb5
Author: Thomas Gleixner <tglx@...utronix.de>
AuthorDate: Fri Apr 10 14:24:03 2015 +0200
Commit: Thomas Gleixner <tglx@...utronix.de>
CommitDate: Tue Apr 14 21:01:00 2015 +0200
hrtimer: Get rid of hrtimer softirq
hrtimer softirq is a leftover from the initial implementation and
serves only the purpose to handle the enqueueing of already expired
timers in the high resolution timer mode. We discussed whether we
change the return value and force all start sites to handle that the
timer is already expired, but that would be a Herculean task and I'm
not sure whether its a good idea to enforce that handling on
everyone.
A simpler solution is to enforce a timer interrupt instead of raising
and scheduling a softirq. Just use the existing infrastructure to do
so and remove all the softirq leftovers.
Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
+-------------------------------------------------------------------+------------+------------+------------+
| | 9824b5ae1a | 8ca99a5657 | 87599e6869 |
+-------------------------------------------------------------------+------------+------------+------------+
| boot_successes | 165 | 19 | 7 |
| boot_failures | 0 | 18 | 9 |
| WARNING:at_kernel/time/clockevents.c:#clockevents_program_event() | 0 | 16 | 9 |
| BUG:kernel_boot_hang | 0 | 18 | 9 |
| backtrace:event_create_dir | 0 | 14 | 8 |
| backtrace:event_trace_init | 0 | 14 | 8 |
| backtrace:kernel_init_freeable | 0 | 14 | 9 |
| backtrace:cpu_startup_entry | 0 | 14 | 9 |
| backtrace:apic_timer_interrupt | 0 | 1 | 2 |
| backtrace:__raw_spin_lock_init | 0 | 1 | 1 |
| backtrace:address_space_init_once | 0 | 1 | |
| backtrace:inode_init_once | 0 | 1 | |
| backtrace:init_once | 0 | 1 | |
| backtrace:inode_init_always | 0 | 0 | 2 |
| backtrace:register_stat_tracer | 0 | 0 | 1 |
| backtrace:ftrace_init_debugfs | 0 | 0 | 1 |
| backtrace:debug_mutex_init | 0 | 0 | 1 |
| backtrace:__mutex_init | 0 | 0 | 1 |
+-------------------------------------------------------------------+------------+------------+------------+
[ 0.741534] hpet0: 3 comparators, 64-bit 100.000000 MHz counter
[ 0.746043] Switched to clocksource kvm-clock
[ 0.746043] ------------[ cut here ]------------
[ 0.746043] WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:318 clockevents_program_event+0xf2/0x100()
[ 0.746397] ------------[ cut here ]------------
[ 0.746397] WARNING: CPU: 1 PID: 1 at kernel/time/clockevents.c:318 clockevents_program_event+0xf2/0x100()
[ 0.746397] Modules linked in:
[ 0.746397] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.0.0-02371-g8ca99a5 #6
[ 0.746397] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
[ 0.746397] ffffffff8185f0f0 ffff880011203eb8 ffffffff815de990 0000000000000000
[ 0.746397] 0000000000000000 ffff880011203ef8 ffffffff8109979a ffff880011203ef8
[ 0.746397] 80000000003d08ff ffff88001120be40 0000000000000001 0000000000000001
[ 0.746397] Call Trace:
[ 0.746397] <IRQ> [<ffffffff815de990>] dump_stack+0x4c/0x65
[ 0.746397] [<ffffffff8109979a>] warn_slowpath_common+0x8a/0xc0
[ 0.746397] [<ffffffff8109988a>] warn_slowpath_null+0x1a/0x20
[ 0.746397] [<ffffffff8111cb22>] clockevents_program_event+0xf2/0x100
[ 0.746397] [<ffffffff8111d33c>] tick_handle_periodic+0x5c/0x70
[ 0.746397] [<ffffffff8103502c>] local_apic_timer_interrupt+0x3c/0x60
[ 0.746397] [<ffffffff81035251>] smp_apic_timer_interrupt+0x41/0x60
[ 0.746397] [<ffffffff815e7673>] apic_timer_interrupt+0x73/0x80
[ 0.746397] <EOI> [<ffffffff810ed440>] ? lock_acquire+0xf0/0x2b0
[ 0.746397] [<ffffffff811e6f66>] ? d_instantiate+0x36/0x80
[ 0.746397] [<ffffffff815e598d>] _raw_spin_lock+0x3d/0x80
[ 0.746397] [<ffffffff811e6f66>] ? d_instantiate+0x36/0x80
[ 0.746397] [<ffffffff811e6f66>] d_instantiate+0x36/0x80
[ 0.746397] [<ffffffff8126eb42>] debugfs_create_file+0x82/0xf0
[ 0.746397] [<ffffffff811510c2>] trace_create_file+0x12/0x40
[ 0.746397] [<ffffffff81159ec2>] event_create_dir+0x192/0x500
[ 0.746397] [<ffffffff81bc787a>] ? event_trace_init+0x176/0x211
[ 0.746397] [<ffffffff81bc7897>] event_trace_init+0x193/0x211
[ 0.746397] [<ffffffff81bc7704>] ? event_trace_enable_again+0x26/0x26
[ 0.746397] [<ffffffff810002e0>] do_one_initcall+0xa0/0x200
[ 0.746397] [<ffffffff81bac074>] kernel_init_freeable+0x11a/0x1a2
[ 0.746397] [<ffffffff815d8730>] ? rest_init+0x140/0x140
[ 0.746397] [<ffffffff815d873e>] kernel_init+0xe/0xf0
[ 0.746397] [<ffffffff815e6c52>] ret_from_fork+0x42/0x70
[ 0.746397] [<ffffffff815d8730>] ? rest_init+0x140/0x140
[ 0.746397] ---[ end trace f56a4b062a4906e6 ]---
[ 0.749419] Modules linked in:
git bisect start 87599e68698af240682989f795acba486f0e4ad7 22dd0fc0154b9934eef776f4559f3c07964524b4 --
git bisect bad 340fda3d5c95ec45f637f6e662859b8ac89ab47d # 04:13 1- 1 tick: sched: Restructure code
git bisect good fcdb31076dc272b5e51f9ecf92d170efe3b38469 # 05:30 35+ 0 hrtimer: Use a bits for various boolean indicators
git bisect good 949943b012e09a6f1a90d0af5a0cbdcc892f7d44 # 05:50 35+ 0 hrtimer: Make use of timerqueue_add/del return values
git bisect bad 8ca99a56579963a0d0a7e147e72600cca27dacb5 # 06:10 5- 3 hrtimer: Get rid of hrtimer softirq
git bisect good 9824b5ae1a31fde46ab4b710b3ba8cf159df6a8a # 06:41 55+ 0 hrtimer: Keep pointer to first timer and simplify __remove_hrtimer()
# first bad commit: [8ca99a56579963a0d0a7e147e72600cca27dacb5] hrtimer: Get rid of hrtimer softirq
git bisect good 9824b5ae1a31fde46ab4b710b3ba8cf159df6a8a # 07:20 165+ 0 hrtimer: Keep pointer to first timer and simplify __remove_hrtimer()
# extra tests with DEBUG_INFO
git bisect bad 8ca99a56579963a0d0a7e147e72600cca27dacb5 # 07:33 9- 10 hrtimer: Get rid of hrtimer softirq
# extra tests on HEAD of tip/timers/wip
git bisect bad 87599e68698af240682989f795acba486f0e4ad7 # 07:33 0- 9 timer: Put usleep_range into the __sched section
# extra tests on tree/branch tip/timers/wip
git bisect bad f772ace2267638b42e2dad807717fb7ac94d0eb1 # 07:44 15- 6 timer: Put usleep_range into the __sched section
# extra tests with first bad commit reverted
# extra tests on tree/branch tip/master
git bisect good 7b79ff96b6b3b13f4080233cb7b8592b00fd078c # 19:12 165+ 1 Merge branch 'perf/urgent'
# extra tests on tree/branch linus/master
git bisect good bb0fd7ab0986105765d11baa82e619c618a235aa # 20:45 165+ 1 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
# extra tests on tree/branch next/master
git bisect good fb5e230888b2b734a061e853b3729acdaae7a537 # 22:30 165+ 1 Add linux-next specific files for 20150415
This script may reproduce the error.
----------------------------------------------------------------------------
#!/bin/bash
kernel=$1
kvm=(
qemu-system-x86_64
-enable-kvm
-cpu kvm64
-kernel $kernel
-m 300
-smp 2
-device e1000,netdev=net0
-netdev user,id=net0
-boot order=nc
-no-reboot
-watchdog i6300esb
-rtc base=localtime
-serial stdio
-display none
-monitor null
)
append=(
hung_task_panic=1
earlyprintk=ttyS0,115200
rd.udev.log-priority=err
systemd.log_target=journal
systemd.log_level=warning
debug
apic=debug
sysrq_always_enabled
rcupdate.rcu_cpu_stall_timeout=100
panic=-1
softlockup_panic=1
nmi_watchdog=panic
oops=panic
load_ramdisk=2
prompt_ramdisk=0
console=ttyS0,115200
console=tty0
vga=normal
root=/dev/ram0
rw
drbd.minor_count=8
)
"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------
Thanks,
Fengguang
View attachment "dmesg-quantal-kbuild-2:20150414222335:x86_64-randconfig-iv0-04150142:4.0.0-02371-g8ca99a5:6" of type "text/plain" (28701 bytes)
View attachment "config-4.0.0-02371-g8ca99a5" of type "text/plain" (86864 bytes)
Powered by blists - more mailing lists