Hi Zou, Is there some way to identify that thread A didn't wake up and create some unity test to report and to analyze it?
Maybe there is some very specific race condition that we never saw before. BR, Alan On 3/27/22, fft <f...@feedforward.com.cn> wrote: > Hi team, > > > I've been puzzled by a strange problem for a long time, when i use tickless > OS mode on stm32f405, usleep can't wake up incidentally. > > My config about tickless OS mode as shown below: > > > CONFIG_ARCH_HAVE_TICKLESS=y > CONFIG_SCHED_TICKLESS=y > # CONFIG_SCHED_TICKLESS_ALARM is not set > # CONFIG_SCHED_TICKLESS_LIMIT_MAX_SLEEP is not set > CONFIG_USEC_PER_TICK=10 > > # CONFIG_STM32_TICKLESS_SYSTICK is not set > > CONFIG_STM32_TICKLESS_TIMER=2 > CONFIG_STM32_TICKLESS_CHANNEL=1 > > > When use usleep(1000) in a pthread A, then thread A maybe sporadic sleep > dead and can't be wake up, the probability is about 1/100000. > Moreover, when the problem happened, if i execute usleep 10000 in NSH > terminus, then thread A will wakeup. Is my configuration incorrect? > > Does anyone else have the same problem? > > > Best regard > Zou