All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fengguang Wu <fengguang.wu@intel.com>
To: Peter Zijlstra <peterz@infradead.org>, linux-nfs@vger.kernel.org
Cc: Jet Chen <jet.chen@intel.com>, Su Tao <tao.su@intel.com>,
	Yuanhan Liu <yuanhan.liu@intel.com>, LKP <lkp@01.org>,
	linux-kernel@vger.kernel.org
Subject: [nfs] BUG: sleeping function called from invalid context at include/linux/wait.h:976
Date: Tue, 5 Aug 2014 22:03:07 +0800	[thread overview]
Message-ID: <20140805140307.GB5593@localhost> (raw)

[-- Attachment #1: Type: text/plain, Size: 6601 bytes --]

Greetings,

Here is an NFS error triggered by this debug check.

git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/wait
commit b87699e5fa31f451987a992b9cbda22d29ebcb46
Author:     Peter Zijlstra <peterz@infradead.org>
AuthorDate: Mon Aug 4 11:12:21 2014 +0200
Commit:     Peter Zijlstra <a.p.zijlstra@chello.nl>
CommitDate: Mon Aug 4 13:29:57 2014 +0200

    wait: Add might_sleep()
    
    Add more might_sleep() checks, suppose someone put a wait_event() like
    thing in a wait loop..
    
    Can't put might_sleep() in ___wait_event() because there's the locked
    primitives which call ___wait_event() with locks held.
    
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/n/tip-amr894sd1j012khd3fgyh9m8@git.kernel.org


[   13.363454] BUG: sleeping function called from invalid context at include/linux/wait.h:976
[   13.365679] in_atomic(): 1, irqs_disabled(): 0, pid: 2715, name: dmesg
[   13.367109] CPU: 1 PID: 2715 Comm: dmesg Not tainted 3.16.0-00048-gb87699e #1
[   13.368385] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   13.369544]  0000000000000000 ffff88003e3efad0 ffffffff819c6bad ffff880035e9e480
[   13.371838]  ffff88003e3efae0 ffffffff81106e96 ffff88003e3efb00 ffffffff81306a2e
[   13.373822]  ffff880035e9e480 ffff88001b8a1a40 ffff88003e3efb48 ffffffff8130975a
[   13.376165] Call Trace:
[   13.376890]  [<ffffffff819c6bad>] dump_stack+0x4d/0x66
[   13.377903]  [<ffffffff81106e96>] __might_sleep+0x10a/0x10c
[   13.379247]  [<ffffffff81306a2e>] nfs_page_group_lock+0x4e/0x7b
[   13.380739]  [<ffffffff8130975a>] nfs_lock_and_join_requests+0x83/0x334
[   13.381884]  [<ffffffff81309a9f>] nfs_do_writepage+0x94/0x191
[   13.383078]  [<ffffffff81309baf>] nfs_writepages_callback+0x13/0x25
[   13.384592]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   13.385745]  [<ffffffff811963d0>] write_cache_pages+0x281/0x3a9
[   13.386829]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   13.388524]  [<ffffffff8130a1fd>] nfs_writepages+0xa9/0x10f
[   13.389903]  [<ffffffff811994e1>] ? release_pages+0x1a2/0x20b
[   13.391087]  [<ffffffff81194835>] ? free_pcppages_bulk+0x298/0x33c
[   13.392198]  [<ffffffff81197c8b>] do_writepages+0x1e/0x2c
[   13.393202]  [<ffffffff8118e3f4>] __filemap_fdatawrite_range+0x55/0x57
[   13.394313]  [<ffffffff8118e4b4>] filemap_write_and_wait_range+0x2a/0x58
[   13.395448]  [<ffffffff812ff101>] nfs_file_fsync+0x4e/0x10c
[   13.396546]  [<ffffffff81211395>] vfs_fsync_range+0x1b/0x23
[   13.397567]  [<ffffffff812113b9>] vfs_fsync+0x1c/0x1e
[   13.398517]  [<ffffffff812ff679>] nfs_file_flush+0x6c/0x6f
[   13.399513]  [<ffffffff811e918b>] filp_close+0x3c/0x72
[   13.400646]  [<ffffffff8120295a>] put_files_struct+0x67/0xb3
[   13.401759]  [<ffffffff81202a43>] exit_files+0x4a/0x4f
[   13.402756]  [<ffffffff810e4073>] do_exit+0x3c9/0x985
[   13.403740]  [<ffffffff8106e605>] ? trace_do_page_fault+0x52/0xb7
[   13.404875]  [<ffffffff810e46a9>] do_group_exit+0x44/0xac
[   13.405878]  [<ffffffff810e4725>] SyS_exit_group+0x14/0x14
[   13.406892]  [<ffffffff819ce6a9>] system_call_fastpath+0x16/0x1b
[   15.733276] BUG: sleeping function called from invalid context at include/linux/wait.h:976
[   15.735154] in_atomic(): 1, irqs_disabled(): 0, pid: 2716, name: cat
[   15.736263] CPU: 1 PID: 2716 Comm: cat Not tainted 3.16.0-00048-gb87699e #1
[   15.737414] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   15.738754]  0000000000000000 ffff88000068b910 ffffffff819c6bad ffff880035e9e080
[   15.746872]  ffff88000068b920 ffffffff81106e96 ffff88000068b940 ffffffff81306a2e
[   15.748694]  ffff880035e9e080 ffff88001b8a1a40 ffff88000068b988 ffffffff8130975a
[   15.750479] Call Trace:
[   15.751164]  [<ffffffff819c6bad>] dump_stack+0x4d/0x66
[   15.752141]  [<ffffffff81106e96>] __might_sleep+0x10a/0x10c
[   15.753148]  [<ffffffff81306a2e>] nfs_page_group_lock+0x4e/0x7b
[   15.754183]  [<ffffffff8130975a>] nfs_lock_and_join_requests+0x83/0x334
[   15.755294]  [<ffffffff81309a9f>] nfs_do_writepage+0x94/0x191
[   15.756335]  [<ffffffff81309baf>] nfs_writepages_callback+0x13/0x25
[   15.757405]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   15.758452]  [<ffffffff811963d0>] write_cache_pages+0x281/0x3a9
[   15.759483]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   15.760547]  [<ffffffff8130a1fd>] nfs_writepages+0xa9/0x10f
[   15.761541]  [<ffffffff81197c8b>] do_writepages+0x1e/0x2c
[   15.762514]  [<ffffffff8118e3f4>] __filemap_fdatawrite_range+0x55/0x57
[   15.763612]  [<ffffffff8118e4b4>] filemap_write_and_wait_range+0x2a/0x58
[   15.764746]  [<ffffffff812ff101>] nfs_file_fsync+0x4e/0x10c
[   15.765748]  [<ffffffff81211395>] vfs_fsync_range+0x1b/0x23
[   15.766745]  [<ffffffff812113b9>] vfs_fsync+0x1c/0x1e
[   15.767681]  [<ffffffff812ff679>] nfs_file_flush+0x6c/0x6f
[   15.768690]  [<ffffffff811e918b>] filp_close+0x3c/0x72
[   15.769638]  [<ffffffff8120295a>] put_files_struct+0x67/0xb3
[   15.770635]  [<ffffffff81202a43>] exit_files+0x4a/0x4f
[   15.771581]  [<ffffffff810e4073>] do_exit+0x3c9/0x985
[   15.772537]  [<ffffffff819caf04>] ? __schedule+0x4cb/0x734
[   15.773522]  [<ffffffff810e46a9>] do_group_exit+0x44/0xac
[   15.774493]  [<ffffffff810f0c03>] get_signal_to_deliver+0x53b/0x5cb
[   15.775575]  [<ffffffff810392b9>] do_signal+0x49/0x511
[   15.776561]  [<ffffffff81127334>] ? do_syslog+0x141/0x4a8
[   15.777564]  [<ffffffff8124915d>] ? kmsg_read+0x2d/0x54
[   15.778513]  [<ffffffff8123d924>] ? proc_reg_read+0x56/0x69
[   15.779504]  [<ffffffff810397b6>] do_notify_resume+0x35/0x72
[   15.780521]  [<ffffffff819ce908>] int_signal+0x12/0x17

This script may reproduce the error.

----------------------------------------------------------------------------
#!/bin/bash

kernel=$1
initrd=debian-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 Nehalem
	-kernel $kernel
	-initrd $initrd
	-m 1024
	-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=(
	root=/dev/ram0
	ip=::::vm-vp-1G-5::dhcp
	oops=panic
	earlyprintk=ttyS0,115200
	debug
	apic=debug
	sysrq_always_enabled
	rcupdate.rcu_cpu_stall_timeout=100
	panic=10
	softlockup_panic=1
	nmi_watchdog=panic
	load_ramdisk=2
	prompt_ramdisk=0
	console=ttyS0,115200
	console=tty0
	vga=normal
)

"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------

Thanks,
Fengguang

[-- Attachment #2: Type: text/plain, Size: 85 bytes --]

_______________________________________________
LKP mailing list
LKP@linux.intel.com

WARNING: multiple messages have this Message-ID (diff)
From: Fengguang Wu <fengguang.wu@intel.com>
To: lkp@lists.01.org
Subject: [nfs] BUG: sleeping function called from invalid context at include/linux/wait.h:976
Date: Tue, 05 Aug 2014 22:03:07 +0800	[thread overview]
Message-ID: <20140805140307.GB5593@localhost> (raw)

[-- Attachment #1: Type: text/plain, Size: 6845 bytes --]

Greetings,

Here is an NFS error triggered by this debug check.

git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/wait
commit b87699e5fa31f451987a992b9cbda22d29ebcb46
Author:     Peter Zijlstra <peterz@infradead.org>
AuthorDate: Mon Aug 4 11:12:21 2014 +0200
Commit:     Peter Zijlstra <a.p.zijlstra@chello.nl>
CommitDate: Mon Aug 4 13:29:57 2014 +0200

    wait: Add might_sleep()
    
    Add more might_sleep() checks, suppose someone put a wait_event() like
    thing in a wait loop..
    
    Can't put might_sleep() in ___wait_event() because there's the locked
    primitives which call ___wait_event() with locks held.
    
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/n/tip-amr894sd1j012khd3fgyh9m8(a)git.kernel.org


[   13.363454] BUG: sleeping function called from invalid context at include/linux/wait.h:976
[   13.365679] in_atomic(): 1, irqs_disabled(): 0, pid: 2715, name: dmesg
[   13.367109] CPU: 1 PID: 2715 Comm: dmesg Not tainted 3.16.0-00048-gb87699e #1
[   13.368385] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   13.369544]  0000000000000000 ffff88003e3efad0 ffffffff819c6bad ffff880035e9e480
[   13.371838]  ffff88003e3efae0 ffffffff81106e96 ffff88003e3efb00 ffffffff81306a2e
[   13.373822]  ffff880035e9e480 ffff88001b8a1a40 ffff88003e3efb48 ffffffff8130975a
[   13.376165] Call Trace:
[   13.376890]  [<ffffffff819c6bad>] dump_stack+0x4d/0x66
[   13.377903]  [<ffffffff81106e96>] __might_sleep+0x10a/0x10c
[   13.379247]  [<ffffffff81306a2e>] nfs_page_group_lock+0x4e/0x7b
[   13.380739]  [<ffffffff8130975a>] nfs_lock_and_join_requests+0x83/0x334
[   13.381884]  [<ffffffff81309a9f>] nfs_do_writepage+0x94/0x191
[   13.383078]  [<ffffffff81309baf>] nfs_writepages_callback+0x13/0x25
[   13.384592]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   13.385745]  [<ffffffff811963d0>] write_cache_pages+0x281/0x3a9
[   13.386829]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   13.388524]  [<ffffffff8130a1fd>] nfs_writepages+0xa9/0x10f
[   13.389903]  [<ffffffff811994e1>] ? release_pages+0x1a2/0x20b
[   13.391087]  [<ffffffff81194835>] ? free_pcppages_bulk+0x298/0x33c
[   13.392198]  [<ffffffff81197c8b>] do_writepages+0x1e/0x2c
[   13.393202]  [<ffffffff8118e3f4>] __filemap_fdatawrite_range+0x55/0x57
[   13.394313]  [<ffffffff8118e4b4>] filemap_write_and_wait_range+0x2a/0x58
[   13.395448]  [<ffffffff812ff101>] nfs_file_fsync+0x4e/0x10c
[   13.396546]  [<ffffffff81211395>] vfs_fsync_range+0x1b/0x23
[   13.397567]  [<ffffffff812113b9>] vfs_fsync+0x1c/0x1e
[   13.398517]  [<ffffffff812ff679>] nfs_file_flush+0x6c/0x6f
[   13.399513]  [<ffffffff811e918b>] filp_close+0x3c/0x72
[   13.400646]  [<ffffffff8120295a>] put_files_struct+0x67/0xb3
[   13.401759]  [<ffffffff81202a43>] exit_files+0x4a/0x4f
[   13.402756]  [<ffffffff810e4073>] do_exit+0x3c9/0x985
[   13.403740]  [<ffffffff8106e605>] ? trace_do_page_fault+0x52/0xb7
[   13.404875]  [<ffffffff810e46a9>] do_group_exit+0x44/0xac
[   13.405878]  [<ffffffff810e4725>] SyS_exit_group+0x14/0x14
[   13.406892]  [<ffffffff819ce6a9>] system_call_fastpath+0x16/0x1b
[   15.733276] BUG: sleeping function called from invalid context at include/linux/wait.h:976
[   15.735154] in_atomic(): 1, irqs_disabled(): 0, pid: 2716, name: cat
[   15.736263] CPU: 1 PID: 2716 Comm: cat Not tainted 3.16.0-00048-gb87699e #1
[   15.737414] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   15.738754]  0000000000000000 ffff88000068b910 ffffffff819c6bad ffff880035e9e080
[   15.746872]  ffff88000068b920 ffffffff81106e96 ffff88000068b940 ffffffff81306a2e
[   15.748694]  ffff880035e9e080 ffff88001b8a1a40 ffff88000068b988 ffffffff8130975a
[   15.750479] Call Trace:
[   15.751164]  [<ffffffff819c6bad>] dump_stack+0x4d/0x66
[   15.752141]  [<ffffffff81106e96>] __might_sleep+0x10a/0x10c
[   15.753148]  [<ffffffff81306a2e>] nfs_page_group_lock+0x4e/0x7b
[   15.754183]  [<ffffffff8130975a>] nfs_lock_and_join_requests+0x83/0x334
[   15.755294]  [<ffffffff81309a9f>] nfs_do_writepage+0x94/0x191
[   15.756335]  [<ffffffff81309baf>] nfs_writepages_callback+0x13/0x25
[   15.757405]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   15.758452]  [<ffffffff811963d0>] write_cache_pages+0x281/0x3a9
[   15.759483]  [<ffffffff81309b9c>] ? nfs_do_writepage+0x191/0x191
[   15.760547]  [<ffffffff8130a1fd>] nfs_writepages+0xa9/0x10f
[   15.761541]  [<ffffffff81197c8b>] do_writepages+0x1e/0x2c
[   15.762514]  [<ffffffff8118e3f4>] __filemap_fdatawrite_range+0x55/0x57
[   15.763612]  [<ffffffff8118e4b4>] filemap_write_and_wait_range+0x2a/0x58
[   15.764746]  [<ffffffff812ff101>] nfs_file_fsync+0x4e/0x10c
[   15.765748]  [<ffffffff81211395>] vfs_fsync_range+0x1b/0x23
[   15.766745]  [<ffffffff812113b9>] vfs_fsync+0x1c/0x1e
[   15.767681]  [<ffffffff812ff679>] nfs_file_flush+0x6c/0x6f
[   15.768690]  [<ffffffff811e918b>] filp_close+0x3c/0x72
[   15.769638]  [<ffffffff8120295a>] put_files_struct+0x67/0xb3
[   15.770635]  [<ffffffff81202a43>] exit_files+0x4a/0x4f
[   15.771581]  [<ffffffff810e4073>] do_exit+0x3c9/0x985
[   15.772537]  [<ffffffff819caf04>] ? __schedule+0x4cb/0x734
[   15.773522]  [<ffffffff810e46a9>] do_group_exit+0x44/0xac
[   15.774493]  [<ffffffff810f0c03>] get_signal_to_deliver+0x53b/0x5cb
[   15.775575]  [<ffffffff810392b9>] do_signal+0x49/0x511
[   15.776561]  [<ffffffff81127334>] ? do_syslog+0x141/0x4a8
[   15.777564]  [<ffffffff8124915d>] ? kmsg_read+0x2d/0x54
[   15.778513]  [<ffffffff8123d924>] ? proc_reg_read+0x56/0x69
[   15.779504]  [<ffffffff810397b6>] do_notify_resume+0x35/0x72
[   15.780521]  [<ffffffff819ce908>] int_signal+0x12/0x17

This script may reproduce the error.

----------------------------------------------------------------------------
#!/bin/bash

kernel=$1
initrd=debian-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 Nehalem
	-kernel $kernel
	-initrd $initrd
	-m 1024
	-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=(
	root=/dev/ram0
	ip=::::vm-vp-1G-5::dhcp
	oops=panic
	earlyprintk=ttyS0,115200
	debug
	apic=debug
	sysrq_always_enabled
	rcupdate.rcu_cpu_stall_timeout=100
	panic=10
	softlockup_panic=1
	nmi_watchdog=panic
	load_ramdisk=2
	prompt_ramdisk=0
	console=ttyS0,115200
	console=tty0
	vga=normal
)

"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------

Thanks,
Fengguang

_______________________________________________
LKP mailing list
LKP(a)linux.intel.com

             reply	other threads:[~2014-08-05 14:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05 14:03 Fengguang Wu [this message]
2014-08-05 14:03 ` [nfs] BUG: sleeping function called from invalid context at include/linux/wait.h:976 Fengguang Wu
2014-08-05 15:08 ` Weston Andros Adamson
2014-08-05 15:08   ` Weston Andros Adamson
2014-08-09  4:11   ` Nick Krause
2014-08-12  2:52     ` Weston Andros Adamson
2014-08-12  2:52       ` Weston Andros Adamson
2014-08-12  6:59       ` Peter Zijlstra
2014-08-12  6:59         ` Peter Zijlstra
2014-08-12 17:21         ` Nick Krause

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140805140307.GB5593@localhost \
    --to=fengguang.wu@intel.com \
    --cc=jet.chen@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=lkp@01.org \
    --cc=peterz@infradead.org \
    --cc=tao.su@intel.com \
    --cc=yuanhan.liu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.