You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2020/12/20 18:32:08 UTC

[incubator-nuttx] 01/02: sched/mqueue: Make the pre-allocated irq messages configurable

This is an automated email from the ASF dual-hosted git repository.

aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit c07976077731e6da417b204ab8b01f9674e12fa7
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Mon Dec 14 15:42:22 2020 +0800

    sched/mqueue: Make the pre-allocated irq messages configurable
    
    the message can't be dynamically allocated in any irq handler
    so it's important to let the user extend the number as needed
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
    Change-Id: Ia26584c3815bac6cf24de4c88be0844ac8e8fba2
---
 sched/Kconfig                | 6 ++++++
 sched/mqueue/mq_initialize.c | 2 +-
 sched/mqueue/mqueue.h        | 6 ------
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/sched/Kconfig b/sched/Kconfig
index 591e186..2a41d1c 100644
--- a/sched/Kconfig
+++ b/sched/Kconfig
@@ -1536,6 +1536,12 @@ config PREALLOC_MQ_MSGS
 		The number of pre-allocated message structures.  The system manages
 		a pool of preallocated message structures to minimize dynamic allocations
 
+config PREALLOC_MQ_IRQ_MSGS
+	int "Number of pre-allocated irq messages"
+	default 8
+	---help---
+		The number of pre-allocated irq message structures.
+
 config MQ_MAXMSGSIZE
 	int "Maximum message size"
 	default 32
diff --git a/sched/mqueue/mq_initialize.c b/sched/mqueue/mq_initialize.c
index 2cf9a78..aefd74b 100644
--- a/sched/mqueue/mq_initialize.c
+++ b/sched/mqueue/mq_initialize.c
@@ -168,7 +168,7 @@ void nxmq_initialize(void)
    */
 
   g_msgfreeirqalloc =
-    mq_msgblockalloc(&g_msgfreeirq, NUM_INTERRUPT_MSGS,
+    mq_msgblockalloc(&g_msgfreeirq, CONFIG_PREALLOC_MQ_IRQ_MSGS,
                      MQ_ALLOC_IRQ);
 
   /* Allocate a block of message queue descriptors */
diff --git a/sched/mqueue/mqueue.h b/sched/mqueue/mqueue.h
index 39e4080..0c1b78a 100644
--- a/sched/mqueue/mqueue.h
+++ b/sched/mqueue/mqueue.h
@@ -53,12 +53,6 @@
 
 #define NUM_MSG_DESCRIPTORS  4
 
-/* This defines the number of messages to set aside for exclusive use by
- * interrupt handlers
- */
-
-#define NUM_INTERRUPT_MSGS   8
-
 /********************************************************************************
  * Public Type Definitions
  ********************************************************************************/