summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-11-05 23:14:34 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-11-05 23:14:34 +0000
commit36fb3a89c18856623e1a6f99a90088593c44ac82 (patch)
treed0b2915aefac1696141029912dcfe0b8d6581a75 /nuttx
parent7d5e90d121078be23986be35252a4612d2f39f68 (diff)
downloadpx4-nuttx-36fb3a89c18856623e1a6f99a90088593c44ac82.tar.gz
px4-nuttx-36fb3a89c18856623e1a6f99a90088593c44ac82.tar.bz2
px4-nuttx-36fb3a89c18856623e1a6f99a90088593c44ac82.zip
Document workqueue configuration
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2231 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html32
-rw-r--r--nuttx/configs/README.txt18
-rwxr-xr-xnuttx/sched/work_internal.h4
3 files changed, 52 insertions, 2 deletions
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index dec31beea..c3093d8b7 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -12,7 +12,7 @@
<h1><big><font color="#3c34ec">
<i>NuttX RTOS Porting Guide</i>
</font></big></h1>
- <p>Last Updated: September 15, 2009</p>
+ <p>Last Updated: November 5, 2009</p>
</td>
</tr>
</table>
@@ -2124,12 +2124,40 @@ extern void up_ledoff(int led);
<code>CONFIG_SDCLONE_DISABLE</code>: Disable cloning of all socket
desciptors by task_create() when a new task is started.
If set, all sockets will appear to be closed in the new task.
- </li>:
+ </li>
<li>
<code>CONFIG_NXFLAT</code>: Enable support for the NXFLAT binary format.
This format will support execution of NuttX binaries located
in a ROMFS filesystem (see <code>examples/nxflat</code>).
</li>
+ <li>
+ <code>CONFIG_SCHED_WORKQUEUE</code>: Create a dedicated "worker" thread to
+ handle delayed processing from interrupt handlers. This feature
+ is required for some drivers but, if there are not complaints,
+ can be safely disabled. The worker thread also performs
+ garbage collection -- completing any delayed memory deallocations
+ from interrupt handlers. If the worker thread is disabled,
+ then that clean will be performed by the IDLE thread instead
+ (which runs at the lowest of priority and may not be appropriate
+ if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE
+ is enabled, then the following options can also be used:
+ </li>
+ <li>
+ <code>CONFIG_SCHED_WORKPRIORITY</code>: The execution priority of the worker
+ thread. Default: 50
+ </li>
+ <li>
+ <code>CONFIG_SCHED_WORKPERIOD</code>: How often the worker thread checks for
+ work. Default: 50 MS.
+ </li>
+ <li>
+ <code>CONFIG_SCHED_WORKSTACKSIZE</code>: The stack size allocated for the worker
+ thread. Default: CONFIG_IDLETHREAD_STACKSIZE.
+ </li>
+ <li>
+ <code>CONFIG_SIG_SIGWORK</code>: The signal number that will be used to wake-up
+ the worker thread. Default: 4
+ </li>
</ul>
<p>
diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt
index 80cd358c5..eb1a2878e 100644
--- a/nuttx/configs/README.txt
+++ b/nuttx/configs/README.txt
@@ -243,6 +243,24 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_NXFLAT. Enable support for the NXFLAT binary format.
This format will support execution of NuttX binaries located
in a ROMFS filesystem (see examples/nxflat).
+ CONFIG_SCHED_WORKQUEUE. Create a dedicated "worker" thread to
+ handle delayed processing from interrupt handlers. This feature
+ is required for some drivers but, if there are not complaints,
+ can be safely disabled. The worker thread also performs
+ garbage collection -- completing any delayed memory deallocations
+ from interrupt handlers. If the worker thread is disabled,
+ then that clean will be performed by the IDLE thread instead
+ (which runs at the lowest of priority and may not be appropriate
+ if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE
+ is enabled, then the following options can also be used:
+ CONFIG_SCHED_WORKPRIORITY - The execution priority of the worker
+ thread. Default: 50
+ CONFIG_SCHED_WORKPERIOD - How often the worker thread checks for
+ work. Default: 50 MS.
+ CONFIG_SCHED_WORKSTACKSIZE - The stack size allocated for the worker
+ thread. Default: CONFIG_IDLETHREAD_STACKSIZE.
+ CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
+ the worker thread. Default: 4
The following can be used to disable categories of APIs supported
by the OS. If the compiler supports weak functions, then it
diff --git a/nuttx/sched/work_internal.h b/nuttx/sched/work_internal.h
index 93ad57271..90f9e4ba1 100755
--- a/nuttx/sched/work_internal.h
+++ b/nuttx/sched/work_internal.h
@@ -64,6 +64,10 @@
# define CONFIG_SCHED_WORKSTACKSIZE CONFIG_IDLETHREAD_STACKSIZE
#endif
+#ifdef CONFIG_DISABLE_SIGNALS
+# warning "Worker thread support requires signals"
+#endif
+
/****************************************************************************
* Public Types
****************************************************************************/