commit | 2f0f88f42f2eab0421ed37d7494de9124fdf0d34 | [log] [tgz] |
---|---|---|
author | Chuck Lever <chuck.lever@oracle.com> | Thu Jul 01 10:03:10 2021 -0400 |
committer | Chuck Lever <chuck.lever@oracle.com> | Tue Aug 17 11:47:52 2021 -0400 |
tree | f426289ca32413bb582d1b8ecb7d673d155ddc2f | |
parent | c7e0b781b73c2e26e442ed71397cc2bc5945a732 [diff] |
SUNRPC: Add svc_rqst_replace_page() API Replacing a page in rq_pages[] requires a get_page(), which is a bus-locked operation, and a put_page(), which can be even more costly. To reduce the cost of replacing a page in rq_pages[], batch the put_page() operations by collecting "freed" pages in a pagevec, and then release those pages when the pagevec is full. This pagevec is also emptied when each RPC completes. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>