This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/2] Set default stack size from program environment


On 03/05/2013 02:57 PM, Siddhesh Poyarekar wrote:
On 2 March 2013 02:32, Roland McGrath <roland@hack.frob.com> wrote:
It's worse in some regards and better in others.  Anything overly
coarse-grained like system-wide configuration when it can be local
per-user or per-process/inherited configuration is worse for the
issues of user choice and flexibility.  Conversely, anything only
changeable by privileged administrator action rather than inherited
from something casually fungible like the environment is better for
the issue of security hardening.

Sorry for chiming in late.


How about something like this:

1. A /etc/pthreads.conf with hard limits for stack sizes.  Its absence
means that RLIMIT_STACK is in play
2. A per-user .pthreads.conf with user-level overrides for stack sizes
(default_stack_size=1024K) and/or program-level overrides
(default_stack_size=/usr/bin/foo:2M)
3. An environment variable for process-level overrides.

This would need also a clear semantic: What if both 2 and 3 are used?



That way we include stuff that everyone hates; the magic environment variable that you hate and the configuration files that Carlos hates and of course, slower start-up time which I'm sure *everyone* will hate ;) However, it would IMO do a better job of providing administrative-level adjustment of stack sizes that I attempted before.

And doing all of that together is the most flexible way - but it means IMHO we have not understood the problem fully.


It's either 2 or 3 - but there should not be two ways for a single user to specify the value.

Regarding 1: Doesn't ulimit allow hard limits for stack sizes already?

This kind of different values will be very hard to debug - unless you add also some kind of LD_DEBUG=pthread debugging facility that displays the values read and the choice made.

Andreas
--
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
  SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]