svn commit: r256850 - in head: bin/sh etc lib/libc/sys lib/libutil usr.bin/limits usr.bin/procstat

Stefan Neudorf BM-2cXppXU4T67w7j6NCir9T1WdzBHmFgBnLj at bitmessage.ch
Wed Oct 30 13:32:31 UTC 2013


Konstantin Belousov <kib at FreeBSD.org> writes:

> Author: kib
> Date: Mon Oct 21 16:46:12 2013
> New Revision: 256850
> URL: http://svnweb.freebsd.org/changeset/base/256850
>
> Log:
>   Add a resource limit for the total number of kqueues available to the
>   user.  Kqueue now saves the ucred of the allocating thread, to
>   correctly decrement the counter on close.
>   
>   Under some specific and not real-world use scenario for kqueue, it is
>   possible for the kqueues to consume memory proportional to the square
>   of the number of the filedescriptors available to the process.  Limit
>   allows administrator to prevent the abuse.
>   
>   This is kernel-mode side of the change, with the user-mode enabling
>   commit following.
>   
>   Reported and tested by:	pho
>   Discussed with:	jmg
>   Sponsored by:	The FreeBSD Foundation
>   MFC after:	2 weeks
>
> Modified:
>   head/bin/sh/miscbltin.c
>   head/etc/login.conf
>   head/lib/libc/sys/getrlimit.2
>   head/lib/libutil/login_class.3
>   head/lib/libutil/login_class.c
>   head/usr.bin/limits/limits.c
>   head/usr.bin/procstat/procstat_rlimit.c

kqueues limit isn't documented in sh(1) and limits(1) manpages.

>
> Modified: head/bin/sh/miscbltin.c
> ==============================================================================
> --- head/bin/sh/miscbltin.c	Mon Oct 21 16:44:53 2013	(r256849)
> +++ head/bin/sh/miscbltin.c	Mon Oct 21 16:46:12 2013	(r256850)
> @@ -405,6 +405,9 @@ static const struct limits limits[] = {
>  #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' }
>  };
>  

I've submitted a patch to add ulimit -k (kqueue) to zsh but the reviewer
asked me to rename -k to -K to avoid conflict with ulimit -k (posixlocks)
from DragonFly. Do you anticipate FreeBSD never adds RLIMIT_POSIXLOCKS
support or would use incompatible option switch?

http://www.zsh.org/mla/workers/2013/msg00984.html
http://gitweb.dragonflybsd.org/dragonfly.git?a=search&h=HEAD&st=commit&s=posixlocks

> Modified: head/usr.bin/limits/limits.c
> ==============================================================================
> --- head/usr.bin/limits/limits.c	Mon Oct 21 16:44:53 2013	(r256849)
> +++ head/usr.bin/limits/limits.c	Mon Oct 21 16:46:12 2013	(r256850)

This adds limits -e support only for sh, csh, tcsh. What about other
shells that already support sbsize and swapuse extensions?



More information about the svn-src-head mailing list