svn commit: r255786 - in head/sys: arm/arm i386/i386 kern mips/mips powerpc/aim powerpc/booke sparc64/sparc64 sys

Gleb Smirnoff glebius at FreeBSD.org
Sun Sep 22 13:36:54 UTC 2013


Author: glebius
Date: Sun Sep 22 13:36:52 2013
New Revision: 255786
URL: http://svnweb.freebsd.org/changeset/base/255786

Log:
  - Create kern.ipc.sendfile namespace, and put the new "readhead" OID
    there as "kern.ipc.sendfile.readahead".
  - Push all nsfbuf related tunables into MD code. Don't move them
    to new namespace in favor of POLA.
  
  Reviewed by:	scottl
  Approved by:	re (gjb)

Modified:
  head/sys/arm/arm/vm_machdep.c
  head/sys/i386/i386/vm_machdep.c
  head/sys/kern/uipc_syscalls.c
  head/sys/mips/mips/vm_machdep.c
  head/sys/powerpc/aim/vm_machdep.c
  head/sys/powerpc/booke/vm_machdep.c
  head/sys/sparc64/sparc64/vm_machdep.c
  head/sys/sys/sf_buf.h

Modified: head/sys/arm/arm/vm_machdep.c
==============================================================================
--- head/sys/arm/arm/vm_machdep.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/arm/arm/vm_machdep.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/socketvar.h>
 #include <sys/sf_buf.h>
 #include <sys/syscall.h>
+#include <sys/sysctl.h>
 #include <sys/sysent.h>
 #include <sys/unistd.h>
 #include <machine/cpu.h>
@@ -80,16 +81,27 @@ __FBSDID("$FreeBSD$");
 CTASSERT(sizeof(struct switchframe) == 24);
 CTASSERT(sizeof(struct trapframe) == 80);
 
+#ifndef ARM_USE_SMALL_ALLOC
+
 #ifndef NSFBUFS
 #define NSFBUFS		(512 + maxusers * 16)
 #endif
 
-#ifndef ARM_USE_SMALL_ALLOC
+static int nsfbufs;
+static int nsfbufspeak;
+static int nsfbufsused;
+
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
+    "Maximum number of sendfile(2) sf_bufs available");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
+    "Number of sendfile(2) sf_bufs at peak usage");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
+    "Number of sendfile(2) sf_bufs in use");
+
 static void     sf_buf_init(void *arg);
 SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
 
 LIST_HEAD(sf_head, sf_buf);
-	
 
 /*
  * A hash table of active sendfile(2) buffers
@@ -106,7 +118,7 @@ static u_int    sf_buf_alloc_want;
  * A lock used to synchronize access to the hash table and free list
  */
 static struct mtx sf_buf_lock;
-#endif
+#endif /* !ARM_USE_SMALL_ALLOC */
 
 /*
  * Finish a fork operation, with process p2 nearly set up.

Modified: head/sys/i386/i386/vm_machdep.c
==============================================================================
--- head/sys/i386/i386/vm_machdep.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/i386/i386/vm_machdep.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -117,6 +117,18 @@ static void	cpu_reset_proxy(void);
 static u_int	cpu_reset_proxyid;
 static volatile u_int	cpu_reset_proxy_active;
 #endif
+
+static int nsfbufs;
+static int nsfbufspeak;
+static int nsfbufsused;
+
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
+    "Maximum number of sendfile(2) sf_bufs available");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
+    "Number of sendfile(2) sf_bufs at peak usage");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
+    "Number of sendfile(2) sf_bufs in use");
+
 static void	sf_buf_init(void *arg);
 SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
 

Modified: head/sys/kern/uipc_syscalls.c
==============================================================================
--- head/sys/kern/uipc_syscalls.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/kern/uipc_syscalls.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -123,19 +123,11 @@ counter_u64_t sfstat[sizeof(struct sfsta
 /*
  * sendfile(2)-related variables and associated sysctls
  */
-int nsfbufs;
-int nsfbufspeak;
-int nsfbufsused;
+static SYSCTL_NODE(_kern_ipc, OID_AUTO, sendfile, CTLFLAG_RW, 0,
+    "sendfile(2) tunables");
 static int sfreadahead = 1;
-
-SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
-    "Maximum number of sendfile(2) sf_bufs available");
-SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
-    "Number of sendfile(2) sf_bufs at peak usage");
-SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
-    "Number of sendfile(2) sf_bufs in use");
-SYSCTL_INT(_kern_ipc, OID_AUTO, sfreadahead, CTLFLAG_RW, &sfreadahead, 0,
-    "Number of sendfile(2) read-ahead MAXBSIZE blocks");
+SYSCTL_INT(_kern_ipc_sendfile, OID_AUTO, readahead, CTLFLAG_RW,
+    &sfreadahead, 0, "Number of sendfile(2) read-ahead MAXBSIZE blocks");
 
 
 static void

Modified: head/sys/mips/mips/vm_machdep.c
==============================================================================
--- head/sys/mips/mips/vm_machdep.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/mips/mips/vm_machdep.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -80,10 +80,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/sf_buf.h>
 #endif
 
-#ifndef NSFBUFS
-#define	NSFBUFS		(512 + maxusers * 16)
-#endif
-
 /* Duplicated from asm.h */
 #if defined(__mips_o32)
 #define	SZREG	4
@@ -97,6 +93,22 @@ __FBSDID("$FreeBSD$");
 #endif
 
 #ifndef __mips_n64
+
+#ifndef NSFBUFS
+#define	NSFBUFS		(512 + maxusers * 16)
+#endif
+
+static int nsfbufs;
+static int nsfbufspeak;
+static int nsfbufsused;
+
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
+    "Maximum number of sendfile(2) sf_bufs available");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
+    "Number of sendfile(2) sf_bufs at peak usage");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
+    "Number of sendfile(2) sf_bufs in use");
+
 static void	sf_buf_init(void *arg);
 SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
 
@@ -110,7 +122,7 @@ static struct {
 } sf_freelist;
 
 static u_int	sf_buf_alloc_want;
-#endif
+#endif /* !__mips_n64 */
 
 /*
  * Finish a fork operation, with process p2 nearly set up.

Modified: head/sys/powerpc/aim/vm_machdep.c
==============================================================================
--- head/sys/powerpc/aim/vm_machdep.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/powerpc/aim/vm_machdep.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -111,6 +111,17 @@
 #define NSFBUFS         (512 + maxusers * 16)
 #endif
 
+static int nsfbufs;
+static int nsfbufspeak;
+static int nsfbufsused;
+
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
+    "Maximum number of sendfile(2) sf_bufs available");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
+    "Number of sendfile(2) sf_bufs at peak usage");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
+    "Number of sendfile(2) sf_bufs in use");
+
 static void sf_buf_init(void *arg);
 SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
  

Modified: head/sys/powerpc/booke/vm_machdep.c
==============================================================================
--- head/sys/powerpc/booke/vm_machdep.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/powerpc/booke/vm_machdep.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -137,6 +137,17 @@ __FBSDID("$FreeBSD$");
 #define NSFBUFS		(512 + maxusers * 16)
 #endif
 
+static int nsfbufs;
+static int nsfbufspeak;
+static int nsfbufsused;
+
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
+    "Maximum number of sendfile(2) sf_bufs available");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
+    "Number of sendfile(2) sf_bufs at peak usage");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
+    "Number of sendfile(2) sf_bufs in use");
+
 static void sf_buf_init(void *arg);
 SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
 

Modified: head/sys/sparc64/sparc64/vm_machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/vm_machdep.c	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/sparc64/sparc64/vm_machdep.c	Sun Sep 22 13:36:52 2013	(r255786)
@@ -88,6 +88,17 @@ __FBSDID("$FreeBSD$");
 #define	NSFBUFS		(512 + maxusers * 16)
 #endif
 
+static int nsfbufs;
+static int nsfbufspeak;
+static int nsfbufsused;
+
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0,
+    "Maximum number of sendfile(2) sf_bufs available");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufspeak, CTLFLAG_RD, &nsfbufspeak, 0,
+    "Number of sendfile(2) sf_bufs at peak usage");
+SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0,
+    "Number of sendfile(2) sf_bufs in use");
+
 static void	sf_buf_init(void *arg);
 SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
 

Modified: head/sys/sys/sf_buf.h
==============================================================================
--- head/sys/sys/sf_buf.h	Sun Sep 22 10:41:01 2013	(r255785)
+++ head/sys/sys/sf_buf.h	Sun Sep 22 13:36:52 2013	(r255786)
@@ -42,10 +42,6 @@
 
 struct vm_page;
 
-extern  int nsfbufs;                    /* Number of sendfile(2) bufs alloced */
-extern  int nsfbufspeak;                /* Peak of nsfbufsused */
-extern  int nsfbufsused;                /* Number of sendfile(2) bufs in use */
-
 struct sfstat {				/* sendfile statistics */
 	uint64_t	sf_iocnt;	/* times sendfile had to do disk I/O */
 	uint64_t	sf_allocfail;	/* times sfbuf allocation failed */


More information about the svn-src-head mailing list