NFS swap hangup

From: Yoshinori Sato
Date: Wed Apr 27 2016 - 10:32:22 EST


Hello.

Your commit 15001e5a7e1e207b6bd258cd8f187814cd15b6dc is hang up in my system.

Lock detector said
NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [swapon:933]
Modules linked in:

CPU: 0 PID: 933 Comm: swapon Not tainted 4.6.0-rc5-08195-g94cf084-dirty #884
task: 8f026240 ti: 8f10a000 task.ti: 8f10a000
PC is at xprt_iter_next_entry_multiple+0x22/0xd0
PR is at xprt_iter_next_entry_all+0xc/0x1c
PC : 8c32920a SP : 8f10be4c SR : 40008000 TEA : c00a3000
R0 : 8c3291e8 R1 : 8f06f6e0 R2 : 8f06f6e0 R3 : 00000001
R4 : 8f10bebc R5 : 8c3290e8 R6 : 00000000 R7 : 00000020
R8 : 8c3292d4 R9 : 8f10bebc R10 : 8c313320 R11 : 8f10bebc
R12 : 8f06b000 R13 : 8c313864 R14 : 8f10be4c
MACH: 00000007 MACL: 00001300 GBR : 29579bd0 PR : 8c3292e0

Call trace:
[<8c3290e8>] xprt_switch_find_next_entry+0x0/0x38
[<8c039c38>] __lock_acquire.isra.16+0x0/0xaa0
[<8c3292e0>] xprt_iter_next_entry_all+0xc/0x1c
[<8c313864>] xprt_put+0x0/0x64
[<8c310198>] rpc_clnt_swap_activate_callback+0x0/0x18
[<8c313320>] xprt_get+0x0/0x88
[<8c3292d4>] xprt_iter_next_entry_all+0x0/0x1c
[<8c329140>] xprt_iter_get_helper+0x20/0x38
[<8c329852>] xprt_iter_get_next+0x32/0x6c
[<8c329820>] xprt_iter_get_next+0x0/0x6c
[<8c329120>] xprt_iter_get_helper+0x0/0x38
[<8c329820>] xprt_iter_get_next+0x0/0x6c
[<8c310c5c>] rpc_clnt_iterate_for_each_xprt+0x80/0xd8
[<8c310bdc>] rpc_clnt_iterate_for_each_xprt+0x0/0xd8
[<8c312470>] rpc_clnt_swap_activate+0x4c/0x70
[<8c310bdc>] rpc_clnt_iterate_for_each_xprt+0x0/0xd8
[<8c00376c>] arch_local_irq_restore+0x0/0x2c
[<8c170d30>] nfs_swap_activate+0x28/0x38
[<8c0aaf42>] SyS_swapon+0x96a/0xf24
[<8c0e94d4>] fsnotify+0x0/0x31c
[<8c0c6ae4>] dput+0x0/0x244
[<8c0cec1c>] mntput+0x0/0x30
[<8c048630>] call_rcu_sched+0x0/0x1c
[<8c0b3e68>] __fput+0xfc/0x1f0
[<8c0b3fc2>] ____fput+0xa/0x18
[<8c008242>] syscall_call+0x18/0x1e
[<8c0aa5d8>] SyS_swapon+0x0/0xf24

2 locks held by swapon/933: x
#0: (&sb->s_type->i_mutex_key#6){......}, at: [<8c0aa7ae>] SyS_swapon+0x1d6/0
f24
#1: (rcu_read_lock){......}, at: [<8c329820>] xprt_iter_get_next+0x0/0x6c
Code:
8c329204: mov.l r5, @r14
8c329206: mov.l @(44,r1), r3
8c329208: mov r1, r2
->8c32920a: mov #1, r0
8c32920c: add #48, r2
8c32920e: cmp/hi r0, r3
8c329210: bf.s 8c32926a
8c329212: mov.l r2, @(4,r14)
8c329214: mov.l @(4,r4), r8

Is anything invastigate?

Thanks.

--
Yoshinori Sato
<ysato@xxxxxxxxxxxxxxxxxxxx>