From cc18d7bec7b3c5515cb9e6cd9771d4b94309b3bd Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 30 Apr 2015 13:12:54 +0200 Subject: score: Fine grained locking for message queues 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. --- doc/user/msg.t | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'doc/user/msg.t') diff --git a/doc/user/msg.t b/doc/user/msg.t index f58d677150..eb3cb3561a 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 advisable to keep the messages as short as possible. @subsection Building a Message Queue Attribute Set -- cgit v1.2.3