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:
Łukasz Duda 2025-06-15 22:26:20 +02:00 committed by Benjamin Cabé
commit 1829c13c8a
3 changed files with 11 additions and 4 deletions

View file

@ -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

View file

@ -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;

View file

@ -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