aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/exported-sql-viewer.py
diff options
context:
space:
mode:
authorChuck Lever <[email protected]>2020-11-24 19:15:18 -0500
committerAnna Schumaker <[email protected]>2020-12-10 16:48:03 -0500
commit1c87b85162975627d684a234d7347ef630f0e3aa (patch)
tree25c149a3d63fa8c3f2a96024597a3f4ea0fb84ae /tools/perf/scripts/python/exported-sql-viewer.py
parent63e2fffa59a9dd91e443b08832656399fd80b7f0 (diff)
NFS: Fix rpcrdma_inline_fixup() crash with new LISTXATTRS operation
By switching to an XFS-backed export, I am able to reproduce the ibcomp worker crash on my client with xfstests generic/013. For the failing LISTXATTRS operation, xdr_inline_pages() is called with page_len=12 and buflen=128. - When ->send_request() is called, rpcrdma_marshal_req() does not set up a Reply chunk because buflen is smaller than the inline threshold. Thus rpcrdma_convert_iovs() does not get invoked at all and the transport's XDRBUF_SPARSE_PAGES logic is not invoked on the receive buffer. - During reply processing, rpcrdma_inline_fixup() tries to copy received data into rq_rcv_buf->pages because page_len is positive. But there are no receive pages because rpcrdma_marshal_req() never allocated them. The result is that the ibcomp worker faults and dies. Sometimes that causes a visible crash, and sometimes it results in a transport hang without other symptoms. RPC/RDMA's XDRBUF_SPARSE_PAGES support is not entirely correct, and should eventually be fixed or replaced. However, my preference is that upper-layer operations should explicitly allocate their receive buffers (using GFP_KERNEL) when possible, rather than relying on XDRBUF_SPARSE_PAGES. Reported-by: Olga kornievskaia <[email protected]> Suggested-by: Olga kornievskaia <[email protected]> Fixes: c10a75145feb ("NFSv4.2: add the extended attribute proc functions.") Signed-off-by: Chuck Lever <[email protected]> Reviewed-by: Olga kornievskaia <[email protected]> Reviewed-by: Frank van der Linden <[email protected]> Tested-by: Olga kornievskaia <[email protected]> Signed-off-by: Anna Schumaker <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions