All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] minimum xenomai stack size (mercury)
@ 2015-07-24 12:48 Thomas De Schampheleire
  2015-08-19 11:03 ` Thomas De Schampheleire
  2015-08-25 14:19 ` Philippe Gerum
  0 siblings, 2 replies; 7+ messages in thread
From: Thomas De Schampheleire @ 2015-07-24 12:48 UTC (permalink / raw)
  To: xenomai, Jan Kiszka, Ronny Meeus, Philippe Gerum

Hi,

With Xenomai Mercury (specifically the PSOS skin, but that doesn't
matter for this question), the minimal stack size applied is
PTHREAD_STACK_MIN * 4, even if the caller requested a smaller one.

On MIPS, and some other architectures, PTHREAD_STACK_MIN is already 128K:
(<glibc>/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h)

/* Minimum size for a thread. At least two pages with 64k pages. */
#define PTHREAD_STACK_MIN 131072

With Xenomai multiplying this with 4, every thread has half a megabyte
of stack, which is way too much for systems with a large number of
threads.
It is possible to limit this in other ways, by setting 'ulimit -s 128'
for example, but it is a dirty workaround in my opinion.

What is the real minimum stack requirement for Xenomai? I cannot
imagine that this is in the order of 512K.

With PTHREAD_STACK_MIN varying so much on different platforms, what
about code like:

minimum_stacksize = MAX(XENOMAI_STACK_MIN, PTHREAD_STACK_MIN);

if (stacksize < minimum_stacksize) {
    stacksize = minimum_stacksize;
}

where XENOMAI_STACK_MIN is a value that is not calculated based on
PTHREAD_STACK_MIN?

With this approach, systems with 16K PTHREAD_STACK_MIN could still get
64K minimum stack in case the xenomai minimum stack size is 64K, while
not negatively impacting systems that have 128K PTHREAD_STACK_MIN.

(Note that for systems with 4K/8K pages, the PTHREAD_STACK_MIN of 128K
(two 'pages' taken for 64K) is already very exaggerated)


Thanks,
Thomas


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-08-25 19:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-24 12:48 [Xenomai] minimum xenomai stack size (mercury) Thomas De Schampheleire
2015-08-19 11:03 ` Thomas De Schampheleire
2015-08-19 14:58   ` Philippe Gerum
2015-08-19 15:12     ` Thomas De Schampheleire
2015-08-19 15:35       ` Philippe Gerum
2015-08-25 14:19 ` Philippe Gerum
2015-08-25 19:19   ` Thomas De Schampheleire

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.