net: openthread: Make Radio workqueue priority configurable
This commit makes the Radio workqueue priority configurable by the application. Additionally, the default priority has been adjusted to allow transmit operations to occur before the entire RX queue is processed. Signed-off-by: Łukasz Duda <lukasz.duda@nordicsemi.no>
This commit is contained in:
parent
e1d17b4a76
commit
1829c13c8a
3 changed files with 11 additions and 4 deletions
|
@ -134,6 +134,11 @@ config OPENTHREAD_RADIO_WORKQUEUE_STACK_SIZE
|
||||||
default 608 if MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M
|
default 608 if MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M
|
||||||
default 512
|
default 512
|
||||||
|
|
||||||
|
config OPENTHREAD_RADIO_WORKQUEUE_PRIORITY
|
||||||
|
int "OpenThread radio transmit workqueue priority"
|
||||||
|
default 0 if OPENTHREAD_THREAD_PREEMPTIVE
|
||||||
|
default 7
|
||||||
|
|
||||||
endmenu # "Zephyr optimizations"
|
endmenu # "Zephyr optimizations"
|
||||||
|
|
||||||
config OPENTHREAD_SHELL
|
config OPENTHREAD_SHELL
|
||||||
|
|
|
@ -58,9 +58,9 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME, CONFIG_OPENTHREAD_PLATFORM_LOG_LEVEL);
|
||||||
#define FRAME_TYPE_ACK 0x02
|
#define FRAME_TYPE_ACK 0x02
|
||||||
|
|
||||||
#if defined(CONFIG_NET_TC_THREAD_COOPERATIVE)
|
#if defined(CONFIG_NET_TC_THREAD_COOPERATIVE)
|
||||||
#define OT_WORKER_PRIORITY K_PRIO_COOP(CONFIG_OPENTHREAD_THREAD_PRIORITY)
|
#define OT_WORKER_PRIORITY K_PRIO_COOP(CONFIG_OPENTHREAD_RADIO_WORKQUEUE_PRIORITY)
|
||||||
#else
|
#else
|
||||||
#define OT_WORKER_PRIORITY K_PRIO_PREEMPT(CONFIG_OPENTHREAD_THREAD_PRIORITY)
|
#define OT_WORKER_PRIORITY K_PRIO_PREEMPT(CONFIG_OPENTHREAD_RADIO_WORKQUEUE_PRIORITY)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CHANNEL_COUNT OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX - OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MIN + 1
|
#define CHANNEL_COUNT OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX - OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MIN + 1
|
||||||
|
@ -622,6 +622,8 @@ static int run_tx_task(otInstance *aInstance)
|
||||||
sState = OT_RADIO_STATE_TRANSMIT;
|
sState = OT_RADIO_STATE_TRANSMIT;
|
||||||
|
|
||||||
k_work_submit_to_queue(&ot_work_q, &tx_job);
|
k_work_submit_to_queue(&ot_work_q, &tx_job);
|
||||||
|
k_yield();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
#define CONFIG_OPENTHREAD_PLATFORM_PKT_TXTIME 1
|
#define CONFIG_OPENTHREAD_PLATFORM_PKT_TXTIME 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CONFIG_OPENTHREAD_THREAD_PRIORITY 5
|
#define CONFIG_OPENTHREAD_RADIO_WORKQUEUE_PRIORITY 5
|
||||||
#define OT_WORKER_PRIORITY K_PRIO_COOP(CONFIG_OPENTHREAD_THREAD_PRIORITY)
|
#define OT_WORKER_PRIORITY K_PRIO_COOP(CONFIG_OPENTHREAD_RADIO_WORKQUEUE_PRIORITY)
|
||||||
#define CONFIG_NET_L2_OPENTHREAD 1
|
#define CONFIG_NET_L2_OPENTHREAD 1
|
||||||
#define CONFIG_OPENTHREAD_RADIO_WORKQUEUE_STACK_SIZE 512
|
#define CONFIG_OPENTHREAD_RADIO_WORKQUEUE_STACK_SIZE 512
|
||||||
#define CONFIG_OPENTHREAD_DEFAULT_RX_SENSITIVITY -100
|
#define CONFIG_OPENTHREAD_DEFAULT_RX_SENSITIVITY -100
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue