Greetings, FYI, the below debug patch triggers a warning on cpuidle code path git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master commit 3d693a5127e79e79da7c34dc0c776bc620697ce5 Author: Andrew Morton AuthorDate: Mon Mar 17 11:23:56 2014 +1100 Commit: Stephen Rothwell CommitDate: Mon Mar 17 11:23:56 2014 +1100 mm-vmalloc-avoid-soft-lockup-warnings-when-vunmaping-large-ranges-fix add a might_sleep() to catch atomic callers more promptly Cc: David Vrabel Cc: Dietmar Hahn Signed-off-by: Andrew Morton [ 26.028136] BUG: sleeping function called from invalid context at /c/kernel-tests/src/lkp/mm/vmalloc.c:74 [ 26.040078] in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0 [ 26.040080] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.0-rc6-next-20140317 #1 [ 26.040081] Hardware name: Intel Corporation S5520UR/S5520UR, BIOS S5500.86B.01.00.0050.050620101605 05/06/2010 [ 26.040083] 0000000000000000 ffff8801e9c06d00 ffffffff81a3ae8a ffffc90001870000 [ 26.040084] ffff8801e9c06d10 ffffffff81101256 ffff8801e9c06d88 ffffffff811b1540 [ 26.040089] ffffc90001870fff ffffc90001870fff 0000000000000001 000037008ddb0000 [ 26.040089] Call Trace: [ 26.040094] [] dump_stack+0x4d/0x66 [ 26.040098] [] __might_sleep+0x10a/0x10c [ 26.040101] [] vunmap_page_range+0x143/0x2b2 [ 26.040102] [] unmap_kernel_range_noflush+0x11/0x13 [ 26.040105] [] ghes_copy_tofrom_phys+0x11f/0x189 [ 26.040106] [] ghes_read_estatus+0x88/0x134 [ 26.040108] [] ghes_notify_nmi+0x53/0x1e7 [ 26.040110] [] nmi_handle.isra.4+0x68/0x113 [ 26.040112] [] ? perf_ibs_nmi_handler+0x3d/0x3d [ 26.040113] [] do_nmi+0xb0/0x2de [ 26.040114] [] end_repeat_nmi+0x1e/0x2e [ 26.040118] [] ? native_write_msr_safe+0xa/0xe [ 26.040119] [] ? native_write_msr_safe+0xa/0xe [ 26.040120] [] ? native_write_msr_safe+0xa/0xe [ 26.040124] <> [] intel_pmu_enable_all+0x4c/0x9b [ 26.040125] [] intel_pmu_nhm_enable_all+0x21/0x152 [ 26.040127] [] x86_pmu_enable+0x134/0x273 [ 26.040129] [] perf_pmu_enable+0x22/0x24 [ 26.040130] [] x86_pmu_commit_txn+0x7b/0x98 [ 26.040132] [] ? __wake_up+0x44/0x4b [ 26.040135] [] ? tty_wakeup+0x5b/0x60 [ 26.040137] [] ? uart_write_wakeup+0x20/0x22 [ 26.040139] [] ? serial8250_tx_chars+0xd9/0x142 [ 26.040140] [] ? _raw_spin_unlock_irqrestore+0x25/0x41 [ 26.040141] [] ? _raw_spin_lock_irqsave+0x25/0x56 [ 26.040142] [] ? _raw_spin_unlock_irqrestore+0x25/0x41 [ 26.040144] [] ? hrtimer_get_next_event+0x83/0x98 [ 26.040145] [] ? event_sched_in+0x133/0x143 [ 26.040146] [] group_sched_in+0x93/0x13c [ 26.040149] [] ? native_sched_clock+0x31/0x93 [ 26.040150] [] __perf_event_enable+0x1ad/0x1ea [ 26.040151] [] remote_function+0x17/0x40 [ 26.040154] [] generic_smp_call_function_single_interrupt+0x74/0xdb [ 26.040156] [] smp_call_function_single_interrupt+0x27/0x36 [ 26.040158] [] call_function_single_interrupt+0x72/0x80 [ 26.040161] [] ? cpuidle_enter_state+0x59/0xb5 [ 26.040162] [] ? cpuidle_enter_state+0x55/0xb5 [ 26.040164] [] cpuidle_enter+0x17/0x19 [ 26.040165] [] cpu_startup_entry+0x227/0x3b8 [ 26.040167] [] rest_init+0x87/0x89 [ 26.040169] [] start_kernel+0x401/0x40c [ 26.040170] [] ? repair_env_string+0x58/0x58 [ 26.040171] [] ? early_idt_handlers+0x120/0x120 [ 26.040173] [] x86_64_start_reservations+0x2a/0x2c [ 26.040174] [] x86_64_start_kernel+0x13b/0x148 [ 26.463198] perf interrupt took too long (2503 > 2500), lowering kernel.perf_event_max_sample_rate to 50000 Thanks, Fengguang