diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-12-13 16:13:52 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-12-19 23:11:54 -0500 |
commit | b079fa7baa86b47579f3f60f86d03d21c76159b8 (patch) | |
tree | a62d8d031315459083d546e639faaa5ce0162a03 /fs/nfs/file.c | |
parent | 3e1ec1f43307575d4e04c513aa3c30d69c32b9dc (diff) | |
download | op-kernel-dev-b079fa7baa86b47579f3f60f86d03d21c76159b8.zip op-kernel-dev-b079fa7baa86b47579f3f60f86d03d21c76159b8.tar.gz |
RPC: Do not block on skb allocation
If we get something like the following,
[ 125.300636] [<c04086e1>] schedule_timeout+0x54/0xa5
[ 125.305931] [<c040866e>] io_schedule_timeout+0x29/0x33
[ 125.311495] [<c02880c4>] blk_congestion_wait+0x70/0x85
[ 125.317058] [<c014136b>] throttle_vm_writeout+0x69/0x7d
[ 125.322720] [<c014714d>] shrink_zone+0xe0/0xfa
[ 125.327560] [<c01471d4>] shrink_caches+0x6d/0x6f
[ 125.332581] [<c01472a6>] try_to_free_pages+0xd0/0x1b5
[ 125.338056] [<c013fa4b>] __alloc_pages+0x135/0x2e8
[ 125.343258] [<c03b74ad>] tcp_sendmsg+0xaa0/0xb78
[ 125.348281] [<c03d4666>] inet_sendmsg+0x48/0x53
[ 125.353212] [<c0388716>] sock_sendmsg+0xb8/0xd3
[ 125.358147] [<c0388773>] kernel_sendmsg+0x42/0x4f
[ 125.363259] [<c038bc00>] sock_no_sendpage+0x5e/0x77
[ 125.368556] [<c03ee7af>] xs_tcp_send_request+0x2af/0x375
then the socket is blocked until memory is reclaimed, and no
progress can ever be made.
Try to access the emergency pools by using GFP_ATOMIC.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/file.c')
0 files changed, 0 insertions, 0 deletions