* Locking problems with Linux 4.9 with NFSD and `fs/iomap.c`
@ 2017-05-07 19:09 Paul Menzel
2017-05-08 13:18 ` Brian Foster
0 siblings, 1 reply; 15+ messages in thread
From: Paul Menzel @ 2017-05-07 19:09 UTC (permalink / raw)
To: linux-nfs, linux-xfs; +Cc: it+linux-nfs
Dear Linux folks,
There seems to be a regression in Linux 4.9 compared to 4.4. Maybe you
have an idea.
The system used 4.4.38 without issues, and was updated to 4.9.23 on
April 24th. Since Friday, the NFS exports where not accessible anymore.
Rebooting the system into 4.9.24, 4.9.24, and 4.9.25 didn’t change
anything, and the system went into the some lock right away. Booting
4.4.38 fixed the issue though.
Here is more information.
NFS doesn’t respond to a null call.
```
# tshark -r x.x
1 0.000000 141.14.16.23 -> 141.14.26.2 TCP 74 1005 → 2049 [SYN]
Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=327954228 TSecr=0
WS=512
2 0.000245 141.14.26.2 -> 141.14.16.23 TCP 74 2049 → 1005 [SYN,
ACK] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=1126765132
TSecr=327954228 WS=512
3 0.000269 141.14.16.23 -> 141.14.26.2 TCP 66 1005 → 2049 [ACK]
Seq=1 Ack=1 Win=29696 Len=0 TSval=327954229 TSecr=1126765132
4 0.000300 141.14.16.23 -> 141.14.26.2 NFS 110 V4 NULL Call
5 0.202652 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327954432
TSecr=1126765132
6 0.410651 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327954640
TSecr=1126765132
7 0.818649 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327955048
TSecr=1126765132
8 1.012429 141.14.26.2 -> 141.14.16.23 TCP 74 [TCP Spurious
Retransmission] 2049 → 1005 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0
MSS=1460 SACK_PERM=1 TSval=1126766144 TSecr=327955048 WS=512
9 1.012448 141.14.16.23 -> 141.14.26.2 TCP 66 [TCP Dup ACK 3#1]
1005 → 2049 [ACK] Seq=45 Ack=1 Win=29696 Len=0 TSval=327955241
TSecr=1126765132
10 1.674650 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327955904
TSecr=1126765132
11 3.060502 141.14.26.2 -> 141.14.16.23 TCP 74 [TCP Spurious
Retransmission] 2049 → 1005 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0
MSS=1460 SACK_PERM=1 TSval=1126768193 TSecr=327955904 WS=512
12 3.060521 141.14.16.23 -> 141.14.26.2 TCP 66 [TCP Dup ACK 3#2]
1005 → 2049 [ACK] Seq=45 Ack=1 Win=29696 Len=0 TSval=327957289
TSecr=1126765132
13 3.338653 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327957568
TSecr=1126765132
```
``
# tshark -r x.x
1 0.000000 141.14.16.23 -> 141.14.26.2 TCP 74 690 → 2049 [SYN]
Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=328229577 TSecr=0
WS=512
2 0.000039 141.14.26.2 -> 141.14.16.23 TCP 74 2049 → 690 [SYN, ACK]
Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=1127040480
TSecr=328229577 WS=512
3 0.000155 141.14.16.23 -> 141.14.26.2 TCP 66 690 → 2049 [ACK]
Seq=1 Ack=1 Win=29696 Len=0 TSval=328229577 TSecr=1127040480
4 0.000180 141.14.16.23 -> 141.14.26.2 NFS 110 V4 NULL Call
5 0.206937 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
690 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=328229784
TSecr=1127040480
6 0.414925 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
690 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=328229992
TSecr=1127040480
7 0.822928 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
690 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=328230400
TSecr=1127040480
8 1.056498 141.14.26.2 -> 141.14.16.23 TCP 74 [TCP Spurious
Retransmission] 2049 → 690 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0
MSS=1460 SACK_PERM=1 TSval=1127041536 TSecr=328230400 WS=512
```
Looking at the stack traces of the nfsd process with
```
for p in $(pgrep 'nfsd$'); do echo $p; cat /proc/$p/stack; done
```
all but one have the trace below.
```
[<ffffffff813eded7>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133aa1c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133ad2e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81196b50>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81197d4a>] do_readv_writev+0x18a/0x230
[<ffffffff8119803c>] vfs_writev+0x3c/0x50
[<ffffffffa02826b5>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e48a>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa02902f9>] nfsd4_proc_compound+0x369/0x5e0 [nfsd]
[<ffffffffa027e218>] nfsd_dispatch+0xa8/0x180 [nfsd]
[<ffffffffa01a66af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa01a696b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107b0ba>] kthread+0xca/0xe0
[<ffffffff81a97092>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
```
The one problematic one has the stack trace below.
```
[<ffffffff811f6f6c>] iomap_write_begin+0x8c/0x120
[<ffffffff811f758b>] iomap_zero_range_actor+0xeb/0x210 # oder
iomap_zero_range_actor+0x90/0x210
[<ffffffff811f77e2>] iomap_apply+0xa2/0x110
[<ffffffff811f79b8>] iomap_zero_range+0x58/0x80
[<ffffffff8133a38e>] xfs_zero_eof+0x4e/0xb0
[<ffffffff8133a58d>] xfs_file_aio_write_checks+0x19d/0x1c0
[<ffffffff8133aa39>] xfs_file_buffered_aio_write+0x79/0x2d0
[<ffffffff8133ad2e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81196b50>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81197d4a>] do_readv_writev+0x18a/0x230
[<ffffffff8119803c>] vfs_writev+0x3c/0x50
[<ffffffffa02826b5>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e48a>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa02902f9>] nfsd4_proc_compound+0x369/0x5e0 [nfsd]
[<ffffffffa027e218>] nfsd_dispatch+0xa8/0x180 [nfsd]
[<ffffffffa01a66af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa01a696b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107b0ba>] kthread+0xca/0xe0
[<ffffffff81a97092>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
```
Here is the corresponding lines in the source code.
```
info line *0xffffffff811f6f6c Line 124 of "fs/iomap.c" starts at address
0xffffffff811f6f6c <iomap_write_begin+140> and ends at
0xffffffff811f6f70 <iomap_write_begin+144>.
info line *0xffffffff811f758b Line 345 of "fs/iomap.c" starts at address
0xffffffff811f758b <iomap_zero_range_actor+235> and ends at
0xffffffff811f758f <iomap_zero_range_actor+239>.
info line *0xffffffff811f7530 Line 385 of "fs/iomap.c" starts at address
0xffffffff811f7530 <iomap_zero_range_actor+144> and ends at
0xffffffff811f7538 <iomap_zero_range_actor+152>.
```
Here is the code.
```
[…]
109 static int
110 iomap_write_begin(struct inode *inode, loff_t pos, unsigned len,
unsigned flags,
111 struct page **pagep, struct iomap *iomap)
112 {
113 pgoff_t index = pos >> PAGE_SHIFT;
114 struct page *page;
115 int status = 0;
116
117 BUG_ON(pos + len > iomap->offset + iomap->length);
118
119 if (fatal_signal_pending(current))
120 return -EINTR;
121
122 page = grab_cache_page_write_begin(inode->i_mapping, index,
flags);
123 if (!page)
124 return -ENOMEM;
125
126 status = __block_write_begin_int(page, pos, len, NULL,
iomap);
127 if (unlikely(status)) {
128 unlock_page(page);
129 put_page(page);
130 page = NULL;
131
132 iomap_write_failed(inode, pos, len);
133 }
134
135 *pagep = page;
136 return status;
137 }
[…]
```
So it looks like insufficent memory? But the machine has 1 TB of RAM,
and I didn’t see any suspicious running `htop`. Also it should have
returned from with that error, shouldn’t it have?
Kind regards,
Paul
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 with NFSD and `fs/iomap.c`
2017-05-07 19:09 Locking problems with Linux 4.9 with NFSD and `fs/iomap.c` Paul Menzel
@ 2017-05-08 13:18 ` Brian Foster
2017-05-09 9:05 ` Christoph Hellwig
2017-05-10 9:08 ` Locking problems with Linux 4.9 " Paul Menzel
0 siblings, 2 replies; 15+ messages in thread
From: Brian Foster @ 2017-05-08 13:18 UTC (permalink / raw)
To: Paul Menzel; +Cc: linux-nfs, linux-xfs, it+linux-nfs, Christoph Hellwig
cc Christoph, who's more familiar with nfs and wrote the iomap bits.
On Sun, May 07, 2017 at 09:09:49PM +0200, Paul Menzel wrote:
> Dear Linux folks,
>
>
> There seems to be a regression in Linux 4.9 compared to 4.4. Maybe you have
> an idea.
>
> The system used 4.4.38 without issues, and was updated to 4.9.23 on April
> 24th. Since Friday, the NFS exports where not accessible anymore. Rebooting
> the system into 4.9.24, 4.9.24, and 4.9.25 didn’t change anything, and the
> system went into the some lock right away. Booting 4.4.38 fixed the issue
> though.
>
The buffered write path was rewritten with the iomap mechanism around
4.7 or so, so there's a pretty big functionality gap between 4.4 and
4.9.
> Here is more information.
>
> NFS doesn’t respond to a null call.
>
What exactly is a NULL call? Can this be reproduced easily?
Otherwise, it's not clear to me whether you've hit a deadlock or some
kind of livelock. Have you checked syslog for any crash or hung task
messages? Please also provide the hung task output (echo w >
/proc/sysrq-trigger) once you've hit this state. It would be
particularly interesting to see whether the iomap_zero_range() path is
included in that output.
It may also be interesting to enable the xfs_zero_eof() tracepoint
(trace-cmd start -e 'xfs:xfs_zero_eof') and see what the last few
entries are from /sys/kernel/debug/tracing/trace_pipe.
Brian
> ```
> # tshark -r x.x
> 1 0.000000 141.14.16.23 -> 141.14.26.2 TCP 74 1005 → 2049 [SYN] Seq=0
> Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=327954228 TSecr=0 WS=512
> 2 0.000245 141.14.26.2 -> 141.14.16.23 TCP 74 2049 → 1005 [SYN, ACK]
> Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=1126765132
> TSecr=327954228 WS=512
> 3 0.000269 141.14.16.23 -> 141.14.26.2 TCP 66 1005 → 2049 [ACK] Seq=1
> Ack=1 Win=29696 Len=0 TSval=327954229 TSecr=1126765132
> 4 0.000300 141.14.16.23 -> 141.14.26.2 NFS 110 V4 NULL Call
> 5 0.202652 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
> 1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327954432
> TSecr=1126765132
> 6 0.410651 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
> 1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327954640
> TSecr=1126765132
> 7 0.818649 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
> 1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327955048
> TSecr=1126765132
> 8 1.012429 141.14.26.2 -> 141.14.16.23 TCP 74 [TCP Spurious
> Retransmission] 2049 → 1005 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460
> SACK_PERM=1 TSval=1126766144 TSecr=327955048 WS=512
> 9 1.012448 141.14.16.23 -> 141.14.26.2 TCP 66 [TCP Dup ACK 3#1] 1005 →
> 2049 [ACK] Seq=45 Ack=1 Win=29696 Len=0 TSval=327955241 TSecr=1126765132
> 10 1.674650 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
> 1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327955904
> TSecr=1126765132
> 11 3.060502 141.14.26.2 -> 141.14.16.23 TCP 74 [TCP Spurious
> Retransmission] 2049 → 1005 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460
> SACK_PERM=1 TSval=1126768193 TSecr=327955904 WS=512
> 12 3.060521 141.14.16.23 -> 141.14.26.2 TCP 66 [TCP Dup ACK 3#2] 1005 →
> 2049 [ACK] Seq=45 Ack=1 Win=29696 Len=0 TSval=327957289 TSecr=1126765132
> 13 3.338653 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission]
> 1005 → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=327957568
> TSecr=1126765132
> ```
>
> ``
> # tshark -r x.x
> 1 0.000000 141.14.16.23 -> 141.14.26.2 TCP 74 690 → 2049 [SYN] Seq=0
> Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=328229577 TSecr=0 WS=512
> 2 0.000039 141.14.26.2 -> 141.14.16.23 TCP 74 2049 → 690 [SYN, ACK]
> Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=1127040480
> TSecr=328229577 WS=512
> 3 0.000155 141.14.16.23 -> 141.14.26.2 TCP 66 690 → 2049 [ACK] Seq=1
> Ack=1 Win=29696 Len=0 TSval=328229577 TSecr=1127040480
> 4 0.000180 141.14.16.23 -> 141.14.26.2 NFS 110 V4 NULL Call
> 5 0.206937 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission] 690
> → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=328229784
> TSecr=1127040480
> 6 0.414925 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission] 690
> → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=328229992
> TSecr=1127040480
> 7 0.822928 141.14.16.23 -> 141.14.26.2 TCP 110 [TCP Retransmission] 690
> → 2049 [PSH, ACK] Seq=1 Ack=1 Win=29696 Len=44 TSval=328230400
> TSecr=1127040480
> 8 1.056498 141.14.26.2 -> 141.14.16.23 TCP 74 [TCP Spurious
> Retransmission] 2049 → 690 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460
> SACK_PERM=1 TSval=1127041536 TSecr=328230400 WS=512
> ```
>
> Looking at the stack traces of the nfsd process with
>
> ```
> for p in $(pgrep 'nfsd$'); do echo $p; cat /proc/$p/stack; done
> ```
>
> all but one have the trace below.
>
>
> ```
> [<ffffffff813eded7>] call_rwsem_down_write_failed+0x17/0x30
> [<ffffffff8133aa1c>] xfs_file_buffered_aio_write+0x5c/0x2d0
> [<ffffffff8133ad2e>] xfs_file_write_iter+0x9e/0x150
> [<ffffffff81196b50>] do_iter_readv_writev+0xa0/0xf0
> [<ffffffff81197d4a>] do_readv_writev+0x18a/0x230
> [<ffffffff8119803c>] vfs_writev+0x3c/0x50
> [<ffffffffa02826b5>] nfsd_vfs_write+0xc5/0x280 [nfsd]
> [<ffffffffa028e48a>] nfsd4_write+0x17a/0x1d0 [nfsd]
> [<ffffffffa02902f9>] nfsd4_proc_compound+0x369/0x5e0 [nfsd]
> [<ffffffffa027e218>] nfsd_dispatch+0xa8/0x180 [nfsd]
> [<ffffffffa01a66af>] svc_process_common+0x3ff/0x580 [sunrpc]
> [<ffffffffa01a696b>] svc_process+0x13b/0x1b0 [sunrpc]
> [<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
> [<ffffffff8107b0ba>] kthread+0xca/0xe0
> [<ffffffff81a97092>] ret_from_fork+0x22/0x30
> [<ffffffffffffffff>] 0xffffffffffffffff
> ```
>
> The one problematic one has the stack trace below.
>
> ```
> [<ffffffff811f6f6c>] iomap_write_begin+0x8c/0x120
> [<ffffffff811f758b>] iomap_zero_range_actor+0xeb/0x210 # oder
> iomap_zero_range_actor+0x90/0x210
> [<ffffffff811f77e2>] iomap_apply+0xa2/0x110
> [<ffffffff811f79b8>] iomap_zero_range+0x58/0x80
> [<ffffffff8133a38e>] xfs_zero_eof+0x4e/0xb0
> [<ffffffff8133a58d>] xfs_file_aio_write_checks+0x19d/0x1c0
> [<ffffffff8133aa39>] xfs_file_buffered_aio_write+0x79/0x2d0
> [<ffffffff8133ad2e>] xfs_file_write_iter+0x9e/0x150
> [<ffffffff81196b50>] do_iter_readv_writev+0xa0/0xf0
> [<ffffffff81197d4a>] do_readv_writev+0x18a/0x230
> [<ffffffff8119803c>] vfs_writev+0x3c/0x50
> [<ffffffffa02826b5>] nfsd_vfs_write+0xc5/0x280 [nfsd]
> [<ffffffffa028e48a>] nfsd4_write+0x17a/0x1d0 [nfsd]
> [<ffffffffa02902f9>] nfsd4_proc_compound+0x369/0x5e0 [nfsd]
> [<ffffffffa027e218>] nfsd_dispatch+0xa8/0x180 [nfsd]
> [<ffffffffa01a66af>] svc_process_common+0x3ff/0x580 [sunrpc]
> [<ffffffffa01a696b>] svc_process+0x13b/0x1b0 [sunrpc]
> [<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
> [<ffffffff8107b0ba>] kthread+0xca/0xe0
> [<ffffffff81a97092>] ret_from_fork+0x22/0x30
> [<ffffffffffffffff>] 0xffffffffffffffff
> ```
>
> Here is the corresponding lines in the source code.
>
> ```
> info line *0xffffffff811f6f6c Line 124 of "fs/iomap.c" starts at address
> 0xffffffff811f6f6c <iomap_write_begin+140> and ends at 0xffffffff811f6f70
> <iomap_write_begin+144>.
> info line *0xffffffff811f758b Line 345 of "fs/iomap.c" starts at address
> 0xffffffff811f758b <iomap_zero_range_actor+235> and ends at
> 0xffffffff811f758f <iomap_zero_range_actor+239>.
> info line *0xffffffff811f7530 Line 385 of "fs/iomap.c" starts at address
> 0xffffffff811f7530 <iomap_zero_range_actor+144> and ends at
> 0xffffffff811f7538 <iomap_zero_range_actor+152>.
> ```
>
> Here is the code.
>
> ```
> […]
> 109 static int
> 110 iomap_write_begin(struct inode *inode, loff_t pos, unsigned len,
> unsigned flags,
> 111 struct page **pagep, struct iomap *iomap)
> 112 {
> 113 pgoff_t index = pos >> PAGE_SHIFT;
> 114 struct page *page;
> 115 int status = 0;
> 116
> 117 BUG_ON(pos + len > iomap->offset + iomap->length);
> 118
> 119 if (fatal_signal_pending(current))
> 120 return -EINTR;
> 121
> 122 page = grab_cache_page_write_begin(inode->i_mapping, index,
> flags);
> 123 if (!page)
> 124 return -ENOMEM;
> 125
> 126 status = __block_write_begin_int(page, pos, len, NULL, iomap);
> 127 if (unlikely(status)) {
> 128 unlock_page(page);
> 129 put_page(page);
> 130 page = NULL;
> 131
> 132 iomap_write_failed(inode, pos, len);
> 133 }
> 134
> 135 *pagep = page;
> 136 return status;
> 137 }
> […]
> ```
>
> So it looks like insufficent memory? But the machine has 1 TB of RAM, and I
> didn’t see any suspicious running `htop`. Also it should have returned from
> with that error, shouldn’t it have?
>
>
> Kind regards,
>
> Paul
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 with NFSD and `fs/iomap.c`
2017-05-08 13:18 ` Brian Foster
@ 2017-05-09 9:05 ` Christoph Hellwig
[not found] ` <7ae18b0d-38e3-9b12-0989-ede68956ad43@molgen.mpg.de>
2017-05-10 9:08 ` Locking problems with Linux 4.9 " Paul Menzel
1 sibling, 1 reply; 15+ messages in thread
From: Christoph Hellwig @ 2017-05-09 9:05 UTC (permalink / raw)
To: Brian Foster
Cc: Paul Menzel, linux-nfs, linux-xfs, it+linux-nfs, Christoph Hellwig
On Mon, May 08, 2017 at 09:18:46AM -0400, Brian Foster wrote:
> What exactly is a NULL call? Can this be reproduced easily?
It's a sunrpc concept of a dummy procedure that does nothing but
ensures the communication works.
> It may also be interesting to enable the xfs_zero_eof() tracepoint
> (trace-cmd start -e 'xfs:xfs_zero_eof') and see what the last few
> entries are from /sys/kernel/debug/tracing/trace_pipe.
Yeah. I have a customer that uses Linux 4.9-stable with XFS and
nfsd exports in a product, so it's certainly not something that happens
too easily, but memory pressure might be a factor. I'll see if
I can figure out what happens if I inject ENOMEM in the said
spot.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 with NFSD and `fs/iomap.c`
2017-05-08 13:18 ` Brian Foster
2017-05-09 9:05 ` Christoph Hellwig
@ 2017-05-10 9:08 ` Paul Menzel
2017-05-10 17:23 ` J. Bruce Fields
1 sibling, 1 reply; 15+ messages in thread
From: Paul Menzel @ 2017-05-10 9:08 UTC (permalink / raw)
To: Brian Foster
Cc: linux-nfs, linux-xfs, it+linux-nfs, Christoph Hellwig,
J. Bruce Fields, Jeff Layton
Dear Brian,
On 05/08/17 15:18, Brian Foster wrote:
> cc Christoph, who's more familiar with nfs and wrote the iomap bits.
Thank you.
> On Sun, May 07, 2017 at 09:09:49PM +0200, Paul Menzel wrote:
>> There seems to be a regression in Linux 4.9 compared to 4.4. Maybe you have
>> an idea.
>>
>> The system used 4.4.38 without issues, and was updated to 4.9.23 on April
>> 24th. Since Friday, the NFS exports where not accessible anymore. Rebooting
>> the system into 4.9.24, 4.9.24, and 4.9.25 didn’t change anything, and the
>> system went into the some lock right away. Booting 4.4.38 fixed the issue
>> though.
>
> The buffered write path was rewritten with the iomap mechanism around
> 4.7 or so, so there's a pretty big functionality gap between 4.4 and
> 4.9.
>
>> Here is more information.
>>
>> NFS doesn’t respond to a null call.
>
> What exactly is a NULL call?
Sorry for not making that clear for non-NFS people. From *NFS Version 3
Protocol Specification* [1]:
> Procedure NULL does not do any work. It is made available to
> allow server response testing and timing.
> Can this be reproduced easily?
Unfortunately, we don’t know how to reproduce it. It seems to happen
after heavy input/output operations though.
```
$ sudo nfsstat -s
Server rpc stats:
calls badcalls badclnt badauth xdrcall
15644232 0 0 0 0
Server nfs v4:
null compound
1071 0% 15643006 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 87846 0% 42798 0% 50658
0%
create delegpurge delegreturn getattr getfh link
2805 0% 0 0% 16866 0% 8271204 21% 82924 0% 0
0%
lock lockt locku lookup lookup_root nverify
0 0% 0 0% 0 0% 64424 0% 0 0% 0
0%
open openattr open_conf open_dgrd putfh
putpubfh
53848 0% 0 0% 1081 0% 20 0% 15569041 39% 0
0%
putrootfh read readdir readlink remove rename
1072 0% 7187366 18% 2045 0% 73 0% 9116 0% 5836
0%
renew restorefh savefh secinfo setattr
setcltid
72534 0% 0 0% 5836 0% 0 0% 21817 0% 1854
0%
setcltidconf verify write rellockowner bc_ctl
bind_conn
1854 0% 0 0% 7794634 19% 0 0% 0 0% 0
0%
exchange_id create_ses destroy_ses free_stateid getdirdeleg
getdevinfo
0 0% 0 0% 0 0% 0 0% 0 0% 0
0%
getdevlist layoutcommit layoutget layoutreturn secinfononam
sequence
0 0% 0 0% 0 0% 0 0% 0 0% 0
0%
set_ssv test_stateid want_deleg destroy_clid reclaim_comp
0 0% 0 0% 0 0% 0 0% 0 0%
```
> Otherwise, it's not clear to me whether you've hit a deadlock or some
> kind of livelock. Have you checked syslog for any crash or hung task
> messages? Please also provide the hung task output (echo w >
> /proc/sysrq-trigger) once you've hit this state. It would be
> particularly interesting to see whether the iomap_zero_range() path is
> included in that output.
Please see the Linux messages in my reply to Christoph’s message.
> It may also be interesting to enable the xfs_zero_eof() tracepoint
> (trace-cmd start -e 'xfs:xfs_zero_eof') and see what the last few
> entries are from /sys/kernel/debug/tracing/trace_pipe.
I built `trace-cmd`, and did what you asked, but there are no messages.
```
$ sudo strace ~/src/trace-cmd/trace-cmd start -e 'xfs:xfs_zero_eof'
$ sudo cat /sys/kernel/tracing/events/xfs/xfs_zero_eof/enable
1
$ sudo cat /sys/kernel/debug/tracing/tracing_on
1
$ sudo cat /sys/kernel/debug/tracing/trace_pipe
```
Kind regards,
Paul
[1] https://www.ietf.org/rfc/rfc1813.txt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 with NFSD and `fs/iomap.c`
2017-05-10 9:08 ` Locking problems with Linux 4.9 " Paul Menzel
@ 2017-05-10 17:23 ` J. Bruce Fields
0 siblings, 0 replies; 15+ messages in thread
From: J. Bruce Fields @ 2017-05-10 17:23 UTC (permalink / raw)
To: Paul Menzel
Cc: Brian Foster, linux-nfs, linux-xfs, it+linux-nfs,
Christoph Hellwig, Jeff Layton
On Wed, May 10, 2017 at 11:08:52AM +0200, Paul Menzel wrote:
> On 05/08/17 15:18, Brian Foster wrote:
> >>NFS doesn’t respond to a null call.
> >
> >What exactly is a NULL call?
>
> Sorry for not making that clear for non-NFS people. From *NFS
> Version 3 Protocol Specification* [1]:
>
> >Procedure NULL does not do any work. It is made available to
> >allow server response testing and timing.
NFSD has a fixed number of threads for processing requests, so if one of
them hangs in the filesystem while holding a lock, all of them are
likely to eventually end up waiting for that lock, and there will be
none left even to answer NULL requests. So this is a pretty normal
symptom of a deadlock or similar problem.
--b.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
[not found] ` <20170510171757.GA10534@localhost.localdomain>
@ 2017-06-27 11:59 ` Paul Menzel
2017-06-28 16:41 ` Christoph Hellwig
2017-08-01 17:49 ` Paul Menzel
0 siblings, 2 replies; 15+ messages in thread
From: Paul Menzel @ 2017-06-27 11:59 UTC (permalink / raw)
To: Brian Foster
Cc: Christoph Hellwig, it+linux-nfs, linux-nfs, linux-xfs,
J. Bruce Fields, Jeff Layton
[-- Attachment #1: Type: text/plain, Size: 901 bytes --]
Dear Brian, dear Christoph,
Just a small update that we were hit by the problem on a different
machine (identical model) with Linux 4.9.32 and the exact same symptoms.
```
$ sudo cat /proc/2085/stack
[<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
[<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
[<ffffffff811f9a82>] iomap_apply+0xa2/0x110
[<ffffffff811f9c58>] iomap_zero_range+0x58/0x80
[<ffffffff8133c7de>] xfs_zero_eof+0x4e/0xb0
[<ffffffff8133c9dd>] xfs_file_aio_write_checks+0x19d/0x1c0
[<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffffffffff>] 0xffffffffffffffff
```
We haven’t had time to set up a test system yet to analyze that further.
Kind regards,
Paul
[-- Attachment #2: 20170627–linux_4.9.32–nfsd_locking.txt --]
[-- Type: text/plain, Size: 52848 bytes --]
2033
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2034
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2035
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2036
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2037
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2038
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2039
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2040
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2041
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2042
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2043
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2044
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2045
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2046
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2047
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2048
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2049
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2050
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2051
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2052
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2053
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2054
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2055
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2056
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2057
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2058
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2060
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2061
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2062
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2063
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2064
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2066
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2067
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2068
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2069
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2070
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2071
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2073
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2074
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2075
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2076
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2077
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2078
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2079
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2080
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2081
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2082
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2083
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2084
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2085
[<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
[<ffffffff811f97d0>] iomap_zero_range_actor+0x90/0x210
[<ffffffff811f9a82>] iomap_apply+0xa2/0x110
[<ffffffff811f9c58>] iomap_zero_range+0x58/0x80
[<ffffffff8133c7de>] xfs_zero_eof+0x4e/0xb0
[<ffffffff8133c9dd>] xfs_file_aio_write_checks+0x19d/0x1c0
[<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2086
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2087
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2088
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2089
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2090
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2091
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2092
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2093
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2095
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2096
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2097
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2098
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2099
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
2100
[<ffffffff813f0a97>] call_rwsem_down_write_failed+0x17/0x30
[<ffffffff8133ce6c>] xfs_file_buffered_aio_write+0x5c/0x2d0
[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
[<ffffffffa0282705>] nfsd_vfs_write+0xc5/0x280 [nfsd]
[<ffffffffa028e4ea>] nfsd4_write+0x17a/0x1d0 [nfsd]
[<ffffffffa029034e>] nfsd4_proc_compound+0x35e/0x5d0 [nfsd]
[<ffffffffa027e21d>] nfsd_dispatch+0xad/0x1d0 [nfsd]
[<ffffffffa00a26af>] svc_process_common+0x3ff/0x580 [sunrpc]
[<ffffffffa00a296b>] svc_process+0x13b/0x1b0 [sunrpc]
[<ffffffffa027dc7d>] nfsd+0xed/0x160 [nfsd]
[<ffffffff8107d117>] kthread+0xd7/0xf0
[<ffffffff81a99d92>] ret_from_fork+0x22/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-06-27 11:59 ` Locking problems with Linux 4.9 and 4.11 " Paul Menzel
@ 2017-06-28 16:41 ` Christoph Hellwig
2017-08-01 17:49 ` Paul Menzel
1 sibling, 0 replies; 15+ messages in thread
From: Christoph Hellwig @ 2017-06-28 16:41 UTC (permalink / raw)
To: Paul Menzel
Cc: Brian Foster, Christoph Hellwig, it+linux-nfs, linux-nfs,
linux-xfs, J. Bruce Fields, Jeff Layton
On Tue, Jun 27, 2017 at 01:59:46PM +0200, Paul Menzel wrote:
> Dear Brian, dear Christoph,
>
>
> Just a small update that we were hit by the problem on a different machine
> (identical model) with Linux 4.9.32 and the exact same symptoms.
Thanks for the update. I have to admit this issue completely dropped
off my table, but I'll try to get back to it in the next days.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-06-27 11:59 ` Locking problems with Linux 4.9 and 4.11 " Paul Menzel
2017-06-28 16:41 ` Christoph Hellwig
@ 2017-08-01 17:49 ` Paul Menzel
2017-08-01 22:51 ` Dave Chinner
1 sibling, 1 reply; 15+ messages in thread
From: Paul Menzel @ 2017-08-01 17:49 UTC (permalink / raw)
To: Brian Foster, Christoph Hellwig
Cc: it+linux-nfs, linux-nfs, linux-xfs, J. Bruce Fields, Jeff Layton
Dear Brian, dear Christoph,
On 06/27/17 13:59, Paul Menzel wrote:
> Just a small update that we were hit by the problem on a different
> machine (identical model) with Linux 4.9.32 and the exact same symptoms.
>
> ```
> $ sudo cat /proc/2085/stack
> [<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
> [<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
> [<ffffffff811f9a82>] iomap_apply+0xa2/0x110
> [<ffffffff811f9c58>] iomap_zero_range+0x58/0x80
> [<ffffffff8133c7de>] xfs_zero_eof+0x4e/0xb0
> [<ffffffff8133c9dd>] xfs_file_aio_write_checks+0x19d/0x1c0
> [<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
> [<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
> [<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
> [<ffffffff81199fba>] do_readv_writev+0x18a/0x230
> [<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
> [<ffffffffffffffff>] 0xffffffffffffffff
> ```
>
> We haven’t had time to set up a test system yet to analyze that further.
Today, two systems with Linux 4.9.23 exhibited the problem of `top`
showing that `nfsd` is at 100 %. Restarting one machine into Linux
*4.9.38* showed the same problem. One of them with a 1 GBit/s network
device got traffic from a 10 GBit/s system, so the connection was saturated.
But looking at the current processes, process with ID 829 does not show
that CPU usage value. (I don’t remember what the behavior during the
other incidents on other machines was.)
This is from 4.9.38.
The stack trace of the process with ID 857 is below.
```
$ sudo cat /proc/857/stack
[<ffffffff811f94fc>] iomap_write_begin+0x6c/0x120
[<ffffffffffffffff>] 0xffffffffffffffff
```
Then I executed Brian’s commands.
```
$ trace-cmd start -p function -l iomap* -P <pid>
$ cat /sys/kernel/debug/tracing/trace_pipe
```
This produced output.
```
nfsd-857 [005] .... 426.650413: iomap_write_end
<-iomap_zero_range_actor
nfsd-857 [005] .... 426.650414: iomap_write_begin
<-iomap_zero_range_actor
CPU:5 [LOST 115621695 EVENTS]
nfsd-857 [005] .... 453.070439: iomap_write_begin
<-iomap_zero_range_actor
nfsd-857 [005] .... 453.070440: iomap_write_end
<-iomap_zero_range_actor
```
This continues endlessly.
Kind regards,
Paul
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-08-01 17:49 ` Paul Menzel
@ 2017-08-01 22:51 ` Dave Chinner
2017-08-10 14:11 ` Paul Menzel
0 siblings, 1 reply; 15+ messages in thread
From: Dave Chinner @ 2017-08-01 22:51 UTC (permalink / raw)
To: Paul Menzel
Cc: Brian Foster, Christoph Hellwig, it+linux-nfs, linux-nfs,
linux-xfs, J. Bruce Fields, Jeff Layton
On Tue, Aug 01, 2017 at 07:49:50PM +0200, Paul Menzel wrote:
> Dear Brian, dear Christoph,
>
>
> On 06/27/17 13:59, Paul Menzel wrote:
>
> >Just a small update that we were hit by the problem on a different
> >machine (identical model) with Linux 4.9.32 and the exact same
> >symptoms.
> >
> >```
> >$ sudo cat /proc/2085/stack
> >[<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
> >[<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
> >[<ffffffff811f9a82>] iomap_apply+0xa2/0x110
> >[<ffffffff811f9c58>] iomap_zero_range+0x58/0x80
> >[<ffffffff8133c7de>] xfs_zero_eof+0x4e/0xb0
> >[<ffffffff8133c9dd>] xfs_file_aio_write_checks+0x19d/0x1c0
> >[<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
> >[<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
> >[<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
> >[<ffffffff81199fba>] do_readv_writev+0x18a/0x230
> >[<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
> >[<ffffffffffffffff>] 0xffffffffffffffff
> >```
> >
> >We haven’t had time to set up a test system yet to analyze that further.
>
> Today, two systems with Linux 4.9.23 exhibited the problem of `top`
> showing that `nfsd` is at 100 %. Restarting one machine into Linux
> *4.9.38* showed the same problem. One of them with a 1 GBit/s
> network device got traffic from a 10 GBit/s system, so the
> connection was saturated.
So the question is this: is there IO being issued here, is the page
cache growing, or is it in a tight loop doing nothing? Details of
your hardware, XFS config and NFS server config is kinda important
here, too.
For example, if the NFS server IO patterns trigger a large
speculative delayed allocation, then the client does a write at the
end of the speculative delalloc range, we will zero the entire
speculative delalloc range. That could be several GB of zeros that
need to be written here. It's sub-optimal, yes, and but large
zeroing is rare enough that we haven't needed to optimise it by
allocating unwritten extents instead. It would be really handy to
know what application the NFS client is running as that might give
insight into the trigger behaviour and whether you are hitting this
case.
Also, if the NFS client is only writing to one file, then all the
other writes that are on the wire will end up being serviced by nfsd
threads that then block waiting for the inode lock. If the client
issues more writes on the wire thant he NFS server has worker
threads, the client side write will starve the NFS server of
worker threads until the zeroing completes. This is the behaviour
you are seeing - it's a common server side config error that's been
known for at least 15 years...
FWIW, it used to be that a linux NFS client could have 16 concurrent
outstanding NFS RPCs to a server at a time - I don't know if that
limit still exists or whether it's been increased. However, the
typical knfsd default is (still) only 8 worker threads, meaning a
single client and server using default configs can cause the above
server DOS issue. e.g on a bleeding edge debian distro install:
$ head -2 /etc/default/nfs-kernel-server
# Number of servers to start up
RPCNFSDCOUNT=8
$
So, yeah, distros still only configure the nfs server with 8 worker
thread by default. If it's a dedicated NFS server, then I'd be using
somewhere around 64 NFSD threads *per CPU* as a starting point for
the server config...
At minimum, you need to ensure that the NFS server has at least
double the number of server threads as the largest client side
concurrent RPC count so that a single client can't DOS the NFS
server with a single blocked write stream.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-08-01 22:51 ` Dave Chinner
@ 2017-08-10 14:11 ` Paul Menzel
0 siblings, 0 replies; 15+ messages in thread
From: Paul Menzel @ 2017-08-10 14:11 UTC (permalink / raw)
To: Dave Chinner; +Cc: it+linux-nfs, Brian Foster, Christoph Hellwig
Dear Dave,
On 08/02/17 00:51, Dave Chinner wrote:
> On Tue, Aug 01, 2017 at 07:49:50PM +0200, Paul Menzel wrote:
>> On 06/27/17 13:59, Paul Menzel wrote:
>>
>>> Just a small update that we were hit by the problem on a different
>>> machine (identical model) with Linux 4.9.32 and the exact same
>>> symptoms.
>>>
>>> ```
>>> $ sudo cat /proc/2085/stack
>>> [<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
>>> [<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
>>> [<ffffffff811f9a82>] iomap_apply+0xa2/0x110
>>> [<ffffffff811f9c58>] iomap_zero_range+0x58/0x80
>>> [<ffffffff8133c7de>] xfs_zero_eof+0x4e/0xb0
>>> [<ffffffff8133c9dd>] xfs_file_aio_write_checks+0x19d/0x1c0
>>> [<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
>>> [<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
>>> [<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
>>> [<ffffffff81199fba>] do_readv_writev+0x18a/0x230
>>> [<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
>>> [<ffffffffffffffff>] 0xffffffffffffffff
>>> ```
>>>
>>> We haven’t had time to set up a test system yet to analyze that further.
>>
>> Today, two systems with Linux 4.9.23 exhibited the problem of `top`
>> showing that `nfsd` is at 100 %. Restarting one machine into Linux
>> *4.9.38* showed the same problem. One of them with a 1 GBit/s
>> network device got traffic from a 10 GBit/s system, so the
>> connection was saturated.
>
> So the question is this: is there IO being issued here, is the page
> cache growing, or is it in a tight loop doing nothing? Details of
> your hardware, XFS config and NFS server config is kinda important
> here, too.
Could you please guide me, where I can get the information you request?
The hardware ranges from slow 12 thread systems with 96 GB RAM to 80
thread 1 TB RAM machines. Often big files (up to 100 GB) are written.
> For example, if the NFS server IO patterns trigger a large
> speculative delayed allocation, then the client does a write at the
> end of the speculative delalloc range, we will zero the entire
> speculative delalloc range. That could be several GB of zeros that
> need to be written here. It's sub-optimal, yes, and but large
> zeroing is rare enough that we haven't needed to optimise it by
> allocating unwritten extents instead. It would be really handy to
> know what application the NFS client is running as that might give
> insight into the trigger behaviour and whether you are hitting this
> case.
It ranges from simple `cp` to scripts writing FASTQ files with
biological sequences in it.
> Also, if the NFS client is only writing to one file, then all the
> other writes that are on the wire will end up being serviced by nfsd
> threads that then block waiting for the inode lock. If the client
> issues more writes on the wire than the NFS server has worker
> threads, the client side write will starve the NFS server of
> worker threads until the zeroing completes. This is the behaviour
> you are seeing - it's a common server side config error that's been
> known for at least 15 years...
>
> FWIW, it used to be that a linux NFS client could have 16 concurrent
> outstanding NFS RPCs to a server at a time - I don't know if that
> limit still exists or whether it's been increased. However, the
> typical knfsd default is (still) only 8 worker threads, meaning a
> single client and server using default configs can cause the above
> server DOS issue. e.g on a bleeding edge debian distro install:
>
> $ head -2 /etc/default/nfs-kernel-server
> # Number of servers to start up
> RPCNFSDCOUNT=8
> $
>
> So, yeah, distros still only configure the nfs server with 8 worker
> thread by default. If it's a dedicated NFS server, then I'd be using
> somewhere around 64 NFSD threads *per CPU* as a starting point for
> the server config...
>
> At minimum, you need to ensure that the NFS server has at least
> double the number of server threads as the largest client side
> concurrent RPC count so that a single client can't DOS the NFS
> server with a single blocked write stream.
That’s not the issue here. It’s started with 64 threads here. Also this
doesn’t explain, why it works with the 4.4 series.
The directory cannot be accessed at all. `ls /mounted/path` just hangs
on remote systems.
Kind regards,
Paul
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
@ 2017-08-10 14:11 ` Paul Menzel
0 siblings, 0 replies; 15+ messages in thread
From: Paul Menzel @ 2017-08-10 14:11 UTC (permalink / raw)
To: Dave Chinner
Cc: it+linux-nfs, Brian Foster, Christoph Hellwig, it+linux-nfs,
linux-nfs, linux-xfs, J. Bruce Fields, Jeff Layton
Dear Dave,
On 08/02/17 00:51, Dave Chinner wrote:
> On Tue, Aug 01, 2017 at 07:49:50PM +0200, Paul Menzel wrote:
>> On 06/27/17 13:59, Paul Menzel wrote:
>>
>>> Just a small update that we were hit by the problem on a different
>>> machine (identical model) with Linux 4.9.32 and the exact same
>>> symptoms.
>>>
>>> ```
>>> $ sudo cat /proc/2085/stack
>>> [<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
>>> [<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
>>> [<ffffffff811f9a82>] iomap_apply+0xa2/0x110
>>> [<ffffffff811f9c58>] iomap_zero_range+0x58/0x80
>>> [<ffffffff8133c7de>] xfs_zero_eof+0x4e/0xb0
>>> [<ffffffff8133c9dd>] xfs_file_aio_write_checks+0x19d/0x1c0
>>> [<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
>>> [<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
>>> [<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
>>> [<ffffffff81199fba>] do_readv_writev+0x18a/0x230
>>> [<ffffffff8119a2ac>] vfs_writev+0x3c/0x50
>>> [<ffffffffffffffff>] 0xffffffffffffffff
>>> ```
>>>
>>> We haven’t had time to set up a test system yet to analyze that further.
>>
>> Today, two systems with Linux 4.9.23 exhibited the problem of `top`
>> showing that `nfsd` is at 100 %. Restarting one machine into Linux
>> *4.9.38* showed the same problem. One of them with a 1 GBit/s
>> network device got traffic from a 10 GBit/s system, so the
>> connection was saturated.
>
> So the question is this: is there IO being issued here, is the page
> cache growing, or is it in a tight loop doing nothing? Details of
> your hardware, XFS config and NFS server config is kinda important
> here, too.
Could you please guide me, where I can get the information you request?
The hardware ranges from slow 12 thread systems with 96 GB RAM to 80
thread 1 TB RAM machines. Often big files (up to 100 GB) are written.
> For example, if the NFS server IO patterns trigger a large
> speculative delayed allocation, then the client does a write at the
> end of the speculative delalloc range, we will zero the entire
> speculative delalloc range. That could be several GB of zeros that
> need to be written here. It's sub-optimal, yes, and but large
> zeroing is rare enough that we haven't needed to optimise it by
> allocating unwritten extents instead. It would be really handy to
> know what application the NFS client is running as that might give
> insight into the trigger behaviour and whether you are hitting this
> case.
It ranges from simple `cp` to scripts writing FASTQ files with
biological sequences in it.
> Also, if the NFS client is only writing to one file, then all the
> other writes that are on the wire will end up being serviced by nfsd
> threads that then block waiting for the inode lock. If the client
> issues more writes on the wire than the NFS server has worker
> threads, the client side write will starve the NFS server of
> worker threads until the zeroing completes. This is the behaviour
> you are seeing - it's a common server side config error that's been
> known for at least 15 years...
>
> FWIW, it used to be that a linux NFS client could have 16 concurrent
> outstanding NFS RPCs to a server at a time - I don't know if that
> limit still exists or whether it's been increased. However, the
> typical knfsd default is (still) only 8 worker threads, meaning a
> single client and server using default configs can cause the above
> server DOS issue. e.g on a bleeding edge debian distro install:
>
> $ head -2 /etc/default/nfs-kernel-server
> # Number of servers to start up
> RPCNFSDCOUNT=8
> $
>
> So, yeah, distros still only configure the nfs server with 8 worker
> thread by default. If it's a dedicated NFS server, then I'd be using
> somewhere around 64 NFSD threads *per CPU* as a starting point for
> the server config...
>
> At minimum, you need to ensure that the NFS server has at least
> double the number of server threads as the largest client side
> concurrent RPC count so that a single client can't DOS the NFS
> server with a single blocked write stream.
That’s not the issue here. It’s started with 64 threads here. Also this
doesn’t explain, why it works with the 4.4 series.
The directory cannot be accessed at all. `ls /mounted/path` just hangs
on remote systems.
Kind regards,
Paul
^ permalink raw reply [flat|nested] 15+ messages in thread
* AW: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-08-10 14:11 ` Paul Menzel
@ 2017-08-10 19:54 ` Markus Stockhausen
-1 siblings, 0 replies; 15+ messages in thread
From: Markus Stockhausen @ 2017-08-10 19:54 UTC (permalink / raw)
To: 'Paul Menzel', Dave Chinner
Cc: it+linux-nfs, Brian Foster, Christoph Hellwig
[-- Attachment #1: Type: text/plain, Size: 5173 bytes --]
Hi Paul et al,
> Dear Dave,
>
>
> On 08/02/17 00:51, Dave Chinner wrote:
> > On Tue, Aug 01, 2017 at 07:49:50PM +0200, Paul Menzel wrote:
>
> >> On 06/27/17 13:59, Paul Menzel wrote:
> >>
> >>> Just a small update that we were hit by the problem on a different
> >>> machine (identical model) with Linux 4.9.32 and the exact same
> >>> symptoms.
> >>>
> >>> ```
> >>> $ sudo cat /proc/2085/stack
> >>> [<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
> >>> [<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
> >>> [<ffffffff811f9a82>] iomap_apply+0xa2/0x110 [<ffffffff811f9c58>]
> >>> iomap_zero_range+0x58/0x80 [<ffffffff8133c7de>]
> >>> xfs_zero_eof+0x4e/0xb0 [<ffffffff8133c9dd>]
> >>> xfs_file_aio_write_checks+0x19d/0x1c0
> >>> [<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
> >>> [<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
> >>> [<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
> >>> [<ffffffff81199fba>] do_readv_writev+0x18a/0x230
> >>> [<ffffffff8119a2ac>] vfs_writev+0x3c/0x50 [<ffffffffffffffff>]
> >>> 0xffffffffffffffff ```
> >>>
> >>> We haven’t had time to set up a test system yet to analyze that further.
> >>
> >> Today, two systems with Linux 4.9.23 exhibited the problem of `top`
> >> showing that `nfsd` is at 100 %. Restarting one machine into Linux
> >> *4.9.38* showed the same problem. One of them with a 1 GBit/s network
> >> device got traffic from a 10 GBit/s system, so the connection was
> >> saturated.
> >
> > So the question is this: is there IO being issued here, is the page
> > cache growing, or is it in a tight loop doing nothing? Details of your
> > hardware, XFS config and NFS server config is kinda important here,
> > too.
Looking at 64 bit input for variable count of
iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count,
void *data, struct iomap *iomap)
and 32 bit internal variables
unsigned offset, bytes;
culprit could be
bytes = min_t(unsigned, PAGE_SIZE - offset, count);
Lets say you are trying to zero multiple of 4GB chunks. With bytes
evaluated towards 0 this will hit an endless loop within that iomap
function. That might explain your observation. If that is right a bugfix
would qualify for stable 4.8+
Best regards.
Markus
> Could you please guide me, where I can get the information you request?
>
> The hardware ranges from slow 12 thread systems with 96 GB RAM to 80 thread 1 TB RAM machines. Often big files (up to 100 GB) are written.
>
> > For example, if the NFS server IO patterns trigger a large speculative
> > delayed allocation, then the client does a write at the end of the
> > speculative delalloc range, we will zero the entire speculative
> > delalloc range. That could be several GB of zeros that need to be
> > written here. It's sub-optimal, yes, and but large zeroing is rare
> > enough that we haven't needed to optimise it by allocating unwritten
> > extents instead. It would be really handy to know what application
> > the NFS client is running as that might give insight into the trigger
> > behaviour and whether you are hitting this case.
>
> It ranges from simple `cp` to scripts writing FASTQ files with biological sequences in it.
>
> > > Also, if the NFS client is only writing to one file, then all the
> > other writes that are on the wire will end up being serviced by nfsd
> > threads that then block waiting for the inode lock. If the client
> > issues more writes on the wire than the NFS server has worker threads,
> > the client side write will starve the NFS server of worker threads
> > until the zeroing completes. This is the behaviour you are seeing -
> > it's a common server side config error that's been known for at least
> > 15 years...
> >
> > FWIW, it used to be that a linux NFS client could have 16 concurrent
> > outstanding NFS RPCs to a server at a time - I don't know if that
> > limit still exists or whether it's been increased. However, the
> > typical knfsd default is (still) only 8 worker threads, meaning a
> > single client and server using default configs can cause the above
> > server DOS issue. e.g on a bleeding edge debian distro install:
> >
> > $ head -2 /etc/default/nfs-kernel-server # Number of servers to start
> > up
> > RPCNFSDCOUNT=8
> > $
> >
> > So, yeah, distros still only configure the nfs server with 8 worker
> > thread by default. If it's a dedicated NFS server, then I'd be using
> > somewhere around 64 NFSD threads *per CPU* as a starting point for the
> > server config...
> >
> > At minimum, you need to ensure that the NFS server has at least double
> > the number of server threads as the largest client side concurrent RPC
> > count so that a single client can't DOS the NFS server with a single
> > blocked write stream.
>
> That’s not the issue here. It’s started with 64 threads here. Also this doesn’t explain, why it works with the 4.4 series.
>
> The directory cannot be accessed at all. `ls /mounted/path` just hangs on remote systems.
>
>
> Kind regards,
>
> Paul
[-- Attachment #2: InterScan_Disclaimer.txt --]
[-- Type: text/plain, Size: 1650 bytes --]
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.
Ãber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.
Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln
Vorstand:
Kadir Akin
Dr. Michael Höhnerbach
Vorsitzender des Aufsichtsrates:
Hans Kristian Langva
Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.
Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln
executive board:
Kadir Akin
Dr. Michael Höhnerbach
President of the supervisory board:
Hans Kristian Langva
Registry office: district court Cologne
Register number: HRB 52 497
****************************************************************************
^ permalink raw reply [flat|nested] 15+ messages in thread
* AW: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
@ 2017-08-10 19:54 ` Markus Stockhausen
0 siblings, 0 replies; 15+ messages in thread
From: Markus Stockhausen @ 2017-08-10 19:54 UTC (permalink / raw)
To: 'Paul Menzel', Dave Chinner
Cc: it+linux-nfs, Brian Foster, Christoph Hellwig, it+linux-nfs,
linux-nfs, linux-xfs, J. Bruce Fields, Jeff Layton
[-- Attachment #1: Type: text/plain, Size: 5173 bytes --]
Hi Paul et al,
> Dear Dave,
>
>
> On 08/02/17 00:51, Dave Chinner wrote:
> > On Tue, Aug 01, 2017 at 07:49:50PM +0200, Paul Menzel wrote:
>
> >> On 06/27/17 13:59, Paul Menzel wrote:
> >>
> >>> Just a small update that we were hit by the problem on a different
> >>> machine (identical model) with Linux 4.9.32 and the exact same
> >>> symptoms.
> >>>
> >>> ```
> >>> $ sudo cat /proc/2085/stack
> >>> [<ffffffff811f920c>] iomap_write_begin+0x8c/0x120
> >>> [<ffffffff811f982b>] iomap_zero_range_actor+0xeb/0x210
> >>> [<ffffffff811f9a82>] iomap_apply+0xa2/0x110 [<ffffffff811f9c58>]
> >>> iomap_zero_range+0x58/0x80 [<ffffffff8133c7de>]
> >>> xfs_zero_eof+0x4e/0xb0 [<ffffffff8133c9dd>]
> >>> xfs_file_aio_write_checks+0x19d/0x1c0
> >>> [<ffffffff8133ce89>] xfs_file_buffered_aio_write+0x79/0x2d0
> >>> [<ffffffff8133d17e>] xfs_file_write_iter+0x9e/0x150
> >>> [<ffffffff81198dc0>] do_iter_readv_writev+0xa0/0xf0
> >>> [<ffffffff81199fba>] do_readv_writev+0x18a/0x230
> >>> [<ffffffff8119a2ac>] vfs_writev+0x3c/0x50 [<ffffffffffffffff>]
> >>> 0xffffffffffffffff ```
> >>>
> >>> We haven’t had time to set up a test system yet to analyze that further.
> >>
> >> Today, two systems with Linux 4.9.23 exhibited the problem of `top`
> >> showing that `nfsd` is at 100 %. Restarting one machine into Linux
> >> *4.9.38* showed the same problem. One of them with a 1 GBit/s network
> >> device got traffic from a 10 GBit/s system, so the connection was
> >> saturated.
> >
> > So the question is this: is there IO being issued here, is the page
> > cache growing, or is it in a tight loop doing nothing? Details of your
> > hardware, XFS config and NFS server config is kinda important here,
> > too.
Looking at 64 bit input for variable count of
iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count,
void *data, struct iomap *iomap)
and 32 bit internal variables
unsigned offset, bytes;
culprit could be
bytes = min_t(unsigned, PAGE_SIZE - offset, count);
Lets say you are trying to zero multiple of 4GB chunks. With bytes
evaluated towards 0 this will hit an endless loop within that iomap
function. That might explain your observation. If that is right a bugfix
would qualify for stable 4.8+
Best regards.
Markus
> Could you please guide me, where I can get the information you request?
>
> The hardware ranges from slow 12 thread systems with 96 GB RAM to 80 thread 1 TB RAM machines. Often big files (up to 100 GB) are written.
>
> > For example, if the NFS server IO patterns trigger a large speculative
> > delayed allocation, then the client does a write at the end of the
> > speculative delalloc range, we will zero the entire speculative
> > delalloc range. That could be several GB of zeros that need to be
> > written here. It's sub-optimal, yes, and but large zeroing is rare
> > enough that we haven't needed to optimise it by allocating unwritten
> > extents instead. It would be really handy to know what application
> > the NFS client is running as that might give insight into the trigger
> > behaviour and whether you are hitting this case.
>
> It ranges from simple `cp` to scripts writing FASTQ files with biological sequences in it.
>
> > > Also, if the NFS client is only writing to one file, then all the
> > other writes that are on the wire will end up being serviced by nfsd
> > threads that then block waiting for the inode lock. If the client
> > issues more writes on the wire than the NFS server has worker threads,
> > the client side write will starve the NFS server of worker threads
> > until the zeroing completes. This is the behaviour you are seeing -
> > it's a common server side config error that's been known for at least
> > 15 years...
> >
> > FWIW, it used to be that a linux NFS client could have 16 concurrent
> > outstanding NFS RPCs to a server at a time - I don't know if that
> > limit still exists or whether it's been increased. However, the
> > typical knfsd default is (still) only 8 worker threads, meaning a
> > single client and server using default configs can cause the above
> > server DOS issue. e.g on a bleeding edge debian distro install:
> >
> > $ head -2 /etc/default/nfs-kernel-server # Number of servers to start
> > up
> > RPCNFSDCOUNT=8
> > $
> >
> > So, yeah, distros still only configure the nfs server with 8 worker
> > thread by default. If it's a dedicated NFS server, then I'd be using
> > somewhere around 64 NFSD threads *per CPU* as a starting point for the
> > server config...
> >
> > At minimum, you need to ensure that the NFS server has at least double
> > the number of server threads as the largest client side concurrent RPC
> > count so that a single client can't DOS the NFS server with a single
> > blocked write stream.
>
> That’s not the issue here. It’s started with 64 threads here. Also this doesn’t explain, why it works with the 4.4 series.
>
> The directory cannot be accessed at all. `ls /mounted/path` just hangs on remote systems.
>
>
> Kind regards,
>
> Paul
[-- Attachment #2: InterScan_Disclaimer.txt --]
[-- Type: text/plain, Size: 1650 bytes --]
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.
Ãber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.
Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln
Vorstand:
Kadir Akin
Dr. Michael Höhnerbach
Vorsitzender des Aufsichtsrates:
Hans Kristian Langva
Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.
Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln
executive board:
Kadir Akin
Dr. Michael Höhnerbach
President of the supervisory board:
Hans Kristian Langva
Registry office: district court Cologne
Register number: HRB 52 497
****************************************************************************
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: AW: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-08-10 19:54 ` Markus Stockhausen
(?)
@ 2017-08-11 10:15 ` Christoph Hellwig
2017-08-11 15:14 ` Paul Menzel
-1 siblings, 1 reply; 15+ messages in thread
From: Christoph Hellwig @ 2017-08-11 10:15 UTC (permalink / raw)
To: Markus Stockhausen
Cc: 'Paul Menzel',
Dave Chinner, it+linux-nfs, Brian Foster, Christoph Hellwig,
linux-nfs, linux-xfs, J. Bruce Fields, Jeff Layton
On Thu, Aug 10, 2017 at 07:54:51PM +0000, Markus Stockhausen wrote:
> Lets say you are trying to zero multiple of 4GB chunks. With bytes
> evaluated towards 0 this will hit an endless loop within that iomap
> function. That might explain your observation. If that is right a bugfix
> would qualify for stable 4.8+
Yes, it seems like min_t casts arguments 2 and 3 to the type in argument
1, which could lead to incorrect truncation.
Paul, please try the patch below:
diff --git a/fs/iomap.c b/fs/iomap.c
index 039266128b7f..59cc98ad7577 100644
--- a/fs/iomap.c
+++ b/fs/iomap.c
@@ -278,7 +278,7 @@ iomap_dirty_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
unsigned long bytes; /* Bytes to write to page */
offset = (pos & (PAGE_SIZE - 1));
- bytes = min_t(unsigned long, PAGE_SIZE - offset, length);
+ bytes = min_t(loff_t, PAGE_SIZE - offset, length);
rpage = __iomap_read_page(inode, pos);
if (IS_ERR(rpage))
@@ -373,7 +373,7 @@ iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count,
unsigned offset, bytes;
offset = pos & (PAGE_SIZE - 1); /* Within page */
- bytes = min_t(unsigned, PAGE_SIZE - offset, count);
+ bytes = min_t(loff_t, PAGE_SIZE - offset, count);
if (IS_DAX(inode))
status = iomap_dax_zero(pos, offset, bytes, iomap);
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: Locking problems with Linux 4.9 and 4.11 with NFSD and `fs/iomap.c`
2017-08-11 10:15 ` Christoph Hellwig
@ 2017-08-11 15:14 ` Paul Menzel
0 siblings, 0 replies; 15+ messages in thread
From: Paul Menzel @ 2017-08-11 15:14 UTC (permalink / raw)
To: Christoph Hellwig, Markus Stockhausen
Cc: Dave Chinner, it+linux-nfs, Brian Foster, linux-nfs, linux-xfs,
J. Bruce Fields, Jeff Layton
Dear Christoph, dear Markus,
On 08/11/17 12:15, Christoph Hellwig wrote:
> On Thu, Aug 10, 2017 at 07:54:51PM +0000, Markus Stockhausen wrote:
>> Lets say you are trying to zero multiple of 4GB chunks. With bytes
>> evaluated towards 0 this will hit an endless loop within that iomap
>> function. That might explain your observation. If that is right a bugfix
>> would qualify for stable 4.8+
>
> Yes, it seems like min_t casts arguments 2 and 3 to the type in argument
> 1, which could lead to incorrect truncation.
>
> Paul, please try the patch below:
>
> diff --git a/fs/iomap.c b/fs/iomap.c
> index 039266128b7f..59cc98ad7577 100644
> --- a/fs/iomap.c
> +++ b/fs/iomap.c
> @@ -278,7 +278,7 @@ iomap_dirty_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
> unsigned long bytes; /* Bytes to write to page */
>
> offset = (pos & (PAGE_SIZE - 1));
> - bytes = min_t(unsigned long, PAGE_SIZE - offset, length);
> + bytes = min_t(loff_t, PAGE_SIZE - offset, length);
>
> rpage = __iomap_read_page(inode, pos);
> if (IS_ERR(rpage))
> @@ -373,7 +373,7 @@ iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count,
> unsigned offset, bytes;
>
> offset = pos & (PAGE_SIZE - 1); /* Within page */
> - bytes = min_t(unsigned, PAGE_SIZE - offset, count);
> + bytes = min_t(loff_t, PAGE_SIZE - offset, count);
>
> if (IS_DAX(inode))
> status = iomap_dax_zero(pos, offset, bytes, iomap);
I applied this on top of Linux 4.9.41. Even when writing 40 100 GB in
parallel on an NFS exported directory from different systems, and
keeping the load high on the system, the NFS exported directory was
always accessible from all hosts.
Markus, thank you very much for looking into this and spotting the bug.
A bug thank you to all people helping to analyze this issue.
I’ll keep you posted, but until know.
Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>
Kind regards,
Paul
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2017-08-11 15:14 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-07 19:09 Locking problems with Linux 4.9 with NFSD and `fs/iomap.c` Paul Menzel
2017-05-08 13:18 ` Brian Foster
2017-05-09 9:05 ` Christoph Hellwig
[not found] ` <7ae18b0d-38e3-9b12-0989-ede68956ad43@molgen.mpg.de>
[not found] ` <358037e8-6784-ebca-9fbb-ec7eef3977d6@molgen.mpg.de>
[not found] ` <20170510171757.GA10534@localhost.localdomain>
2017-06-27 11:59 ` Locking problems with Linux 4.9 and 4.11 " Paul Menzel
2017-06-28 16:41 ` Christoph Hellwig
2017-08-01 17:49 ` Paul Menzel
2017-08-01 22:51 ` Dave Chinner
2017-08-10 14:11 ` Paul Menzel
2017-08-10 14:11 ` Paul Menzel
2017-08-10 19:54 ` AW: " Markus Stockhausen
2017-08-10 19:54 ` Markus Stockhausen
2017-08-11 10:15 ` Christoph Hellwig
2017-08-11 15:14 ` Paul Menzel
2017-05-10 9:08 ` Locking problems with Linux 4.9 " Paul Menzel
2017-05-10 17:23 ` J. Bruce Fields
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.