Messages in this thread | | | Date | Fri, 12 Jul 2013 13:13:15 -0700 | From | Dave Hansen <> | Subject | Re: Yet more softlockups. |
| |
I added the WARN_ONCE() the first time we enable a perf event: The watchdog code looks to use perf these days:
> [ 1.003260] ------------[ cut here ]------------ > [ 1.007943] WARNING: at /home/davehans/linux.git/arch/x86/kernel/cpu/perf_event.c:471 x86_pmu_event_init+0x249/0x430() > [ 1.018906] Modules linked in: > [ 1.021999] CPU: 0 PID: 11 Comm: watchdog/0 Not tainted 3.10.0-05973-gd2b4a64-dirty #190 > [ 1.030313] Hardware name: FUJITSU-SV PRIMEQUEST 1800E2/SB, BIOS PRIMEQUEST 1000 Series BIOS Version 1.24 09/14/2011 > [ 1.041093] ffffffff819dc0b8 ffff881fd33e3c98 ffffffff816270c5 0000000000001a9d > [ 1.048601] 0000000000000009 ffff881fd33e3cd8 ffffffff81090f50 ffff881fd3248048 > [ 1.056112] ffff881fff26a800 ffff881fff26a800 0000000000000000 0000000000000000 > [ 1.063621] Call Trace: > [ 1.066106] [<ffffffff816270c5>] dump_stack+0x55/0x76 > [ 1.071313] [<ffffffff81090f50>] warn_slowpath_common+0x70/0xa0 > [ 1.077410] [<ffffffff81090f9a>] warn_slowpath_null+0x1a/0x20 > [ 1.083330] [<ffffffff81060cb9>] x86_pmu_event_init+0x249/0x430 > [ 1.089427] [<ffffffff81144f0f>] perf_init_event+0xef/0x130 > [ 1.095170] [<ffffffff811452a8>] perf_event_alloc+0x358/0x4a0 > [ 1.101091] [<ffffffff810ca27d>] ? set_next_entity+0x3d/0x80 > [ 1.106924] [<ffffffff811081a0>] ? touch_nmi_watchdog+0x80/0x80 > [ 1.113018] [<ffffffff8114570e>] perf_event_create_kernel_counter+0x2e/0xe0 > [ 1.120176] [<ffffffff8110835d>] watchdog_enable+0xfd/0x1e0 > [ 1.125919] [<ffffffff810bf8e3>] smpboot_thread_fn+0xe3/0x1f0 > [ 1.131839] [<ffffffff810bf800>] ? smpboot_unregister_percpu_thread+0x50/0x50 > [ 1.139250] [<ffffffff810b7d10>] kthread+0xc0/0xd0 > [ 1.144200] [<ffffffff810b7c50>] ? flush_kthread_worker+0xb0/0xb0 > [ 1.150474] [<ffffffff8163735c>] ret_from_fork+0x7c/0xb0 > [ 1.155950] [<ffffffff810b7c50>] ? flush_kthread_worker+0xb0/0xb0 > [ 1.162227] ---[ end trace 32c04e859824e00d ]---
static int watchdog_nmi_enable(unsigned int cpu) { ... /* Try to register using hardware perf events */ event = perf_event_create_kernel_counter(wd_attr, cpu, NULL, ...
That at least solves the boot-time mystery.
| |