<div dir="ltr">Hi,<div><br></div><div>Can i raise an issue on github for this bug or do i need to go further in my investigation ?</div><div><br></div><div>Regards,</div><div><br></div><div>Aurélien</div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-01-17 15:06 GMT+01:00 Aurélien Fillau <span dir="ltr"><<a href="mailto:aurelien.fillau@gmail.com" target="_blank">aurelien.fillau@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi,</div><div><br></div><div>I have tried to launch xtimer_usleep testing code but i didn't succeed in compiling it, so i have copied it in my own code. The issue is still difficult to trigger.</div><div><br></div><div>Here is my backtrace when the issue occurs : </div><div><br></div><div><div><font color="#9900ff">#0  0x0800959c in dev (tim=tim@entry=0) at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/cpu/stm32_common/<wbr>periph/timer.c:95</font></div><div><font color="#9900ff">#1  timer_read (tim=tim@entry=0) at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/cpu/stm32_common/<wbr>periph/timer.c:96</font></div><div><font color="#9900ff">#2  0x0800869a in _xtimer_lltimer_now ()</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/include/xtimer/<wbr>implementation.h:46</font></div><div><font color="#9900ff">#3  0x08008934 in xtimer_spin_until (target=<optimized out>)</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/xtimer/<u><b>xtimer_<wbr>core.c:65</b></u></font></div><div><font color="#9900ff">#4  _xtimer_set_absolute (timer=timer@entry=0x20000ebc <main_stack+1416>, target=<optimized out>)</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/xtimer/<u><b>xtimer_<wbr>core.c:181</b></u></font></div><div><font color="#9900ff">#5  0x08008a4c in _xtimer_set (timer=0x20000ebc <main_stack+1416>, </font><b><font color="#ff0000">offset=101</font></b><font color="#9900ff">)</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/xtimer/<u><b>xtimer_<wbr>core.c:146</b></u></font></div><div><font color="#9900ff">#6  0x08008a5e in _xtimer_set64 (timer=timer@entry=0x20000ebc <main_stack+1416>, offset=offset@entry=101, </font></div><div><font color="#9900ff">    long_offset=long_offset@entry=<wbr>0) at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/xtimer/<b><u>xtimer_<wbr>core.c:107</u></b></font></div><div><font color="#9900ff">#7  0x0800c4ae in _xtimer_tsleep (offset=offset@entry=101, long_offset=long_offset@entry=<wbr>0)</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/xtimer/xtimer.c:<wbr>68</font></div><div><font color="#9900ff">#8  0x080097c0 in _xtimer_tsleep32 (ticks=101)</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/include/xtimer/<wbr>implementation.h:148</font></div><div><font color="#9900ff">#9  xtimer_usleep (microseconds=101)</font></div><div><font color="#9900ff">    at /home/aurelien/we-sens/RIOT-<wbr>dev/RIOT/sys/include/xtimer/<wbr>implementation.h:162</font></div><div><font color="#9900ff">#10 main () at /home/aurelien/we-sens/wesens-<wbr>os/wesens-os/main_app/main.c:<wbr>179</font></div></div><div><br></div><div>As you can see, this is when i want to use xtimer_usleep(101) ! On line 145 of xtimer_core.c, the target variable (=_xtimer_now() + offset) overflows a 16bits values and gives the following result : 0x3DFFA8. Then, when i call the line 181 : target + XTIMER_BACKOFF = 0x3E000C. And finally, the mask on line 63 deletes the most significant bits and at this moment target = 0xC. And after that, the probility after each evalutation of timer counter to be between 0 and 0x0C is very small, that's why i'm blocked on line 65 (i suppose this is the same issue with values close to 0xFFFF and second "while" : line 66)</div><div><br></div><div>I have tried to change XTIMER_BACKOFF but it is just postponing the issue or hiding it for a certain period of time.</div><div><br></div><div>I'm still suspecting that's my AHB bus speed (2MHz) that is highlighting this issue.</div><div><br></div><div>I add my timer configuration : </div><div><br></div><div><span style="color:rgb(153,0,255)">/**</span><br></div><div><div><font color="#9900ff"> * @name    xtimer configuration</font></div><div><font color="#9900ff"> * @{</font></div><div><font color="#9900ff"> */</font></div><span class=""><div><font color="#9900ff">#define XTIMER_DEV          TIMER_DEV(0)</font></div><div><font color="#9900ff">#define XTIMER_CHAN         (0)</font></div><div><font color="#9900ff">#define XTIMER_WIDTH        (16)</font></div><div><br></div><div><font color="#9900ff">#define XTIMER_BACKOFF      (100)</font></div><div><font color="#9900ff">#define XTIMER_ISR_BACKOFF  (100)</font></div><div><font color="#9900ff">#define XTIMER_OVERHEAD     (100)</font></div></span><div><font color="#9900ff">/** @} */</font></div></div><div><br></div><div>Best regards,</div><span class=""><div><br></div>-- <br><div class="m_6976358278658780379gmail-m_732884996397478524gmail_signature"><div dir="ltr"><div dir="ltr"><p style="font-size:12.8px"><b><span style="font-size:10pt;font-family:"Century Gothic",sans-serif">Aurélien FILLAU</span></b></p><p style="font-size:12.8px"><span style="font-family:"Century Gothic",sans-serif;font-size:10pt">Co-founder at </span><a href="http://we-sens.com/" target="_blank">we-sens.com</a></p></div></div></div></span></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2018-01-16 19:03 GMT+01:00 Aurélien Fillau <span dir="ltr"><<a href="mailto:aurelien.fillau@gmail.com" target="_blank">aurelien.fillau@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>@José :</div><div><br></div><div>Thank you for the time you take about this issue. Here is the kind of test i'm running to trigger it :</div><div><font color="#c27ba0"><br></font></div><div><div><font color="#9900ff">        for (uint16_t i=0; i<1000; i++) {</font></div><div><font color="#9900ff">    <span style="white-space:pre-wrap">                </span>xtimer_usleep(10);</font></div><div><font color="#9900ff">        }</font></div><div><font color="#9900ff"><br></font></div><div><font color="#9900ff">        for (uint16_t i=0; i<1000; i++) {</font></div><div><font color="#9900ff">    <span style="white-space:pre-wrap">         </span>xtimer_usleep(100);</font></div><div><font color="#9900ff">        }</font></div></div><div><br></div><div>I have also decreased AHB speed bus to save power, maybe it comes from that !</div><div><br></div><div><div style="font-size:12.8px;font-family:sans-serif"><b><u><i><font color="#9900ff">periph_conf.h :</font></i></u></b></div><div style="font-size:12.8px;font-family:sans-serif"><font color="#9900ff"><br></font></div><div style="font-size:12.8px"><font face="sans-serif"><span><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_HSI           (16000000U)         /* internal oscillator */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_CORECLOCK     (16000000U)         /* desired core clock frequency */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px"><br></div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">/* configuration of PLL prescaler and multiply values */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">/* CORECLOCK := HSI / CLOCK_PLL_DIV * CLOCK_PLL_MUL */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_PLL_DIV       RCC_CFGR_PLLDIV4</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_PLL_MUL       RCC_CFGR_PLLMUL4</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">/* configuration of peripheral bus clock prescalers */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_AHB_DIV       RCC_CFGR_HPRE_DIV8       /* AHB clock -> 2MHz */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_APB2_DIV      RCC_CFGR_PPRE2_DIV1      /* APB2 clock -> 2MHz */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_APB1_DIV      RCC_CFGR_PPRE1_DIV1      /* APB1 clock -> 2MHz */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">/* configuration of flash access cycles */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_FLASH_LATENCY FLASH_ACR_LATENCY</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px"><br></div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">/* bus clocks for simplified peripheral initialization, UPDATE MANUALLY! */</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_AHB           (CLOCK_CORECLOCK / 8)</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_APB2          (CLOCK_CORECLOCK / 8)</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px">#define CLOCK_APB1          (CLOCK_CORECLOCK / 8)</div><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px"><br></div></span><div style="font-size:12.8px"><font color="#000000">I will try to increase </font><span style="font-size:12.8px;font-family:arial,sans-serif">XTIMER_BACKOFF to see if the same issue occurs.</span></div></font><font face="sans-serif"><div style="font-style:italic;color:rgb(153,0,255);font-size:12.8px"><br></div><div style="font-style:italic;font-size:12.8px"><font color="#000000">@<span style="font-size:12.8px;font-family:arial,sans-serif;font-style:normal">Sebastian</span></font></div></font></div></div><div><br></div><div><span style="font-size:12.8px">I will try to launch "tests/xtimer_usleep_shor" on my platform.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Thx again for your help and the time you are spending on it :)</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Regards,</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Aurélien</span></div></div><div class="gmail_extra"><div><div class="m_6976358278658780379h5"><br><div class="gmail_quote">2018-01-16 11:27 GMT+01:00 smlng <span dir="ltr"><<a href="mailto:s@mlng.net" target="_blank">s@mlng.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
there is also a tests application for (very) short xtimer_sleeps, i.e., `tests/xtimer_usleep_short`.<br>
It was "specifically designed" to find issues with XTIMER_BACKOFF and such.<br>
<br>
Cheers,<br>
  Sebastian<br>
<div class="m_6976358278658780379m_2509529842369805647HOEnZb"><div class="m_6976358278658780379m_2509529842369805647h5"><br>
> On 16. Jan 2018, at 11:17, Jose Alamos <<a href="mailto:jialamos@uc.cl" target="_blank">jialamos@uc.cl</a>> wrote:<br>
><br>
> Hi Aurelién,<br>
><br>
> I'm currently running some experiments in a nucleo-L073RZ, calling xtimer_usleep with small random values, just to check if I can reproduce the issue.<br>
> On the other side, is the same issue happening if you increase the XTIMER_BACKOFF?<br>
><br>
> Cheers,<br>
> José<br>
><br>
> Le lun. 15 janv. 2018 à 21:59, Aurélien Fillau <<a href="mailto:aurelien.fillau@gmail.com" target="_blank">aurelien.fillau@gmail.com</a>> a écrit :<br>
> Hi,<br>
><br>
> Thank you for your replies and i apologize for the delay in responding.<br>
> We are working on custom boards now that embeds a STM32L073CZT6 CPU. We have started the project with a nucleo-l073rz board (STM32L073RZT6), and i think it can be easily reproduced on this board.<br>
> xtimer_usleep() is called from thread context (not from an isr context).<br>
> I didn't try to change XTIMER_BACKOFF because i have stabilized it to faced another issue (Indeed, xtimer_usleep() was sleeping my task forever if XTIMER_BACKOFF  was too small).<br>
> This "blocking while" can occur at startup or after 24 hours or even after a longer period of time, or even never on some boards, that's why it is not easily reproducible.<br>
><br>
> Regards,<br>
><br>
> Aurélien<br>
><br>
> Le 15 janv. 2018 10:56, "Jose Alamos" <<a href="mailto:jialamos@uc.cl" target="_blank">jialamos@uc.cl</a>> a écrit :<br>
> Hi Aurélien:<br>
><br>
> Could you give us more information about your platform? (e.g CPU model, etc).<br>
> Are you getting the same results with different values of XTIMER_BACKOFF?<br>
><br>
> Cheers<br>
><br>
> José<br>
><br>
> ______________________________<wbr>_________________<br>
> users mailing list<br>
> <a href="mailto:users@riot-os.org" target="_blank">users@riot-os.org</a><br>
> <a href="https://lists.riot-os.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.riot-os.org/mail<wbr>man/listinfo/users</a><br>
><br>
> ______________________________<wbr>_________________<br>
> users mailing list<br>
> <a href="mailto:users@riot-os.org" target="_blank">users@riot-os.org</a><br>
> <a href="https://lists.riot-os.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.riot-os.org/mail<wbr>man/listinfo/users</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span>-- <br><div class="m_6976358278658780379m_2509529842369805647gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><p style="font-size:12.8px"><b><span style="font-size:10pt;font-family:"Century Gothic",sans-serif">Aurélien FILLAU</span></b></p><p style="font-size:12.8px"><span style="font-family:"Century Gothic",sans-serif;font-size:10pt">Co-founder at </span><a href="http://we-sens.com" target="_blank">we-sens.com</a></p></div></div></div></div>
</span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_6976358278658780379gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><p style="font-size:12.8px"><b><span style="font-size:10pt;font-family:"Century Gothic",sans-serif">Aurélien FILLAU</span></b></p><p style="font-size:12.8px"><span style="font-family:"Century Gothic",sans-serif;font-size:10pt">Co-founder at </span><a href="http://we-sens.com" target="_blank">we-sens.com</a></p></div></div></div></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><p style="font-size:12.8px"><b><span style="font-size:10pt;font-family:"Century Gothic",sans-serif">Aurélien FILLAU</span></b></p><p style="font-size:12.8px"><span style="font-family:"Century Gothic",sans-serif;font-size:10pt">Co-founder at </span><a href="http://we-sens.com" target="_blank">we-sens.com</a></p></div></div></div></div>
</div>