summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1998-05-24 14:41:56 +0000
committerpeter <peter@FreeBSD.org>1998-05-24 14:41:56 +0000
commit6d06da81011cebd1efc4dae1d6d0ed94af6f9f76 (patch)
treea7d0873d8bee7b3560ff38fa06bed1c742b6c0a1 /sys/nfsserver
parentc9dd9f41486532c8fa517b5d63ccc208e00fb8cd (diff)
downloadFreeBSD-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.h10
-rw-r--r--sys/nfsserver/nfs_srvsubs.c12
-rw-r--r--sys/nfsserver/nfsrvstats.h10
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 */
OpenPOWER on IntegriCloud