[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 5 Aug 2014 22:10:50 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Jet Chen <jet.chen@...el.com>, Su Tao <tao.su@...el.com>,
Yuanhan Liu <yuanhan.liu@...el.com>, LKP <lkp@...org>,
linux-kernel@...r.kernel.org
Subject: [pktgen_thread_worker] WARNING: CPU: 0 PID: 89 at
kernel/sched/core.c:7094 __might_sleep()
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 <peterz@...radead.org>
AuthorDate: Mon Aug 4 11:14:16 2014 +0200
Commit: Peter Zijlstra <a.p.zijlstra@...llo.nl>
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 <peterz@...radead.org>
Link: http://lkml.kernel.org/n/tip-0hge361rozfbng4z2t64t217@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 [<ffffffff8153f80c>] 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
View attachment "dmesg-quantal-kbuild-4:20140805000300:x86_64-randconfig-c2-0804:3.16.0-00053-g64c2181:1" of type "text/plain" (45695 bytes)
Download attachment "x86_64-randconfig-c2-0804-11b577c4042a76bba961e10628c0cfbd1c91cfd6-WARNING:---at----__might_sleep+-x-76964.log" of type "application/octet-stream" (20552 bytes)
View attachment "config-3.16.0-00053-g64c2181" of type "text/plain" (80909 bytes)
_______________________________________________
LKP mailing list
LKP@...ux.intel.com
Powered by blists - more mailing lists