diff options
author | peter <peter@FreeBSD.org> | 1998-05-24 14:41:56 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1998-05-24 14:41:56 +0000 |
commit | 6d06da81011cebd1efc4dae1d6d0ed94af6f9f76 (patch) | |
tree | a7d0873d8bee7b3560ff38fa06bed1c742b6c0a1 /sys/nfsserver | |
parent | c9dd9f41486532c8fa517b5d63ccc208e00fb8cd (diff) | |
download | FreeBSD-src-6d06da81011cebd1efc4dae1d6d0ed94af6f9f76.zip FreeBSD-src-6d06da81011cebd1efc4dae1d6d0ed94af6f9f76.tar.gz |
Convert a couple of large allocations to use zones rather than malloc
for better packing. This means that we can choose better values for the
various hash entries without having to try and get it all to fit within
an artificial power of two limit for malloc's sake.
Diffstat (limited to 'sys/nfsserver')
-rw-r--r-- | sys/nfsserver/nfs.h | 10 | ||||
-rw-r--r-- | sys/nfsserver/nfs_srvsubs.c | 12 | ||||
-rw-r--r-- | sys/nfsserver/nfsrvstats.h | 10 |
3 files changed, 15 insertions, 17 deletions
diff --git a/sys/nfsserver/nfs.h b/sys/nfsserver/nfs.h index ad606ad..20093f6 100644 --- a/sys/nfsserver/nfs.h +++ b/sys/nfsserver/nfs.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs.h 8.4 (Berkeley) 5/1/95 - * $Id: nfs.h,v 1.34 1998/03/30 09:53:43 phk Exp $ + * $Id: nfs.h,v 1.35 1998/05/19 07:11:22 peter Exp $ */ #ifndef _NFS_NFS_H_ @@ -118,8 +118,6 @@ * to one that does not allocate space in powers of 2 size, then this all * becomes bunk!) */ -#define NFS_NODEALLOC 256 -#define NFS_MNTALLOC 512 #define NFS_SVCALLOC 256 #define NFS_UIDALLOC 128 @@ -307,13 +305,17 @@ union nethostaddr { #ifdef MALLOC_DECLARE MALLOC_DECLARE(M_NFSREQ); -MALLOC_DECLARE(M_NFSMNT); MALLOC_DECLARE(M_NFSDIROFF); MALLOC_DECLARE(M_NFSRVDESC); MALLOC_DECLARE(M_NFSUID); MALLOC_DECLARE(M_NQLEASE); MALLOC_DECLARE(M_NFSD); MALLOC_DECLARE(M_NFSBIGFH); +MALLOC_DECLARE(M_NFSHASH); +#endif + +#ifdef ZONE_INTERRUPT +extern vm_zone_t nfsmount_zone; #endif struct uio; struct buf; struct vattr; struct nameidata; /* XXX */ diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c index b81eedf..93fca3c 100644 --- a/sys/nfsserver/nfs_srvsubs.c +++ b/sys/nfsserver/nfs_srvsubs.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_subs.c 8.3 (Berkeley) 1/4/94 - * $Id: nfs_subs.c,v 1.53 1998/04/06 11:41:07 phk Exp $ + * $Id: nfs_subs.c,v 1.54 1998/05/19 07:11:24 peter Exp $ */ /* @@ -1099,17 +1099,11 @@ nfs_init(vfsp) { register int i; + nfsmount_zone = zinit("NFSMOUNT", sizeof(struct nfsmount), 0, 0, 1); + /* * Check to see if major data structures haven't bloated. */ - if (sizeof (struct nfsnode) > NFS_NODEALLOC) { - printf("struct nfsnode bloated (> %dbytes)\n", NFS_NODEALLOC); - printf("Try reducing NFS_SMALLFH\n"); - } - if (sizeof (struct nfsmount) > NFS_MNTALLOC) { - printf("struct nfsmount bloated (> %dbytes)\n", NFS_MNTALLOC); - printf("Try reducing NFS_MUIDHASHSIZ\n"); - } if (sizeof (struct nfssvc_sock) > NFS_SVCALLOC) { printf("struct nfssvc_sock bloated (> %dbytes)\n",NFS_SVCALLOC); printf("Try reducing NFS_UIDHASHSIZ\n"); diff --git a/sys/nfsserver/nfsrvstats.h b/sys/nfsserver/nfsrvstats.h index ad606ad..20093f6 100644 --- a/sys/nfsserver/nfsrvstats.h +++ b/sys/nfsserver/nfsrvstats.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs.h 8.4 (Berkeley) 5/1/95 - * $Id: nfs.h,v 1.34 1998/03/30 09:53:43 phk Exp $ + * $Id: nfs.h,v 1.35 1998/05/19 07:11:22 peter Exp $ */ #ifndef _NFS_NFS_H_ @@ -118,8 +118,6 @@ * to one that does not allocate space in powers of 2 size, then this all * becomes bunk!) */ -#define NFS_NODEALLOC 256 -#define NFS_MNTALLOC 512 #define NFS_SVCALLOC 256 #define NFS_UIDALLOC 128 @@ -307,13 +305,17 @@ union nethostaddr { #ifdef MALLOC_DECLARE MALLOC_DECLARE(M_NFSREQ); -MALLOC_DECLARE(M_NFSMNT); MALLOC_DECLARE(M_NFSDIROFF); MALLOC_DECLARE(M_NFSRVDESC); MALLOC_DECLARE(M_NFSUID); MALLOC_DECLARE(M_NQLEASE); MALLOC_DECLARE(M_NFSD); MALLOC_DECLARE(M_NFSBIGFH); +MALLOC_DECLARE(M_NFSHASH); +#endif + +#ifdef ZONE_INTERRUPT +extern vm_zone_t nfsmount_zone; #endif struct uio; struct buf; struct vattr; struct nameidata; /* XXX */ |