RTEMS Message Queue Behaviour

Jamie Bowman jamie.bowman at steepestascent.com
Fri Apr 9 10:21:13 UTC 2010


Alexi

Thank you very much for your quick response.

We have been setting the CONFIGURE_MESSAGE_BUFFER_MEMORY parameter within
our configuration, at least to values we think appear to be appropriate. We
have the following set:

#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES		18
#define CONFIGURE_MESSAGE_BUFFER_MEMORY		18*32*sizeof(LOGMSG)
//NO x DEPTH x SIZE

Our system has around 16 threads running, each of which has been configured
to have a stack size of 8*RTEMS_MINIMUM_STACK_SIZE which is more than
adequate for each task.

We configure our tasks as follows to accommodate the number of tasks and the
larger than default stack sizes:

#define CONFIGURE_MAXIMUM_TASKS		18
#define CONFIGURE_EXTRA_TASK_STACKS      (18*(8-1)*RTEMS_MINIMUM_STACK_SIZE)
#define CONFIGURE_MAXIMUM_SEMAPHORES	96

Are there any other configuration parameters we should be setting to
accommodate our setup?

Kind regards

	Jamie

Jamie Bowman
Steepest Ascent Ltd
Ladywell, 94 Duke Street, Glasgow, G4 0UW, UK
t: +44 (0) 141 552 8855
e: jamie at steepestascent.com
w: www.steepestascent.com

-----Original Message-----
From: aconchillo at gmail.com [mailto:aconchillo at gmail.com] On Behalf Of Aleix
Conchillo Flaqué
Sent: 09 April 2010 11:10
To: Jamie.Bowman at steepestascent.com
Cc: rtems-users at rtems.org
Subject: Re: RTEMS Message Queue Behaviour

A while ago I experienced strange problems with queues until I
configured the memory for them. In 4.6.6 CONFIGURE_MEMORY_OVERHEAD
defines the number of  kbytes necessary to fit your queue messages and
CONFIGURE_MESSAGE_BUFFER_MEMORY for newer RTEMS versions. Buffers are
not taken into account when reserving memory for message queues.

Hope it helps,

Aleix

On Fri, Apr 9, 2010 at 11:56, Jamie Bowman
<jamie.bowman at steepestascent.com> wrote:
> All
>
>
>
> I am experiencing some strange behaviour with RTEMS message queues,
although
> I suspect the problem may more to be with the main configuration of the
> application.
>
>
>
> I have a multi-threaded system, with a central logging thread. Information
> is sent from each thread to the logging thread via a single logging thread
> message queue. At the moment the logging thread simply uses a printf to
> output the messages it receives. The behaviour we are seeing though is
that
> the logging thread is in a certain instances reading the messages out of
the
> queue in the wrong order and it also seems that some messages are going
> missing all together. Monitoring the return of the
rtems_message_queue_send
> does not seem to reveal any issues with RTEMS_SUCCESSFUL returned every
> time. An example of what I am seeing is as follows:
>
>
>
> Sent: Message 1
>
> Sent: Message 2
>
> Sent: Message 3
>
> Sent: Message 4
>
> Sent: Message 5
>
> Sent: Message 6
>
> Sent: Message 7
>
>
>
>             LOGGING THREAD
>
> Read: Message 1
>
> Read: Message 2
>
> Read: Message 4
>
> Read: Message 3
>
> Read: Message 5
>
>
>
> Messages 3 and 4 are out of order and 6 and 7 never seem to get through.
>
>
>
> Does anyone have any ideas as to why this may be happening? I am using
RTEMS
> 4.8.1.
>
>
>
> Kind regards
>
>
>
>             Jamie
>
>
>
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>
>




More information about the users mailing list