| From e4fbc9394da32b8cb992bd5653d0b246a0d5e7f9 Mon Sep 17 00:00:00 2001 |
| From: "J. Bruce Fields" <bfields@redhat.com> |
| Date: Tue, 19 Sep 2017 20:51:31 -0400 |
| Subject: nfsd: increase DRC cache limit |
| |
| [ Upstream commit 44d8660d3bb0a1c8363ebcb906af2343ea8e15f6 ] |
| |
| An NFSv4.1+ client negotiates the size of its duplicate reply cache size |
| in the initial CREATE_SESSION request. The server preallocates the |
| memory for the duplicate reply cache to ensure that we'll never fail to |
| record the response to a nonidempotent operation. |
| |
| To prevent a few CREATE_SESSIONs from consuming all of memory we set an |
| upper limit based on nr_free_buffer_pages(). 1/2^10 has been too |
| limiting in practice; 1/2^7 is still less than one percent. |
| |
| Signed-off-by: J. Bruce Fields <bfields@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/nfsd/nfssvc.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c |
| index e02bd2783124..4a9e0fb634b6 100644 |
| --- a/fs/nfsd/nfssvc.c |
| +++ b/fs/nfsd/nfssvc.c |
| @@ -447,7 +447,7 @@ void nfsd_reset_versions(void) |
| */ |
| static void set_max_drc(void) |
| { |
| - #define NFSD_DRC_SIZE_SHIFT 10 |
| + #define NFSD_DRC_SIZE_SHIFT 7 |
| nfsd_drc_max_mem = (nr_free_buffer_pages() |
| >> NFSD_DRC_SIZE_SHIFT) * PAGE_SIZE; |
| nfsd_drc_mem_used = 0; |
| -- |
| 2.20.1 |
| |