diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-06 00:02:07 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-06 00:02:07 +0000 |
commit | 9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359 (patch) | |
tree | 29fb311b41914129b7f666079bef010edd8afa65 /nuttx/libc/Kconfig | |
parent | 7b06c73d1d766cd3376be29dccbd28a16e3f385b (diff) | |
download | nuttx-9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359.tar.gz nuttx-9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359.tar.bz2 nuttx-9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359.zip |
Implement user-mode work queues
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5712 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/libc/Kconfig')
-rw-r--r-- | nuttx/libc/Kconfig | 113 |
1 files changed, 112 insertions, 1 deletions
diff --git a/nuttx/libc/Kconfig b/nuttx/libc/Kconfig index 3aee837c3..a549ced45 100644 --- a/nuttx/libc/Kconfig +++ b/nuttx/libc/Kconfig @@ -346,7 +346,118 @@ config ARCH_BZERO endif -comment "Non-standard Helper Functions" +comment "Non-standard Library Support" + +config SCHED_WORKQUEUE + bool "Enable worker thread" + default n + depends on !DISABLE_SIGNALS + ---help--- + Create a dedicated "worker" thread to handle delayed processing from interrupt + handlers. This feature is required for some drivers but, if there are no + 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 up 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 SCHED_WORKQUEUE + +config SCHED_HPWORK + bool "High priority (kernel) worker thread" + default y + ---help--- + If SCHED_WORKQUEUE is defined, then a single, high priority work queue is + created by default. This high priority worker thread is intended to serve + as the "bottom half" for driver interrupt handling. + +if SCHED_HPWORK +config SCHED_WORKPRIORITY + int "High priority worker thread priority" + default 192 + ---help--- + The execution priority of the worker thread. Default: 192 + +config SCHED_WORKPERIOD + int "High priority worker thread period" + default 50000 + ---help--- + How often the worker thread checks for work in units of microseconds. + Default: 50*1000 (50 MS). + +config SCHED_WORKSTACKSIZE + int "High priority worker thread stack size" + default 2048 + depends on SCHED_WORKQUEUE + ---help--- + The stack size allocated for the worker thread. Default: 2K. + +config SCHED_LPWORK + bool "Low priority (kernel) worker thread" + default n + ---help--- + If SCHED_WORKQUEUE is defined, then a single work queue is created by + default. If SCHED_LPWORK is also defined then an additional, lower- + priority work queue will also be created. This lower priority work + queue is better suited for more extended processing (such as file system + clean-up operations) + +if SCHED_LPWORK + +config SCHED_LPWORKPRIORITY + int "Low priority worker thread priority" + default 50 + ---help--- + The execution priority of the lopwer priority worker thread. Default: 192 + +config SCHED_LPWORKPERIOD + int "Low priority worker thread period" + default 50000 + ---help--- + How often the lower priority worker thread checks for work in units + of microseconds. Default: 50*1000 (50 MS). + +config SCHED_LPWORKSTACKSIZE + int "Low priority worker thread stack size" + default 2048 + ---help--- + The stack size allocated for the lower priority worker thread. Default: 2K. + +endif # SCHED_LPWORK +endif # SCHED_HPWORK + +if NUTTX_KERNEL + +config SCHED_USRWORK + bool "User mode worker thread" + default n + ---help--- + User space work queues can also be made available for deferred processing in the NuttX kernel build. + +if SCHED_USRWORK + +config SCHED_LPWORKPRIORITY + int "User mode priority worker thread priority" + default 50 + ---help--- + The execution priority of the lopwer priority worker thread. Default: 192 + +config SCHED_LPWORKPERIOD + int "User mode worker thread period" + default 50000 + ---help--- + How often the lower priority worker thread checks for work in units + of microseconds. Default: 50*1000 (50 MS). + +config SCHED_LPWORKSTACKSIZE + int "User mode worker thread stack size" + default 2048 + ---help--- + The stack size allocated for the lower priority worker thread. Default: 2K. + +endif # SCHED_USRWORK +endif # NUTTX_KERNEL +endif # SCHED_WORKQUEUE config LIB_KBDCODEC bool "Keyboard CODEC" |