On Fri, 2011-06-17 at 13:03 +0200, Jan Kiszka wrote: > On 2011-06-17 12:58, Gilles Chanteperdrix wrote: > > On 06/17/2011 11:27 AM, Jan Kiszka wrote: > >> Based on code inspection, it looks like a timer handler triggering a > >> reschedule in the path xntbase_tick -> xntimer_tick_aperiodic / > >> xntimer_tick_periodic_inner -> handler can cause problems, e.g. a > >> reschedule before all expired timers were processed. The timer core is > >> usually run atomically from an interrupt handler, so better emulate an > >> IRQ context inside xntbase_tick by setting XNINIRQ. > > > > I do not understand this one either: if we are inside > > xntimer_tick_aperiodic, XNINIRQ is already set. > > Not if you come via xntbase_tick, called by the mentioned skins also > outside a timer IRQ (at least based on my understanding of that skin > APIs). But I might be wrong, I just came across this while checking for > potentially invalid cached xnpod_current_sched values.
That is ok, ui_timer(), tickAnnounce() and tm_tick() are designed by the respective RTOS to be called from IRQ context. > > Jan > -- Philippe. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core