Your message dated Mon, 3 May 2021 12:20:16 +0200
with message-id <20210503102016.ga11...@lorien.valinor.li>
and subject line Re: Bug#795991: /boot/vmlinuz-3.16.0-0.bpo.4-amd64: duplicate 
request cache is too small for NFS 4.1 servers
has caused the Debian Bug report #795991,
regarding linux-image-3.16.0-4-amd64: duplicate request cache is too small for 
NFS 4.1 servers
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
795991: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795991
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:linux
Version: 3.16.7-ckt11-1+deb8u3~bpo70+1
Severity: normal
File: /boot/vmlinuz-3.16.0-0.bpo.4-amd64

The drc (duplicate request cache) for NFS 4.1 in the vanilla kernel
has a fixed size only depending on the RAM of the machine.

For example, when setting up a vm which should only serve as a
nfs referral server with 768 MB RAM it could only server about
20 clients. So it is roughly 32 clients per GB.

The problem is, that in nfssvc.c the size of drc is calculated with
a shift of NFSD_DRC_SIZE_SHIFT bits from the RAM size.

I attach a patch for this which I also sent to linux-nfs.
(See http://www.spinics.net/lists/linux-nfs/msg51791.html)

It implements a module variable to set the size on module load.

It hope that such a patch can make it into Debian soon.

Yours
Christoph


-- System Information:
Debian Release: 7.8
  APT prefers oldstable-updates
  APT policy: (700, 'oldstable-updates'), (700, 'oldstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.7-ckt9 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages linux-image-3.16.0-0.bpo.4-amd64 depends on:
ii  debconf [debconf-2.0]  1.5.49
ii  initramfs-tools        0.115~bpo70+1
ii  kmod                   9-3
ii  linux-base             3.5
ii  module-init-tools      9-3

Versions of packages linux-image-3.16.0-0.bpo.4-amd64 recommends:
ii  firmware-linux-free  3.2
ii  irqbalance           1.0.3-3

Versions of packages linux-image-3.16.0-0.bpo.4-amd64 suggests:
pn  debian-kernel-handbook  <none>
ii  grub-pc                 1.99-27+deb7u2
pn  linux-doc-3.16          <none>

Versions of packages linux-image-3.16.0-0.bpo.4-amd64 is related to:
pn  firmware-atheros        <none>
pn  firmware-bnx2           <none>
pn  firmware-bnx2x          <none>
pn  firmware-brcm80211      <none>
pn  firmware-intelwimax     <none>
pn  firmware-ipw2x00        <none>
pn  firmware-ivtv           <none>
pn  firmware-iwlwifi        <none>
pn  firmware-libertas       <none>
pn  firmware-linux          <none>
pn  firmware-linux-nonfree  <none>
pn  firmware-myricom        <none>
pn  firmware-netxen         <none>
pn  firmware-qlogic         <none>
pn  firmware-ralink         <none>
pn  firmware-realtek        <none>
pn  xen-hypervisor          <none>

-- debconf information:
  
linux-image-3.16.0-0.bpo.4-amd64/postinst/depmod-error-initrd-3.16.0-0.bpo.4-amd64:
 false
  linux-image-3.16.0-0.bpo.4-amd64/postinst/mips-initrd-3.16.0-0.bpo.4-amd64:
  
linux-image-3.16.0-0.bpo.4-amd64/prerm/removing-running-kernel-3.16.0-0.bpo.4-amd64:
 true
--- linux-source-3.16/fs/nfsd/nfssvc.c	2015-03-30 12:09:09.000000000 +0200
+++ linux-source-3.16.nfsd/fs/nfsd/nfssvc.c	2015-06-17 09:28:37.880443867 +0200
@@ -359,11 +359,19 @@ void nfsd_reset_versions(void)
  * For now this is a #defined shift which could be under admin control
  * in the future.
  */
+
+static ulong drc_size = 0;
+module_param(drc_size, ulong, 0444);
+MODULE_PARM_DESC(drc_size,
+		 "size of NFSv4.1 DRC cache memory (default and minimum: free_buffer_size >> 10)");
+
 static void set_max_drc(void)
 {
 	#define NFSD_DRC_SIZE_SHIFT	10
-	nfsd_drc_max_mem = (nr_free_buffer_pages()
-					>> NFSD_DRC_SIZE_SHIFT) * PAGE_SIZE;
+	nfsd_drc_max_mem = max(drc_size,
+			       (nr_free_buffer_pages()
+				>> NFSD_DRC_SIZE_SHIFT) * PAGE_SIZE);
+	drc_size = nfsd_drc_max_mem;
 	nfsd_drc_mem_used = 0;
 	spin_lock_init(&nfsd_drc_lock);
 	dprintk("%s nfsd_drc_max_mem %lu \n", __func__, nfsd_drc_max_mem);

--- End Message ---
--- Begin Message ---
tags 795991 + wontfix
thanks

Hi Christoph,

On Mon, May 03, 2021 at 11:46:30AM +0200, Christoph Martin wrote:
> Hi Salvatore
> 
> Am 01.05.21 um 07:55 schrieb Salvatore Bonaccorso:
> > 
> > Ack thans for confirming. So either someone tries to bring that issue
> > again to upstream or alternatively we could then close this bug
> > marking (and possibly marking it wontfix).
> > 
> 
> I'm fine with closing and marking wontfix because upstream does so also.

Okay thanks a lot for confirming. I will do now so then.

Sorry :(

Regards,
Salvatore

--- End Message ---

Reply via email to