svn commit: r355828 - head/sys/sys

Cy Schubert Cy.Schubert at cschubert.com
Tue Dec 17 04:42:38 UTC 2019


In message <201912162355.xBGNtUq6078840 at repo.freebsd.org>, "Pedro F. 
Giffuni" w
rites:
> Author: pfg
> Date: Mon Dec 16 23:55:30 2019
> New Revision: 355828
> URL: https://svnweb.freebsd.org/changeset/base/355828
>
> Log:
>   Double the size of ARG_MAX on LP64 platforms.
>   
>   As modern software keeps growing in size, we get requests to update the
>   value of ARG_MAX in order to link the resulting object files. Other OSs
>   have much higher values but Increasiong ARG_MAX has a multiplied effect on
>   KVA, so just bumping this value is dangerous in some archs like ARM32 that
>   can exhaust KVA rather easily.
>   
>   While it would be better to have a unique value for all archs, other OSs
>   (Illumos in partidular) can have different ARG_MAX limits depending on the
>   platform,  For now we want to be really conservative so we are avoidng
>   the change on ILP32 and in the alternative case we only double it since tha
> t
>   seems to work well enough for recent Code Aster.
>   
>   I was planning to bump the _FreeBSD_version but it was bumped recently
>   (r355798) so we can reuse the 1300068 value for this change.

This doesn't seem right. Each bump should be for a distinct change and 
documented as such.

Also, it's not like we're saving any build time anyway. sys/syslimits.h 
will cause a substantial portion to be rebuilt anyway.

>   
>   PR:		241710
>   MFC after:	5 days
>
> Modified:
>   head/sys/sys/syslimits.h
>
> Modified: head/sys/sys/syslimits.h
> =============================================================================
> =
> --- head/sys/sys/syslimits.h	Mon Dec 16 23:08:09 2019	(r355827)
> +++ head/sys/sys/syslimits.h	Mon Dec 16 23:55:30 2019	(r355828)
> @@ -48,7 +48,11 @@
>   * Do not add any new variables here.  (See the comment at the end of
>   * the file for why.)
>   */
> -#define	ARG_MAX			262144	/* max bytes for an exec functi
> on */
> +#ifndef __ILP32__
> +#define	ARG_MAX	      (2 * 256 * 1024)	/* max bytes for an exec functi
> on */
> +#else
> +#define	ARG_MAX		  (256 * 1024)	/* max bytes for KVA-starved ar
> chs */
> +#endif
>  #ifndef CHILD_MAX
>  #define	CHILD_MAX		   40	/* max simultaneous processes *
> /
>  #endif
>


-- 
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX:  <cy at FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.




More information about the svn-src-all mailing list