On 2015-04-21 18:16, Gilles Chanteperdrix wrote:
> 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.
The crash can be caused by the the library code and, thus, can happen
even if the application code would not crash. That is my problem.
> 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.
Is it specified that this call invalidate a stack address set earlier? I
don't see this.
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai