All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: NeilBrown <neilb@suse.de>
Cc: J.Bruce@suse.de, Fields@suse.de, linux-nfs@vger.kernel.org,
	linux-kernel@vger.kernel.org, Jeff Layton <jlayton@redhat.com>
Subject: Re: [PATCH] knfsd: Remove NLM_HOST_MAX and associated logic.
Date: Thu, 7 Feb 2008 22:55:08 -0500	[thread overview]
Message-ID: <20080208035508.GC7117@fieldses.org> (raw)
In-Reply-To: <1080208020337.14371@suse.de>

On Fri, Feb 08, 2008 at 01:03:37PM +1100, NeilBrown wrote:
> 
> Lockd caches information about hosts that have recently held locks it
> expedite the taking of further locks.

Applied, thanks!--b.

> 
> It periodically discards this information for hosts that have not been
> used for a few minutes.
> 
> lockd currently has a value NLM_HOST_MAX, and changes the 'garbage
> collection' behaviour when the number of hosts exceeds this threshold.
> 
> However it's behaviour in strange an likely not what was intended.
> When the number of hosts exceeds the max, it scans *less* often (every
> 2 minutes vs every minute) and allows unused host information to
> remain around longer (5 minutes instead of 2).
> 
> Having this limit is of dubious value anyway, and we have not
> suffered from the code not getting the limit right, so remove the
> limit altogether.  We go with the larger values (discard 5 minute old
> hosts every 2 minutes) as that is probably safer.
> 
> Maybe the periodic garbage collection should be replace to with
> 'shrinker' handler so we just respond to memory pressure....
> 
> Acked-by: Jeff Layton <jlayton@redhat.com>
> Signed-off-by: Neil Brown <neilb@suse.de>
> 
> ### Diffstat output
>  ./fs/lockd/host.c |    9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff .prev/fs/lockd/host.c ./fs/lockd/host.c
> --- .prev/fs/lockd/host.c	2008-02-07 14:20:54.000000000 +1100
> +++ ./fs/lockd/host.c	2008-02-08 12:54:28.000000000 +1100
> @@ -19,12 +19,11 @@
>  
>  
>  #define NLMDBG_FACILITY		NLMDBG_HOSTCACHE
> -#define NLM_HOST_MAX		64
>  #define NLM_HOST_NRHASH		32
>  #define NLM_ADDRHASH(addr)	(ntohl(addr) & (NLM_HOST_NRHASH-1))
>  #define NLM_HOST_REBIND		(60 * HZ)
> -#define NLM_HOST_EXPIRE		((nrhosts > NLM_HOST_MAX)? 300 * HZ : 120 * HZ)
> -#define NLM_HOST_COLLECT	((nrhosts > NLM_HOST_MAX)? 120 * HZ :  60 * HZ)
> +#define NLM_HOST_EXPIRE		(300 * HZ)
> +#define NLM_HOST_COLLECT	(120 * HZ)
>  
>  static struct hlist_head	nlm_hosts[NLM_HOST_NRHASH];
>  static unsigned long		next_gc;
> @@ -142,9 +141,7 @@ nlm_lookup_host(int server, const struct
>  	INIT_LIST_HEAD(&host->h_granted);
>  	INIT_LIST_HEAD(&host->h_reclaim);
>  
> -	if (++nrhosts > NLM_HOST_MAX)
> -		next_gc = 0;
> -
> +	nrhosts++;
>  out:
>  	mutex_unlock(&nlm_host_mutex);
>  	return host;
> -
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2008-02-08  3:55 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080208130300.14320.patches@notabene>
2008-02-08  2:03 ` [PATCH] knfsd: Remove NLM_HOST_MAX and associated logic NeilBrown
2008-02-08  3:55   ` J. Bruce Fields [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080208035508.GC7117@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Fields@suse.de \
    --cc=J.Bruce@suse.de \
    --cc=jlayton@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=neilb@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.