From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] [Xenomai-git] Jan Kiszka : lib/cobalt: Rework minimum stack size enforcement
Date: Tue, 21 Apr 2015 18:16:23 +0200 [thread overview]
Message-ID: <20150421161623.GY7109@hermes.click-hack.org> (raw)
In-Reply-To: <553676DF.8020607@siemens.com>
On Tue, Apr 21, 2015 at 06:12:15PM +0200, Jan Kiszka wrote:
> On 2015-04-21 18:06, Gilles Chanteperdrix wrote:
> > On Tue, Apr 21, 2015 at 06:04:42PM +0200, Jan Kiszka wrote:
> >> On 2015-04-21 17:27, Gilles Chanteperdrix wrote:
> >>> On Tue, Apr 21, 2015 at 05:22:34PM +0200, git repository hosting wrote:
> >>>> +COBALT_IMPL(int, pthread_attr_setstack, (pthread_attr_t *attr, void *stackaddr,
> >>>> + size_t stacksize))
> >>>> +{
> >>>> + if (stacksize < COBALT_STACKSIZE_MIN)
> >>>> + return -EINVAL;
> >>>> + return __STD(pthread_attr_setstack)(attr, stackaddr, stacksize);
> >>>> +}
> >>>
> >>> As I said, there is no reason for Xenomai to enforce a task size
> >>> larger than PTHREAD_STACK_MIN. This breaks POSIX compliance, and is
> >>> useless.
> >>
> >> Then we should not use printf & Co. from any trampoline function, e.g.
> >> vxworks/taskLib.c:task_trampoline. I only tried with a local skin, but I
> >> bet the issue is reproducible with that one.
> >>
> >> For that reason, I went down the conservative path.
> >
> > The path you took breaks compatibility with POSIX. On a compliant
> > system, pthread_attr_setstacksize(attr, PTHREAD_STACK_MIN) is not
> > supposed to return an error.
>
> That is true. We have to pick from one evil: fail non-compliant here or
> crash later.
The point is: you do not know if it will crash later, you can assume
that the user calling pthread_attr_setstack knows what he is doing.
Any user calling this interface should. We are doing real-time in C,
not making an API for tutorials in ADA, or C++, let us try not to
prevent the user from doing what he wants.
For pthread_attr_setstacksize, you can round to the larger size and
remain POSIX compliant.
--
Gilles.
next prev parent reply other threads:[~2015-04-21 16:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1Yka0Q-00008c-Jh@sd-51317.xenomai.org>
2015-04-21 15:27 ` [Xenomai] [Xenomai-git] Jan Kiszka : lib/cobalt: Rework minimum stack size enforcement Gilles Chanteperdrix
2015-04-21 16:04 ` Jan Kiszka
2015-04-21 16:06 ` Gilles Chanteperdrix
2015-04-21 16:12 ` Jan Kiszka
2015-04-21 16:16 ` Gilles Chanteperdrix [this message]
2015-04-21 16:20 ` Jan Kiszka
2015-04-21 16:32 ` Gilles Chanteperdrix
2015-04-21 16:37 ` Jan Kiszka
2015-04-21 16:40 ` Gilles Chanteperdrix
2015-04-21 17:52 ` Jan Kiszka
2015-04-21 17:56 ` Gilles Chanteperdrix
2015-04-21 18:04 ` Jan Kiszka
2015-04-21 18:16 ` Gilles Chanteperdrix
2015-04-21 18:25 ` Gilles Chanteperdrix
2015-04-21 18:25 ` Jan Kiszka
2015-04-21 18:35 ` Gilles Chanteperdrix
2015-04-21 18:44 ` Gilles Chanteperdrix
2015-04-21 16:38 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150421161623.GY7109@hermes.click-hack.org \
--to=gilles.chanteperdrix@xenomai.org \
--cc=jan.kiszka@siemens.com \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.