Greetings, Here is a pktgen error triggered by this debug check. git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/wait commit 64c2181bc433b17f04da8fe8592aa83cceac9606 Author: Peter Zijlstra AuthorDate: Mon Aug 4 11:14:16 2014 +0200 Commit: Peter Zijlstra CommitDate: Mon Aug 4 13:29:59 2014 +0200 sched: Debug nested sleeps Validate we call might_sleep() with TASK_RUNNING, which catches places where we nest blocking primitives, eg. mutex usage in a wait loop. Since all blocking is arranged through task_struct::state, nesting this is going to cause two distinct issues: - the inner primitive will set TASK_RUNNING and the outer will not block - the outer sets !TASK_RUNNING and the inner expects to be called with TASK_RUNNING and blocks forever (mutex_lock). Signed-off-by: Peter Zijlstra Link: http://lkml.kernel.org/n/tip-0hge361rozfbng4z2t64t217(a)git.kernel.org [ 1.604869] gre: GRE over IPv4 demultiplexor driver [ 1.606178] ip_gre: GRE over IPv4 tunneling driver [ 1.608031] ------------[ cut here ]------------ [ 1.609370] WARNING: CPU: 0 PID: 89 at kernel/sched/core.c:7094 __might_sleep+0x6f/0x1f8() [ 1.611875] do not call blocking ops when !TASK_RUNNING; state=1 set at [] pktgen_thread_worker.part.36+0x5/0x769 [ 1.618496] tcp_probe: probe registered (port=0/fwmark=0) bufsize=4096 [ 1.620291] Modules linked in: [ 1.621568] CPU: 0 PID: 89 Comm: kpktgend_0 Not tainted 3.16.0-00053-g64c2181 #1 [ 1.624084] TCP: bic registered [ 1.625297] TCP: cubic registered [ 1.626488] TCP: westwood registered [ 1.627749] TCP: highspeed registered [ 1.629117] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 1.630928] 0000000000000000 ffff880013b53d48 ffffffff8153cc4f ffff880013b53d80 [ 1.633938] ffffffff8105fa45 ffffffff810856f3 0000000000000001 0000000000000000 [ 1.636942] ffffffff81420801 00000000000000a9 ffff880013b53de0 ffffffff8105faaa This script may reproduce the error. ---------------------------------------------------------------------------- #!/bin/bash kernel=$1 initrd=quantal-core-x86_64.cgz wget --no-clobber https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd kvm=( qemu-system-x86_64 -enable-kvm -cpu Haswell,+smep,+smap -kernel $kernel -initrd $initrd -m 320 -smp 2 -net nic,vlan=1,model=e1000 -net user,vlan=1 -boot order=nc -no-reboot -watchdog i6300esb -rtc base=localtime -serial stdio -display none -monitor null ) append=( hung_task_panic=1 earlyprintk=ttyS0,115200 debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 panic=10 softlockup_panic=1 nmi_watchdog=panic prompt_ramdisk=0 console=ttyS0,115200 console=tty0 vga=normal root=/dev/ram0 rw drbd.minor_count=8 ) "${kvm[@]}" --append "${append[*]}" ---------------------------------------------------------------------------- Thanks, Fengguang _______________________________________________ LKP mailing list LKP(a)linux.intel.com