Subject: Fwd: [rhashtable] WARNING: CPU: 0 PID: 10 at kernel/locking/mutex.c:570 mutex_lock_nested()

From: Ying Xue <[email-masked]>
Date: Mon, 12 Jan 2015 09:38:35 +0800

Hi Thomas,

I am really unable to see where is wrong leading to below warning
complaints. Can you please help me check it?

Add CC netdev maillist.

Thanks,
Ying

-------- Forwarded Message --------
Subject: [rhashtable] WARNING: CPU: 0 PID: 10 at
kernel/locking/mutex.c:570 mutex_lock_nested()
Date: Sat, 10 Jan 2015 11:48:03 -0800
From: Fengguang Wu <[email-masked]>
To: Ying Xue <[email-masked]>
CC: LKP <[email-masked]>, [email-masked]

Greetings,

0day kernel testing robot got the below dmesg and the first bad commit is

commit 54c5b7d311c8e1801f9dcce9f388a7420a25fa90
Author:     Ying Xue <[email-masked]>
AuthorDate: Wed Jan 7 13:41:53 2015 +0800
Commit:     David S. Miller <[email-masked]>
CommitDate: Thu Jan 8 19:47:10 2015 -0800

    rhashtable: introduce rhashtable_wakeup_worker helper function

    Introduce rhashtable_wakeup_worker() helper function to reduce
    duplicated code where to wake up worker.

    By the way, as long as the both "future_tbl" and "tbl" bucket table
    pointers point to the same bucket array, we should try to wake up
    the resizing worker thread, otherwise, it indicates the work of
    resizing hash table is not finished yet. However, currently we will
    wake up the worker thread only when the two pointers point to
    different bucket array. Obviously this is wrong. So, the issue is
    also fixed as well in the patch.

    Signed-off-by: Ying Xue <[email-masked]>
    Cc: Thomas Graf <[email-masked]>
    Acked-by: Thomas Graf <[email-masked]>
    Signed-off-by: David S. Miller <[email-masked]>

+--------------------------------------------------------+------------+------------+------------+
|                                                        | efb975a67e |
54c5b7d311 | 4955cb4b36 |
+--------------------------------------------------------+------------+------------+------------+
| boot_successes                                         | 66         |
0          | 0          |
| boot_failures                                          | 0          |
21         | 14         |
| WARNING:at_kernel/locking/mutex.c:#mutex_lock_nested() | 0          |
21         | 14         |
| BUG:unable_to_handle_kernel                            | 0          |
21         | 14         |
| Oops                                                   | 0          |
21         | 14         |
| EIP_is_at_misc_register                                | 0          |
21         | 14         |
| Kernel_panic-not_syncing:Fatal_exception               | 0          |
21         | 14         |
| backtrace:rht_deferred_worker                          | 0          |
21         | 14         |
+--------------------------------------------------------+------------+------------+------------+

[    0.398875] ------------[ cut here ]------------
[    0.398875] ------------[ cut here ]------------
[    0.400000] WARNING: CPU: 0 PID: 10 at kernel/locking/mutex.c:570
mutex_lock_nested+0x389/0x444()
[    0.400000] WARNING: CPU: 0 PID: 10 at kernel/locking/mutex.c:570
mutex_lock_nested+0x389/0x444()
[    0.400000] DEBUG_LOCKS_WARN_ON(l->magic != l)
[    0.400000] DEBUG_LOCKS_WARN_ON(l->magic != l)

[    0.400000] Modules linked in:
[    0.400000] Modules linked in:

[    0.400000] CPU: 0 PID: 10 Comm: kworker/0:1 Not tainted
3.19.0-rc3-g54c5b7d #200
[    0.400000] CPU: 0 PID: 10 Comm: kworker/0:1 Not tainted
3.19.0-rc3-g54c5b7d #200
[    0.400000] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.400000] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.400000] Workqueue: events rht_deferred_worker
[    0.400000] Workqueue: events rht_deferred_worker

[    0.400000]  00000000
[    0.400000]  00000000 d34ede5c d34ede5c d34a5460 d34a5460 d34ede30
d34ede30 c14458df c14458df d34ede4c d34ede4c c10424d3 c10424d3 0000023a
0000023a

[    0.400000]  c144965c
[    0.400000]  c144965c 00000001 00000001 d348bec8 d348bec8 d34a5460
d34a5460 d34ede64 d34ede64 c1042510 c1042510 00000009 00000009 d34ede5c
d34ede5c

[    0.400000]  c16cd111
[    0.400000]  c16cd111 d34ede78 d34ede78 d34edea0 d34edea0 c144965c
c144965c c16d33fa c16d33fa 0000023a 0000023a c16cd111 c16cd111 c16d3422
c16d3422

[    0.400000] Call Trace:
[    0.400000] Call Trace:
[    0.400000]  [<c14458df>] dump_stack+0x16/0x18
[    0.400000]  [<c14458df>] dump_stack+0x16/0x18
[    0.400000]  [<c10424d3>] warn_slowpath_common+0xac/0xc3
[    0.400000]  [<c10424d3>] warn_slowpath_common+0xac/0xc3
[    0.400000]  [<c144965c>] ? mutex_lock_nested+0x389/0x444
[    0.400000]  [<c144965c>] ? mutex_lock_nested+0x389/0x444
[    0.400000]  [<c1042510>] warn_slowpath_fmt+0x26/0x2a
[    0.400000]  [<c1042510>] warn_slowpath_fmt+0x26/0x2a
[    0.400000]  [<c144965c>] mutex_lock_nested+0x389/0x444
[    0.400000]  [<c144965c>] mutex_lock_nested+0x389/0x444
[    0.400000]  [<c1213181>] rht_deferred_worker+0x19/0x74
[    0.400000]  [<c1213181>] rht_deferred_worker+0x19/0x74
[    0.400000]  [<c105da1e>] process_one_work+0x3f7/0x74d
[    0.400000]  [<c105da1e>] process_one_work+0x3f7/0x74d
[    0.400000]  [<c105e5e3>] ? worker_thread+0x30/0x75e
[    0.400000]  [<c105e5e3>] ? worker_thread+0x30/0x75e
[    0.400000]  [<c105eb4d>] worker_thread+0x59a/0x75e
[    0.400000]  [<c105eb4d>] worker_thread+0x59a/0x75e
[    0.400000]  [<c105e5b3>] ? max_active_store+0x57/0x57
[    0.400000]  [<c105e5b3>] ? max_active_store+0x57/0x57
[    0.400000]  [<c1062dd2>] kthread+0xe9/0xee
[    0.400000]  [<c1062dd2>] kthread+0xe9/0xee
[    0.400000]  [<c144cbc0>] ret_from_kernel_thread+0x20/0x30
[    0.400000]  [<c144cbc0>] ret_from_kernel_thread+0x20/0x30
[    0.400000]  [<c1062ce9>] ? kthread_create_on_node+0x1de/0x1de
[    0.400000]  [<c1062ce9>] ? kthread_create_on_node+0x1de/0x1de
[    0.400000] ---[ end trace 250eb7ae843dd3cf ]---
[    0.400000] ---[ end trace 250eb7ae843dd3cf ]---

git bisect start 4955cb4b36dc366298ecaac0d9874094c8ffe01a
b1940cd21c0f4abdce101253e860feff547291b0 --
git bisect  bad c526685710f25a83983b56a0a3d26ffee105f6e1  # 14:05
4-     16  Merge 'jtkirshe-net-next/i40e-queue' into
devel-lkp-hsx01-rand-201501101335
git bisect good 445834073c81918ec10760d96c3d966fa452dc78  # 14:10
22+      0  Merge 'microblaze/xnext/gpio-v5' into
devel-lkp-hsx01-rand-201501101335
git bisect  bad 7b14c9751ab7b4daa58fabd886ea4c55d9068416  # 14:14
0-     22  Merge 'jtkirshe-net-next/core-queue' into
devel-lkp-hsx01-rand-201501101335
git bisect  bad 818dc2047f993b67202d37d336736ddf8d291d83  # 14:17
0-     22  Merge 'jtkirshe-net-next/community' into
devel-lkp-hsx01-rand-201501101335
git bisect good 44d84d7272e5848878a96029b8a8b6e86854f146  # 14:19
22+      0  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
git bisect  bad fb57720daf6e56ba453414b5e8dd9cb3c0c80257  # 14:19
0-     18  Merge tag 'batman-adv-for-davem' of
git://git.open-mesh.org/linux-merge
git bisect  bad 99b164a66b7c80be69097d19e55dd1f6a5284fd6  # 14:19
0-     21  Revert "ARM: imx: add FEC sleep mode callback function"
git bisect good efb975a67ea7846b966080f999589de570686aa0  # 14:21
22+      0  rhashtable: optimize rhashtable_lookup routine
git bisect  bad c0c09bfdc4150b3918526660768585cd477adf35  # 14:21
0-     21  rhashtable: avoid unnecessary wakeup for worker queue
git bisect  bad db30485408326a6f466a843b291b23535f63eda0  # 16:53
0-     43  rhashtable: involve rhashtable_lookup_insert routine
git bisect  bad 54c5b7d311c8e1801f9dcce9f388a7420a25fa90  # 16:53
0-     21  rhashtable: introduce rhashtable_wakeup_worker helper function
# first bad commit: [54c5b7d311c8e1801f9dcce9f388a7420a25fa90]
rhashtable: introduce rhashtable_wakeup_worker helper function
git bisect good efb975a67ea7846b966080f999589de570686aa0  # 16:54
66+      0  rhashtable: optimize rhashtable_lookup routine
# extra tests with DEBUG_INFO
git bisect good 54c5b7d311c8e1801f9dcce9f388a7420a25fa90  # 17:53
66+     61  rhashtable: introduce rhashtable_wakeup_worker helper function
# extra tests on HEAD of linux-devel/devel-lkp-hsx01-rand-201501101335
git bisect  bad 4955cb4b36dc366298ecaac0d9874094c8ffe01a  # 17:53
0-     14  0day head guard for 'devel-lkp-hsx01-rand-201501101335'
# extra tests on tree/branch linux-devel/devel-athens-alpha-201501091315
git bisect  bad d8c38894432075482b15d047396412a2419c509b  # 18:36
0-     63  0day head guard for 'devel-athens-alpha-201501091315'
# extra tests on tree/branch linus/master
git bisect good eb74926920cfa756087a82e0b081df837177cb95  # 18:38
66+      0  Merge tag 'sound-3.19-rc4' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
# extra tests on tree/branch next/master
git bisect good 39b673bba50275b516543d32ef78767a524b9f26  # 18:40
66+      0  Add linux-next specific files for 20150109

This script may reproduce the error.

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

kernel=$1

kvm=(
	qemu-system-x86_64
	-enable-kvm
	-cpu Haswell,+smep,+smap
	-kernel $kernel
	-m 320
	-smp 1
	-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=-1
	softlockup_panic=1
	nmi_watchdog=panic
	oops=panic
	load_ramdisk=2
	prompt_ramdisk=0
	console=ttyS0,115200
	console=tty0
	vga=normal
	root=/dev/ram0
	rw
	drbd.minor_count=8
)

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

Thanks,
Fengguang