Message ID | 20200914130719.247cccb0@imladris.surriel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | silence nfscache allocation warnings with kvzalloc | expand |
Applying, thanks.--b. On Mon, Sep 14, 2020 at 01:07:19PM -0400, Rik van Riel wrote: > silence nfscache allocation warnings with kvzalloc > > Currently nfsd_reply_cache_init attempts hash table allocation through > kmalloc, and manually falls back to vzalloc if that fails. This makes > the code a little larger than needed, and creates a significant amount > of serial console spam if you have enough systems. > > Switching to kvzalloc gets rid of the allocation warnings, and makes > the code a little cleaner too as a side effect. > > Freeing of nn->drc_hashtbl is already done using kvfree currently. > > Signed-off-by: Rik van Riel <riel@surriel.com> > --- > diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c > index 96352ab7bd81..5125b5ef25b6 100644 > --- a/fs/nfsd/nfscache.c > +++ b/fs/nfsd/nfscache.c > @@ -164,14 +164,10 @@ int nfsd_reply_cache_init(struct nfsd_net *nn) > if (!nn->drc_slab) > goto out_shrinker; > > - nn->drc_hashtbl = kcalloc(hashsize, > - sizeof(*nn->drc_hashtbl), GFP_KERNEL); > - if (!nn->drc_hashtbl) { > - nn->drc_hashtbl = vzalloc(array_size(hashsize, > - sizeof(*nn->drc_hashtbl))); > - if (!nn->drc_hashtbl) > - goto out_slab; > - } > + nn->drc_hashtbl = kvzalloc(array_size(hashsize, > + sizeof(*nn->drc_hashtbl)), GFP_KERNEL); > + if (!nn->drc_hashtbl) > + goto out_slab; > > for (i = 0; i < hashsize; i++) { > INIT_LIST_HEAD(&nn->drc_hashtbl[i].lru_head);
diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c index 96352ab7bd81..5125b5ef25b6 100644 --- a/fs/nfsd/nfscache.c +++ b/fs/nfsd/nfscache.c @@ -164,14 +164,10 @@ int nfsd_reply_cache_init(struct nfsd_net *nn) if (!nn->drc_slab) goto out_shrinker; - nn->drc_hashtbl = kcalloc(hashsize, - sizeof(*nn->drc_hashtbl), GFP_KERNEL); - if (!nn->drc_hashtbl) { - nn->drc_hashtbl = vzalloc(array_size(hashsize, - sizeof(*nn->drc_hashtbl))); - if (!nn->drc_hashtbl) - goto out_slab; - } + nn->drc_hashtbl = kvzalloc(array_size(hashsize, + sizeof(*nn->drc_hashtbl)), GFP_KERNEL); + if (!nn->drc_hashtbl) + goto out_slab; for (i = 0; i < hashsize; i++) { INIT_LIST_HEAD(&nn->drc_hashtbl[i].lru_head);
silence nfscache allocation warnings with kvzalloc Currently nfsd_reply_cache_init attempts hash table allocation through kmalloc, and manually falls back to vzalloc if that fails. This makes the code a little larger than needed, and creates a significant amount of serial console spam if you have enough systems. Switching to kvzalloc gets rid of the allocation warnings, and makes the code a little cleaner too as a side effect. Freeing of nn->drc_hashtbl is already done using kvfree currently. Signed-off-by: Rik van Riel <riel@surriel.com> ---