[PATCH 24/45] score: Fine grained locking for message queues

Gedare Bloom gedare at rtems.org
Sun May 17 12:35:36 UTC 2015

On Fri, May 15, 2015 at 7:41 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
> Aggregate several critical sections into a bigger one.  Sending and
> receiving messages is now protected by an ISR lock.  Thread dispatching
> is only disabled in case a blocking operation is necessary.  The message
> copy procedure is done inside the critical section (interrupts
> disabled).  Thus this change may have a negative impact on the interrupt
> latency in case very large messages are transferred.
> Update #2273.
> ---
> diff --git a/doc/user/msg.t b/doc/user/msg.t
> index f58d677..4ca5611 100644
> --- a/doc/user/msg.t
> +++ b/doc/user/msg.t
> @@ -50,7 +50,10 @@ wait for a message to arrive at a queue.  Also, a task may poll
>  a queue for the arrival of a message.
>  The maximum length message which can be sent is set
> -on a per message queue basis.
> +on a per message queue basis.  The message content must be copied in general
> +to/from an internal buffer of the message queue or directly to a peer in
> +certain cases.  This copy operation is performed with interrupts disabled.  So
> +it is advisible to keep the messages as short as possible.

Thanks for making this note. Do we have any documentation that lists
all the kinds of factors that affect the interrupt-disabled time? That
would be "nice to have".

More information about the devel mailing list