[Xenomai] ENOMEM returned from rt_task_create and rt_sem_create

Steve Hartmann shartmann at cnt.canon.com
Mon Aug 25 13:33:43 CEST 2014



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?

Steven





More information about the Xenomai mailing list