Hi,

I wish to obtain number of processes forked since boot from userland.
So, I made a patch to intend to commit.
Any comment?

Index: lib/libc/gen/sysctl.3
diff -u lib/libc/gen/sysctl.3.orig lib/libc/gen/sysctl.3
--- lib/libc/gen/sysctl.3.orig  Fri Jan 12 02:39:22 2001
+++ lib/libc/gen/sysctl.3       Tue Jan 16 02:13:19 2001
@@ -294,6 +294,7 @@
 .It "KERN\_UPDATEINTERVAL      integer no"
 .It "KERN\_VERSION     string  no"
 .It "KERN\_VNODE       struct vnode    no"
+.It "KERN\_NFORKS      integer no"
 .El
 .Pp
 .Bl -tag -width 6n
@@ -445,6 +446,8 @@
 .Va struct vnode *
 followed by the vnode itself
 .Va struct vnode .
+.It Li KERN_NFORKS
+Number of processes forked.
 .El
 .Ss CTL_MACHDEP
 The set of variables defined is architecture dependent.
Index: sbin/sysctl/sysctl.8
diff -u sbin/sysctl/sysctl.8.orig sbin/sysctl/sysctl.8
--- sbin/sysctl/sysctl.8.orig   Fri Jan 12 02:42:23 2001
+++ sbin/sysctl/sysctl.8        Tue Jan 16 02:13:19 2001
@@ -145,6 +145,7 @@
 .It "kern.bootfile     string  yes
 .It "kern.corefile     string  yes
 .It "kern.logsigexit   integer yes
+.It "kern.nforks       integer no
 .It "vm.loadavg        struct  no
 .It "hw.machine        string  no
 .It "hw.model  string  no
Index: sys/kern/kern_fork.c
diff -u sys/kern/kern_fork.c.orig sys/kern/kern_fork.c
--- sys/kern/kern_fork.c.orig   Fri Jan 12 02:46:53 2001
+++ sys/kern/kern_fork.c        Tue Jan 16 02:30:26 2001
@@ -146,6 +146,9 @@
 int    nprocs = 1;                             /* process 0 */
 static int nextpid = 0;
 
+static unsigned int nforks = 0;
+SYSCTL_UINT(_kern, KERN_NFORKS, nforks, CTLFLAG_RD, &nforks, 0, "");
+
 /*
  * Random component to nextpid generation.  We mix in a random factor to make
  * it a little harder to predict.  We sanity check the modulus value to avoid
@@ -277,6 +280,8 @@
        }
 
        newproc->p_vmspace = NULL;
+
+       nforks++;
 
        /*
         * Find an unused process ID.  We remember a range of unused IDs
Index: sys/sys/sysctl.h
diff -u sys/sys/sysctl.h.orig sys/sys/sysctl.h
--- sys/sys/sysctl.h.orig       Fri Jan 12 02:48:41 2001
+++ sys/sys/sysctl.h    Tue Jan 16 02:13:19 2001
@@ -328,7 +328,8 @@
 #define        KERN_PS_STRINGS         32      /* int: address of PS_STRINGS */
 #define        KERN_USRSTACK           33      /* int: address of USRSTACK */
 #define        KERN_LOGSIGEXIT         34      /* int: do we log sigexit procs? */
-#define KERN_MAXID             35      /* number of valid kern ids */
+#define KERN_NFORKS            35      /* uint: number of forked */
+#define KERN_MAXID             36      /* number of valid kern ids */
 
 #define CTL_KERN_NAMES { \
        { 0, 0 }, \
@@ -366,6 +367,7 @@
        { "ps_strings", CTLTYPE_INT }, \
        { "usrstack", CTLTYPE_INT }, \
        { "logsigexit", CTLTYPE_INT }, \
+       { "nforks", CTLTYPE_UINT }, \
 }
 
 /*


--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
[EMAIL PROTECTED]  [EMAIL PROTECTED]  ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to