You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/09/28 10:08:42 UTC

[incubator-nuttx] branch master updated (d9065f29aa -> 85d013f69a)

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

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


    from d9065f29aa tools/ci: add pyelftools and cxxfilt
     new 838309313e sched: semaphore wait list optimize
     new 85d013f69a sched: mqueue wait list optimize

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 include/nuttx/mqueue.h               |  5 +++++
 include/nuttx/semaphore.h            | 12 +++++++++---
 include/semaphore.h                  | 19 +++++++++++++++---
 libs/libc/semaphore/sem_init.c       |  4 ++++
 sched/init/nx_start.c                | 36 ++++++++---------------------------
 sched/mqueue/mq_msgqalloc.c          |  3 +++
 sched/mqueue/mq_rcvinternal.c        |  8 ++------
 sched/mqueue/mq_sndinternal.c        |  8 ++------
 sched/sched/sched.h                  | 37 ++++++++++--------------------------
 sched/sched/sched_addblocked.c       | 10 +++++-----
 sched/sched/sched_removeblocked.c    |  2 +-
 sched/sched/sched_removereadytorun.c |  2 +-
 sched/sched/sched_setpriority.c      |  2 +-
 sched/semaphore/sem_post.c           |  4 +---
 sched/task/task_restart.c            |  4 ++--
 sched/task/task_terminate.c          |  4 ++--
 16 files changed, 72 insertions(+), 88 deletions(-)


[incubator-nuttx] 01/02: sched: semaphore wait list optimize

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 838309313e177d207fc59c039e77050e8f6ee8ec
Author: zhangyuan21 <zh...@xiaomi.com>
AuthorDate: Mon Sep 19 18:17:14 2022 +0800

    sched: semaphore wait list optimize
---
 include/nuttx/semaphore.h            | 12 +++++++++---
 include/semaphore.h                  | 19 ++++++++++++++++---
 libs/libc/semaphore/sem_init.c       |  4 ++++
 sched/init/nx_start.c                | 12 ++++--------
 sched/sched/sched.h                  | 21 ++++++++++-----------
 sched/sched/sched_addblocked.c       | 10 +++++-----
 sched/sched/sched_removeblocked.c    |  2 +-
 sched/sched/sched_removereadytorun.c |  2 +-
 sched/sched/sched_setpriority.c      |  2 +-
 sched/semaphore/sem_post.c           |  4 +---
 sched/task/task_restart.c            |  4 ++--
 sched/task/task_terminate.c          |  4 ++--
 12 files changed, 56 insertions(+), 40 deletions(-)

diff --git a/include/nuttx/semaphore.h b/include/nuttx/semaphore.h
index 736113c96e..3ad14d514e 100644
--- a/include/nuttx/semaphore.h
+++ b/include/nuttx/semaphore.h
@@ -40,15 +40,21 @@
 
 #ifdef CONFIG_PRIORITY_INHERITANCE
 # if CONFIG_SEM_PREALLOCHOLDERS > 0
+/* semcount, waitlist, flags, hhead */
+
 #  define NXSEM_INITIALIZER(c, f) \
-    {(c), (f), NULL}                    /* semcount, flags, hhead */
+    {(c), SEM_WAITLIST_INITIALIZER, (f), NULL}
 # else
+/* semcount, waitlist, flags, holder[2] */
+
 #  define NXSEM_INITIALIZER(c, f) \
-    {(c), (f), {SEMHOLDER_INITIALIZER, SEMHOLDER_INITIALIZER}}  /* semcount, flags, holder[2] */
+    {(c), SEM_WAITLIST_INITIALIZER, (f), {SEMHOLDER_INITIALIZER, SEMHOLDER_INITIALIZER}}
 # endif
 #else /* CONFIG_PRIORITY_INHERITANCE */
+/* semcount, waitlist */
+
 #  define NXSEM_INITIALIZER(c, f) \
-    {(c)}                               /* semcount, flags */
+    {(c), SEM_WAITLIST_INITIALIZER}
 #endif /* CONFIG_PRIORITY_INHERITANCE */
 
 /* Most internal nxsem_* interfaces are not available in the user space in
diff --git a/include/semaphore.h b/include/semaphore.h
index 6d377b1b87..bfc6122818 100644
--- a/include/semaphore.h
+++ b/include/semaphore.h
@@ -30,6 +30,7 @@
 #include <stdint.h>
 #include <limits.h>
 #include <time.h>
+#include <nuttx/queue.h>
 
 /****************************************************************************
  * Pre-processor Definitions
@@ -93,6 +94,8 @@ struct semholder_s
 #endif
 #endif /* CONFIG_PRIORITY_INHERITANCE */
 
+#define SEM_WAITLIST_INITIALIZER {NULL, NULL}
+
 /* This is the generic semaphore structure. */
 
 struct sem_s
@@ -100,6 +103,8 @@ struct sem_s
   volatile int16_t semcount;     /* >0 -> Num counts available */
                                  /* <0 -> Num tasks waiting for semaphore */
 
+  dq_queue_t waitlist;
+
   /* If priority inheritance is enabled, then we have to keep track of which
    * tasks hold references to the semaphore.
    */
@@ -120,17 +125,25 @@ typedef struct sem_s sem_t;
 
 #ifdef CONFIG_PRIORITY_INHERITANCE
 # if CONFIG_SEM_PREALLOCHOLDERS > 0
+/* semcount, waitlist, flags, hhead */
+
 #  define SEM_INITIALIZER(c) \
-    {(c), 0, NULL}               /* semcount, flags, hhead */
+    {(c), SEM_WAITLIST_INITIALIZER, 0, NULL}
 # else
+/* semcount, waitlist, flags, holder[2] */
+
 #  define SEM_INITIALIZER(c) \
-    {(c), 0, {SEMHOLDER_INITIALIZER, SEMHOLDER_INITIALIZER}} /* semcount, flags, holder[2] */
+    {(c), SEM_WAITLIST_INITIALIZER, 0, {SEMHOLDER_INITIALIZER, SEMHOLDER_INITIALIZER}}
 # endif
 #else
+/* semcount, waitlist */
+
 #  define SEM_INITIALIZER(c) \
-    {(c)}                        /* semcount */
+    {(c), SEM_WAITLIST_INITIALIZER}
 #endif
 
+# define SEM_WAITLIST(sem)        (&((sem)->waitlist))
+
 /****************************************************************************
  * Public Data
  ****************************************************************************/
diff --git a/libs/libc/semaphore/sem_init.c b/libs/libc/semaphore/sem_init.c
index 785403599d..f4f276b6fa 100644
--- a/libs/libc/semaphore/sem_init.c
+++ b/libs/libc/semaphore/sem_init.c
@@ -73,6 +73,10 @@ int nxsem_init(FAR sem_t *sem, int pshared, unsigned int value)
 
       sem->semcount         = (int16_t)value;
 
+      /* Initialize semaphore wait list */
+
+      dq_init(&sem->waitlist);
+
       /* Initialize to support priority inheritance */
 
 #ifdef CONFIG_PRIORITY_INHERITANCE
diff --git a/sched/init/nx_start.c b/sched/init/nx_start.c
index 52b13279d1..4be3b50750 100644
--- a/sched/init/nx_start.c
+++ b/sched/init/nx_start.c
@@ -134,10 +134,6 @@ FAR struct tcb_s *g_running_tasks[CONFIG_SMP_NCPUS];
 
 dq_queue_t g_pendingtasks;
 
-/* This is the list of all tasks that are blocked waiting for a semaphore */
-
-dq_queue_t g_waitingforsemaphore;
-
 /* This is the list of all tasks that are blocked waiting for a signal */
 
 dq_queue_t g_waitingforsignal;
@@ -237,8 +233,8 @@ const struct tasklist_s g_tasklisttable[NUM_TASK_STATES] =
     0
   },
   {                                              /* TSTATE_WAIT_SEM */
-    &g_waitingforsemaphore,
-    TLIST_ATTR_PRIORITIZED
+    (FAR void *)offsetof(sem_t, waitlist),
+    TLIST_ATTR_PRIORITIZED | TLIST_ATTR_OFFSET
   },
   {                                              /* TSTATE_WAIT_SIG */
     &g_waitingforsignal,
@@ -429,9 +425,9 @@ void nx_start(void)
        */
 
 #ifdef CONFIG_SMP
-      tasklist = TLIST_HEAD(TSTATE_TASK_RUNNING, i);
+      tasklist = TLIST_HEAD(&g_idletcb[i].cmn, i);
 #else
-      tasklist = TLIST_HEAD(TSTATE_TASK_RUNNING);
+      tasklist = TLIST_HEAD(&g_idletcb[i].cmn);
 #endif
       dq_addfirst((FAR dq_entry_t *)&g_idletcb[i], tasklist);
 
diff --git a/sched/sched/sched.h b/sched/sched/sched.h
index 976c411583..82454fae1c 100644
--- a/sched/sched/sched.h
+++ b/sched/sched/sched.h
@@ -68,22 +68,25 @@
 #define TLIST_ATTR_PRIORITIZED   (1 << 0) /* Bit 0: List is prioritized */
 #define TLIST_ATTR_INDEXED       (1 << 1) /* Bit 1: List is indexed by CPU */
 #define TLIST_ATTR_RUNNABLE      (1 << 2) /* Bit 2: List includes running tasks */
+#define TLIST_ATTR_OFFSET        (1 << 3) /* Bit 3: Pointer of task list is offset */
 
 #define __TLIST_ATTR(s)          g_tasklisttable[s].attr
 #define TLIST_ISPRIORITIZED(s)   ((__TLIST_ATTR(s) & TLIST_ATTR_PRIORITIZED) != 0)
 #define TLIST_ISINDEXED(s)       ((__TLIST_ATTR(s) & TLIST_ATTR_INDEXED) != 0)
 #define TLIST_ISRUNNABLE(s)      ((__TLIST_ATTR(s) & TLIST_ATTR_RUNNABLE) != 0)
+#define TLIST_ISOFFSET(s)        ((__TLIST_ATTR(s) & TLIST_ATTR_OFFSET) != 0)
 
-#define __TLIST_HEAD(s)          g_tasklisttable[s].list
-#define __TLIST_HEADINDEXED(s,c) (&(__TLIST_HEAD(s))[c])
+#define __TLIST_HEAD(t) \
+  (TLIST_ISOFFSET((t)->task_state) ? (FAR dq_queue_t *)((FAR uint8_t *)((t)->waitobj) + \
+  (uintptr_t)g_tasklisttable[(t)->task_state].list) : g_tasklisttable[(t)->task_state].list)
 
 #ifdef CONFIG_SMP
-#  define TLIST_HEAD(s,c) \
-  ((TLIST_ISINDEXED(s)) ? __TLIST_HEADINDEXED(s,c) : __TLIST_HEAD(s))
-#  define TLIST_BLOCKED(s)       __TLIST_HEAD(s)
+#  define TLIST_HEAD(t,c) \
+    ((TLIST_ISINDEXED((t)->task_state)) ? (&(__TLIST_HEAD(t))[c]) : __TLIST_HEAD(t))
+#  define TLIST_BLOCKED(t)       __TLIST_HEAD(t)
 #else
-#  define TLIST_HEAD(s)          __TLIST_HEAD(s)
-#  define TLIST_BLOCKED(s)       __TLIST_HEAD(s)
+#  define TLIST_HEAD(t)          __TLIST_HEAD(t)
+#  define TLIST_BLOCKED(t)       __TLIST_HEAD(t)
 #endif
 
 /****************************************************************************
@@ -171,10 +174,6 @@ extern FAR struct tcb_s *g_running_tasks[CONFIG_SMP_NCPUS];
 
 extern dq_queue_t g_pendingtasks;
 
-/* This is the list of all tasks that are blocked waiting for a semaphore */
-
-extern dq_queue_t g_waitingforsemaphore;
-
 /* This is the list of all tasks that are blocked waiting for a signal */
 
 extern dq_queue_t g_waitingforsignal;
diff --git a/sched/sched/sched_addblocked.c b/sched/sched/sched_addblocked.c
index c894b5e813..d81575f699 100644
--- a/sched/sched/sched_addblocked.c
+++ b/sched/sched/sched_addblocked.c
@@ -63,9 +63,13 @@ void nxsched_add_blocked(FAR struct tcb_s *btcb, tstate_t task_state)
   DEBUGASSERT(task_state >= FIRST_BLOCKED_STATE &&
               task_state <= LAST_BLOCKED_STATE);
 
+  /* Make sure the TCB's state corresponds to the list */
+
+  btcb->task_state = task_state;
+
   /* Add the TCB to the blocked task list associated with this state. */
 
-  tasklist = TLIST_BLOCKED(task_state);
+  tasklist = TLIST_BLOCKED(btcb);
 
   /* Determine if the task is to be added to a prioritized task list. */
 
@@ -81,8 +85,4 @@ void nxsched_add_blocked(FAR struct tcb_s *btcb, tstate_t task_state)
 
       dq_addlast((FAR dq_entry_t *)btcb, tasklist);
     }
-
-  /* Make sure the TCB's state corresponds to the list */
-
-  btcb->task_state = task_state;
 }
diff --git a/sched/sched/sched_removeblocked.c b/sched/sched/sched_removeblocked.c
index be7e348bb5..74c597c36f 100644
--- a/sched/sched/sched_removeblocked.c
+++ b/sched/sched/sched_removeblocked.c
@@ -66,7 +66,7 @@ void nxsched_remove_blocked(FAR struct tcb_s *btcb)
    * with this state
    */
 
-  dq_rem((FAR dq_entry_t *)btcb, TLIST_BLOCKED(task_state));
+  dq_rem((FAR dq_entry_t *)btcb, TLIST_BLOCKED(btcb));
 
   /* Indicate that the wait is over. */
 
diff --git a/sched/sched/sched_removereadytorun.c b/sched/sched/sched_removereadytorun.c
index a3c2e06756..0b168a15fb 100644
--- a/sched/sched/sched_removereadytorun.c
+++ b/sched/sched/sched_removereadytorun.c
@@ -130,7 +130,7 @@ bool nxsched_remove_readytorun(FAR struct tcb_s *rtcb)
    */
 
   cpu      = rtcb->cpu;
-  tasklist = TLIST_HEAD(rtcb->task_state, cpu);
+  tasklist = TLIST_HEAD(rtcb, cpu);
 
   /* Check if the TCB to be removed is at the head of a ready-to-run list.
    * For the case of SMP, there are two lists involved:  (1) the
diff --git a/sched/sched/sched_setpriority.c b/sched/sched/sched_setpriority.c
index e07cbadafc..2ae5bc11e7 100644
--- a/sched/sched/sched_setpriority.c
+++ b/sched/sched/sched_setpriority.c
@@ -278,7 +278,7 @@ static inline void nxsched_blocked_setpriority(FAR struct tcb_s *tcb,
 
   /* CASE 3a. The task resides in a prioritized list. */
 
-  tasklist = TLIST_BLOCKED(task_state);
+  tasklist = TLIST_BLOCKED(tcb);
   if (TLIST_ISPRIORITIZED(task_state))
     {
       /* Remove the TCB from the prioritized task list */
diff --git a/sched/semaphore/sem_post.c b/sched/semaphore/sem_post.c
index 917238355a..21bb59fbbb 100644
--- a/sched/semaphore/sem_post.c
+++ b/sched/semaphore/sem_post.c
@@ -139,9 +139,7 @@ int nxsem_post(FAR sem_t *sem)
            * that we want.
            */
 
-          for (stcb = (FAR struct tcb_s *)g_waitingforsemaphore.head;
-               (stcb && stcb->waitobj != sem);
-               stcb = stcb->flink);
+          stcb = (FAR struct tcb_s *)dq_peek(SEM_WAITLIST(sem));
 
           if (stcb != NULL)
             {
diff --git a/sched/task/task_restart.c b/sched/task/task_restart.c
index 50a9d11610..0a04c1481d 100644
--- a/sched/task/task_restart.c
+++ b/sched/task/task_restart.c
@@ -133,9 +133,9 @@ int nxtask_restart(pid_t pid)
    */
 
 #ifdef CONFIG_SMP
-  tasklist = TLIST_HEAD(tcb->cmn.task_state, tcb->cmn.cpu);
+  tasklist = TLIST_HEAD(&tcb->cmn, tcb->cmn.cpu);
 #else
-  tasklist = TLIST_HEAD(tcb->cmn.task_state);
+  tasklist = TLIST_HEAD(&tcb->cmn);
 #endif
 
   dq_rem((FAR dq_entry_t *)tcb, tasklist);
diff --git a/sched/task/task_terminate.c b/sched/task/task_terminate.c
index c38709db69..b2e73aaa67 100644
--- a/sched/task/task_terminate.c
+++ b/sched/task/task_terminate.c
@@ -131,13 +131,13 @@ int nxtask_terminate(pid_t pid, bool nonblocking)
 
   /* Get the task list associated with the thread's state and CPU */
 
-  tasklist = TLIST_HEAD(dtcb->task_state, cpu);
+  tasklist = TLIST_HEAD(dtcb, cpu);
 #else
   /* In the non-SMP case, we can be assured that the task to be terminated
    * is not running.  get the task list associated with the task state.
    */
 
-  tasklist = TLIST_HEAD(dtcb->task_state);
+  tasklist = TLIST_HEAD(dtcb);
 #endif
 
   /* Remove the task from the task list */


[incubator-nuttx] 02/02: sched: mqueue wait list optimize

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 85d013f69a3fc26500fcf7e0782c97d3d6adb843
Author: zhangyuan21 <zh...@xiaomi.com>
AuthorDate: Fri Sep 9 14:26:43 2022 +0800

    sched: mqueue wait list optimize
---
 include/nuttx/mqueue.h        |  5 +++++
 sched/init/nx_start.c         | 24 ++++--------------------
 sched/mqueue/mq_msgqalloc.c   |  3 +++
 sched/mqueue/mq_rcvinternal.c |  8 ++------
 sched/mqueue/mq_sndinternal.c |  8 ++------
 sched/sched/sched.h           | 16 ----------------
 6 files changed, 16 insertions(+), 48 deletions(-)

diff --git a/include/nuttx/mqueue.h b/include/nuttx/mqueue.h
index b6673a3b73..191b193a7e 100644
--- a/include/nuttx/mqueue.h
+++ b/include/nuttx/mqueue.h
@@ -85,6 +85,9 @@
 # define nxmq_pollnotify(msgq, eventset)
 #endif
 
+# define MQ_WNELIST(mq)               (&((mq)->waitfornotempty))
+# define MQ_WNFLIST(mq)               (&((mq)->waitfornotfull))
+
 /****************************************************************************
  * Public Type Declarations
  ****************************************************************************/
@@ -94,6 +97,8 @@
 struct mqueue_inode_s
 {
   FAR struct inode *inode;    /* Containing inode */
+  dq_queue_t waitfornotempty; /* Task list waiting for not empty */
+  dq_queue_t waitfornotfull;  /* Task list waiting for not full */
   struct list_node msglist;   /* Prioritized message list */
   int16_t maxmsgs;            /* Maximum number of messages in the queue */
   int16_t nmsgs;              /* Number of message in the queue */
diff --git a/sched/init/nx_start.c b/sched/init/nx_start.c
index 4be3b50750..3d329194a6 100644
--- a/sched/init/nx_start.c
+++ b/sched/init/nx_start.c
@@ -138,22 +138,6 @@ dq_queue_t g_pendingtasks;
 
 dq_queue_t g_waitingforsignal;
 
-#ifndef CONFIG_DISABLE_MQUEUE
-/* This is the list of all tasks that are blocked waiting for a message
- * queue to become non-empty.
- */
-
-dq_queue_t g_waitingformqnotempty;
-#endif
-
-#ifndef CONFIG_DISABLE_MQUEUE
-/* This is the list of all tasks that are blocked waiting for a message
- * queue to become non-full.
- */
-
-dq_queue_t g_waitingformqnotfull;
-#endif
-
 #ifdef CONFIG_PAGING
 /* This is the list of all tasks that are blocking waiting for a page fill */
 
@@ -243,12 +227,12 @@ const struct tasklist_s g_tasklisttable[NUM_TASK_STATES] =
 #ifndef CONFIG_DISABLE_MQUEUE
   ,
   {                                              /* TSTATE_WAIT_MQNOTEMPTY */
-    &g_waitingformqnotempty,
-    TLIST_ATTR_PRIORITIZED
+    (FAR void *)offsetof(struct mqueue_inode_s, waitfornotempty),
+    TLIST_ATTR_PRIORITIZED | TLIST_ATTR_OFFSET
   },
   {                                              /* TSTATE_WAIT_MQNOTFULL */
-    &g_waitingformqnotfull,
-    TLIST_ATTR_PRIORITIZED
+    (FAR void *)offsetof(struct mqueue_inode_s, waitfornotfull),
+    TLIST_ATTR_PRIORITIZED | TLIST_ATTR_OFFSET
   }
 #endif
 #ifdef CONFIG_PAGING
diff --git a/sched/mqueue/mq_msgqalloc.c b/sched/mqueue/mq_msgqalloc.c
index a2faf54788..0728278b74 100644
--- a/sched/mqueue/mq_msgqalloc.c
+++ b/sched/mqueue/mq_msgqalloc.c
@@ -101,6 +101,9 @@ int nxmq_alloc_msgq(FAR struct mq_attr *attr,
 #ifndef CONFIG_DISABLE_MQUEUE_NOTIFICATION
       msgq->ntpid = INVALID_PROCESS_ID;
 #endif
+
+      dq_init(&msgq->waitfornotempty);
+      dq_init(&msgq->waitfornotfull);
     }
   else
     {
diff --git a/sched/mqueue/mq_rcvinternal.c b/sched/mqueue/mq_rcvinternal.c
index c704576af7..328c21bf87 100644
--- a/sched/mqueue/mq_rcvinternal.c
+++ b/sched/mqueue/mq_rcvinternal.c
@@ -280,16 +280,12 @@ ssize_t nxmq_do_receive(FAR struct mqueue_inode_s *msgq,
   if (msgq->nwaitnotfull > 0)
     {
       /* Find the highest priority task that is waiting for
-       * this queue to be not-full in g_waitingformqnotfull list.
+       * this queue to be not-full in waitfornotfull list.
        * This must be performed in a critical section because
        * messages can be sent from interrupt handlers.
        */
 
-      for (btcb = (FAR struct tcb_s *)g_waitingformqnotfull.head;
-           btcb && btcb->waitobj != msgq;
-           btcb = btcb->flink)
-        {
-        }
+      btcb = (FAR struct tcb_s *)dq_peek(MQ_WNFLIST(msgq));
 
       /* If one was found, unblock it.  NOTE:  There is a race
        * condition here:  the queue might be full again by the
diff --git a/sched/mqueue/mq_sndinternal.c b/sched/mqueue/mq_sndinternal.c
index af1e3eb44d..5ec5d2ba80 100644
--- a/sched/mqueue/mq_sndinternal.c
+++ b/sched/mqueue/mq_sndinternal.c
@@ -389,17 +389,13 @@ int nxmq_do_send(FAR struct mqueue_inode_s *msgq,
   if (msgq->nwaitnotempty > 0)
     {
       /* Find the highest priority task that is waiting for
-       * this queue to be non-empty in g_waitingformqnotempty
+       * this queue to be non-empty in waitfornotempty
        * list. leave_critical_section() should give us sufficient
        * protection since interrupts should never cause a change
        * in this list
        */
 
-      for (btcb = (FAR struct tcb_s *)g_waitingformqnotempty.head;
-           btcb && btcb->waitobj != msgq;
-           btcb = btcb->flink)
-        {
-        }
+      btcb = (FAR struct tcb_s *)dq_peek(MQ_WNELIST(msgq));
 
       /* If one was found, unblock it */
 
diff --git a/sched/sched/sched.h b/sched/sched/sched.h
index 82454fae1c..c876eb205b 100644
--- a/sched/sched/sched.h
+++ b/sched/sched/sched.h
@@ -178,22 +178,6 @@ extern dq_queue_t g_pendingtasks;
 
 extern dq_queue_t g_waitingforsignal;
 
-/* This is the list of all tasks that are blocked waiting for a message
- * queue to become non-empty.
- */
-
-#ifndef CONFIG_DISABLE_MQUEUE
-extern dq_queue_t g_waitingformqnotempty;
-#endif
-
-/* This is the list of all tasks that are blocked waiting for a message
- * queue to become non-full.
- */
-
-#ifndef CONFIG_DISABLE_MQUEUE
-extern dq_queue_t g_waitingformqnotfull;
-#endif
-
 /* This is the list of all tasks that are blocking waiting for a page fill */
 
 #ifdef CONFIG_PAGING