[Midnightbsd-cvs] src [7783] trunk: Implement userland changes for kqueue resource limits

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Mon Sep 5 12:24:21 EDT 2016


Revision: 7783
          http://svnweb.midnightbsd.org/src/?rev=7783
Author:   laffer1
Date:     2016-09-05 12:24:20 -0400 (Mon, 05 Sep 2016)
Log Message:
-----------
Implement userland changes for kqueue resource limits

Obtained from: FreeBSD svn 256850

Modified Paths:
--------------
    trunk/bin/sh/miscbltin.c
    trunk/etc/login.conf
    trunk/lib/libc/sys/getrlimit.2
    trunk/lib/libutil/login_class.3
    trunk/lib/libutil/login_class.c
    trunk/usr.bin/limits/limits.c
    trunk/usr.bin/procstat/procstat_rlimit.c

Modified: trunk/bin/sh/miscbltin.c
===================================================================
--- trunk/bin/sh/miscbltin.c	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/bin/sh/miscbltin.c	2016-09-05 16:24:20 UTC (rev 7783)
@@ -389,6 +389,9 @@
 #ifdef RLIMIT_NPTS
 	{ "pseudo-terminals",	(char *)0,	RLIMIT_NPTS,	   1, 'p' },
 #endif
+#ifdef RLIMIT_KQUEUES
+	{ "kqueues",		(char *)0,	RLIMIT_KQUEUES,	   1, 'k' },
+#endif
 	{ (char *) 0,		(char *)0,	0,		   0, '\0' }
 };
 
@@ -405,7 +408,7 @@
 	struct rlimit	limit;
 
 	what = 'f';
-	while ((optc = nextopt("HSatfdsmcnuvlbpw")) != '\0')
+	while ((optc = nextopt("HSatfdsmcnuvlbpwk")) != '\0')
 		switch (optc) {
 		case 'H':
 			how = HARD;

Modified: trunk/etc/login.conf
===================================================================
--- trunk/etc/login.conf	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/etc/login.conf	2016-09-05 16:24:20 UTC (rev 7783)
@@ -42,6 +42,7 @@
 	:vmemoryuse=unlimited:\
 	:swapuse=unlimited:\
 	:pseudoterminals=unlimited:\
+	:kqueues=unlimited:\
 	:priority=0:\
 	:ignoretime@:\
 	:umask=022:

Modified: trunk/lib/libc/sys/getrlimit.2
===================================================================
--- trunk/lib/libc/sys/getrlimit.2	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/lib/libc/sys/getrlimit.2	2016-09-05 16:24:20 UTC (rev 7783)
@@ -108,6 +108,8 @@
 for a complete description of this sysctl.
 .It Dv RLIMIT_NPTS
 The maximum number of pseudo-terminals created by this user id.
+.It Dv RLIMIT_KQUEUES
+The maximum number of kqueues created by this user id.
 .El
 .Pp
 A resource limit is specified as a soft limit and a hard limit.

Modified: trunk/lib/libutil/login_class.3
===================================================================
--- trunk/lib/libutil/login_class.3	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/lib/libutil/login_class.3	2016-09-05 16:24:20 UTC (rev 7783)
@@ -118,6 +118,7 @@
 vmemoryuse       RLIMIT_VMEM
 pseudoterminals  RLIMIT_NPTS
 swapuse          RLIMIT_SWAP
+kqueues          RLIMIT_KQUEUES
 .Ed
 .It LOGIN_SETPRIORITY
 Set the scheduling priority for the current process based on the

Modified: trunk/lib/libutil/login_class.c
===================================================================
--- trunk/lib/libutil/login_class.c	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/lib/libutil/login_class.c	2016-09-05 16:24:20 UTC (rev 7783)
@@ -66,6 +66,7 @@
     { "vmemoryuse",      login_getcapsize, RLIMIT_VMEM    },
     { "pseudoterminals", login_getcapnum,  RLIMIT_NPTS    },
     { "swapuse",         login_getcapsize, RLIMIT_SWAP    },
+    { "kqueues",         login_getcapsize, RLIMIT_KQUEUES },
     { NULL,              0,                0              }
 };
 

Modified: trunk/usr.bin/limits/limits.c
===================================================================
--- trunk/usr.bin/limits/limits.c	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/usr.bin/limits/limits.c	2016-09-05 16:24:20 UTC (rev 7783)
@@ -89,7 +89,8 @@
 	  { "  sbsize%-4s           %8s", " bytes\n", 1    },
 	  { "  vmemoryuse%-4s       %8s", " kB\n",    1024 },
 	  { "  pseudo-terminals%-4s %8s", "\n",       1    },
-	  { "  swapuse%-4s          %8s", " kB\n",    1024 }
+	  { "  swapuse%-4s          %8s", " kB\n",    1024 },
+	  { "  kqueues%-4s          %8s", "\n",       1    },
       }
     },
     { "sh", "unlimited", "", " -H", " -S", "",
@@ -106,7 +107,8 @@
 	  { "ulimit%s -b %s", ";\n",  1    },
 	  { "ulimit%s -v %s", ";\n",  1024 },
 	  { "ulimit%s -p %s", ";\n",  1    },
-	  { "ulimit%s -w %s", ";\n",  1024 }
+	  { "ulimit%s -w %s", ";\n",  1024 },
+	  { "ulimit%s -k %s", ";\n",  1    },
       }
     },
     { "csh", "unlimited", "", " -h", "", NULL,
@@ -123,7 +125,8 @@
 	  { "limit%s sbsize %s",          ";\n",  1    },
 	  { "limit%s vmemoryuse %s",      ";\n",  1024 },
 	  { "limit%s pseudoterminals %s", ";\n",  1    },
-	  { "limit%s swapuse %s",         ";\n",  1024 }
+	  { "limit%s swapuse %s",         ";\n",  1024 },
+	  { "limit%s kqueues %s",         ";\n",  1    },
       }
     },
     { "bash|bash2", "unlimited", "", " -H", " -S", "",
@@ -157,7 +160,8 @@
 	  { "limit%s sbsize %s",          ";\n",  1    },
 	  { "limit%s vmemoryuse %s",      ";\n",  1024 },
 	  { "limit%s pseudoterminals %s", ";\n",  1    },
-	  { "limit%s swapuse %s",         ";\n",  1024 }
+	  { "limit%s swapuse %s",         ";\n",  1024 },
+	  { "limit%s kqueues %s",         ";\n",  1    },
       }
     },
     { "ksh|pdksh", "unlimited", "", " -H", " -S", "",
@@ -232,7 +236,8 @@
     { "sbsize",		login_getcapsize },
     { "vmemoryuse",	login_getcapsize },
     { "pseudoterminals",login_getcapnum  },
-    { "swapuse",	login_getcapsize }
+    { "swapuse",	login_getcapsize },
+    { "kqueues",	login_getcapnum  },
 };
 
 /*
@@ -647,6 +652,7 @@
 	case RLIMIT_NPROC:
 	case RLIMIT_NOFILE:
 	case RLIMIT_NPTS:
+	case RLIMIT_KQUEUES:
 	    res = strtoq(s, &e, 0);
 	    s = e;
 	    break;

Modified: trunk/usr.bin/procstat/procstat_rlimit.c
===================================================================
--- trunk/usr.bin/procstat/procstat_rlimit.c	2016-09-05 16:20:48 UTC (rev 7782)
+++ trunk/usr.bin/procstat/procstat_rlimit.c	2016-09-05 16:24:20 UTC (rev 7783)
@@ -46,7 +46,7 @@
 static struct {
 	const char *name;
 	const char *suffix;
-} rlimit_param[13] = {
+} rlimit_param[14] = {
 	{"cputime",          "sec"},
 	{"filesize",         "B  "},
 	{"datasize",         "B  "},
@@ -60,9 +60,10 @@
 	{"vmemoryuse",       "B  "},
 	{"pseudo-terminals", "   "},
 	{"swapuse",          "B  "},
+	{"kqueues",          "   "},
 };
 
-#if RLIM_NLIMITS > 13
+#if RLIM_NLIMITS > 14
 #error "Resource limits have grown. Add new entries to rlimit_param[]."
 #endif
 



More information about the Midnightbsd-cvs mailing list