memory overhead of rtems regions

Gedare Bloom gedare at rtems.org
Thu Mar 7 14:09:00 UTC 2013


Check how many message queues your application has configured.

#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES    ?

On Thu, Mar 7, 2013 at 7:05 AM, Matthew J Fletcher <amimjf at gmail.com> wrote:
> Hi,
>
> Reading the documentation for rtems regions is a bit vague about the
> overhead of the lists that behind the scenes manage the blocks. Its quite
> possible i am not fully understanding the operation. I have a call sequence
> as follows.
>
> rtems_region_create( length = 19800, page_size = 128 )
>   rtems_region_get_segment( size = 160 )
>     rtems_message_queue_create ( count = 160, max_size =2 )
>   rtems_region_get_segment( size = 400 )
>     rtems_message_queue_create ( count = 400, max_size =2 )
>   rtems_region_get_segment( size = 1600 )
>     rtems_message_queue_create ( count = 1600, max_size =2 )
>   rtems_region_get_segment( size = 40 )
>     rtems_message_queue_create ( count = 40, max_size =2 )
>   rtems_region_get_segment( size = 4000 )
>     rtems_message_queue_create ( count = 4000, max_size =2 )
>   rtems_region_get_segment( size = 40 )
>     rtems_message_queue_create ( count = 40, max_size =2 )
>   rtems_region_get_segment( size = 40 )
>     rtems_message_queue_create ( count = 40, max_size =2 )
>   rtems_region_get_segment( size = 40 )
>     rtems_message_queue_create ( count = 40, max_size =2 )
>   rtems_region_get_segment( size = 40 )
>     rtems_message_queue_create ( count = 40, max_size =2 )
>   rtems_region_get_segment( size = 120 )
>     rtems_message_queue_create ( count = 120, max_size =2 )
>   rtems_region_get_segment( size = 400 )
>     rtems_message_queue_create ( count = 400, max_size =2 )
>   rtems_region_get_segment( size = 400 )
>     rtems_message_queue_create ( count = 400, max_size =2 )
>   rtems_region_get_segment( size = 2000 ) // total size upto here 7320
>     rtems_message_queue_create ( count = 2000, max_size =2 )
>     // returns RTEMS_UNSATISFIED - unable to allocate message buffers here
>
> I dont fully understand why RTEMS_UNSATISFIED is being returned from the
> queue_create(), is there really a 50%+ overhead in managing 128 byte pages ?
> out of a 19800 length.
>
> I am presuming that the RTEMS_UNSATISFIED is because of the region size, but
> i could be wrong about that.
>
>
> regards
> ---
> Matthew J Fletcher
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>



More information about the users mailing list