On Tue, Mar 06, 2018 at 10:16:50PM +0100, Yann le Chevoir wrote: > Hello, > > Thank you for helping :) > > >> I am an engineering student and I try to proof that a 4000Hz hard real-time > >> application can run on an ARM board rather than on a more powerful machine. > >> > >> I work with an IMX6 dual-core and PREEMPT_RT patch-4.1.38-rt46. > >> [..] > <idle>-0 [001] d..h1.. 0 : irq_handler_entry: irq=16 name=twd > <idle>-0 [001] d..h1.. 2 : hrtimer_expire_entry: hrtimer=98117ef0 function=hrtimer_wakeup now=1864569754886 > <idle>-0 [001] dn.h1.. 7 : irq_handler_exit: irq=16 ret=handled > <idle>-0 [001] d...2.. 13 : sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=test_preempt next_pid=5583 next_prio=1 > test_preempt-5583 [001] d...2.. 73 : sched_switch: prev_comm=test_preempt prev_pid=5583 prev_prio=1 prev_state=S ==> next_comm=swapper/1 next_pid=0 next_prio=120 > <idle>-0 [001] d..h1.. 250 : irq_handler_entry: irq=16 name=twd > <idle>-0 [001] d..h1.. 253 : hrtimer_expire_entry: hrtimer=bf7af990 function=tick_sched_timer now=1864570005553 > <idle>-0 [001] d..h1.. 259 : softirq_raise: vec=1 [action=TIMER] > <idle>-0 [001] d..h1.. 263 : hrtimer_expire_entry: hrtimer=98117ef0 function=hrtimer_wakeup now=1864570005553 > <idle>-0 [001] dn.h1.. 268 : irq_handler_exit: irq=16 ret=handled > <idle>-0 [001] d...2.. 285 : sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=test_preempt next_pid=5583 next_prio=1 > test_preempt-5583 [001] d...2.. 353 : sched_switch: prev_comm=test_preempt prev_pid=5583 prev_prio=1 prev_state=S ==> next_comm=ktimersoftd/1 next_pid=21 next_prio=98 > ktimersoftd/1-21 [001] .....11 361 : softirq_entry: vec=1 [action=TIMER] > ktimersoftd/1-21 [001] .....11 364 : softirq_exit: vec=1 [action=TIMER] Unfortunately, v4.1-rt doesn't currently support NO_HZ=full, because it didn't contain the hrtimer rework necessary to do so w/ PREEMPT_RT. This is what's preventing the tick from being deferred (as you've indicated, it's still ticking away at HZ). This is the primary problem. A secondary problem is that it appears that the issue Haris (CCed) has been looking at applies further back than the hrtimer rework. That is: the TIMER_SOFTIRQ is unconditionally raised in the scheduler tick, regardless if there is an armed timer in the queues. Julia -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html