[Xenomai] ENOMEM returned from rt_task_create and rt_sem_create

Steve Hartmann shartmann at cnt.canon.com
Mon Aug 25 19:40:06 CEST 2014



On 8/25/14 7:48 AM, "Philippe Gerum" <rpm at xenomai.org> wrote:

>On 08/25/2014 01:33 PM, Steve Hartmann wrote:
>> 
>> 
>> On 8/25/14 3:47 AM, "Philippe Gerum" <rpm at xenomai.org> wrote:
>> 
>>> On 08/22/2014 01:44 PM, Steve Hartmann wrote:
>>>>
>>>>
>>>> On 8/22/14 1:28 AM, "Philippe Gerum" <rpm at xenomai.org> wrote:
>>>>
>>>>> On 08/21/2014 10:04 PM, Steve Hartmann wrote:
>>>>>> Hi folks,
>>>>>>
>>>>>> I am using linux 3.2.21 + xenomai 2.6.2.1 on intel core i7.  This
>>>>>>is a
>>>>>> user land application.
>>>>>>
>>>>>> This code I am having issues with was working pretty well until I
>>>>>> added
>>>>>> some more semaphores.  As it runs right now, it will call
>>>>>> rt_sem_create
>>>>>> 544 times, then call a single rt_task_create.  There are also about
>>>>>>15
>>>>>> mutexes created also.  I didn't count it, but somewhere around 520
>>>>>>or
>>>>>> so
>>>>>> semaphores, I start getting ENOMEM returned from both of these
>>>>>> methods.
>>>>>>
>>>>>> Is there a way I can increase whatever memory pool these are pulling
>>>>>> from?  It is feasible to rewrite the code so I use less semaphores,
>>>>>> but
>>>>>> if it is not detrimental, I would like to just raise whatever limit
>>>>>>it
>>>>>> is that I am running into.
>>>>>>
>>>>>
>>>>>
>>>>> Raising CONFIG_XENO_OPT_SYS_HEAPSZ should fix this issue.
>>>>>
>>>>> -- 
>>>>> Philippe.
>>>>
>>>> Thanks for the reply.
>>>>
>>>> That's what I thought too.  I doubled it to 512 and saw no effect.  I
>>>> also
>>>> doubled the value of CONFIG_XENO_OPT_GLOBAL_SEM_HEAP and
>>>> CONFIG_XENO_OPT_SEM_HEAPSZ to see if they had any effect - they did
>>>>not.
>>>>
>>>>
>>>
>>> This could be the number of registry slots then, try raising
>>> CONFIG_XENO_OPT_REGISTRY_NRSLOTS.
>>>
>>> -- 
>>> Philippe.
>> 
>> Thanks, I will try that today.  However, in all the calls to
>> rt_sem_create, I pass NULL to the name parameter.  Should the semaphores
>> still be taking up registry slots even if unnamed?
>> 
>
>When created from user-space, they will. This way we get a valid
>internal identifier on an anon object, for referring to it from userland.
>
>-- 
>Philippe.

That fixed it.  Thank you so much for your help!

Steven





More information about the Xenomai mailing list