On 06/18/2011 03:16 PM, Jan Kiszka wrote:
> On 2011-06-18 15:12, Gilles Chanteperdrix wrote:
>> On 06/18/2011 03:07 PM, Jan Kiszka wrote:
>>> On 2011-06-18 14:56, Gilles Chanteperdrix wrote:
>>>>
>>>> Maybe in the irq handlers, we should skip the XNHTICK replay, when
>>>> current_domain is root_domain.
>>>>
>>>
>>> That would be against the purpose of the XNTICK replay (it only targets
>>> that particular case). And it would still leave us with broken ipipe due
>>> to enabled IRQs on return from the Xenomai handlers.
>>
>> What I mean is that xnintr_clock_handler, we should skip the XNHTICK
>> replay when the current domain upon return from xnpod_schedule is not
>> root. From what I understand, this case only happens when xnpod_schedule
>> migrated the thread, and in that case, the tick will have been forwarded
>> during xnpod_schedule anyway.
> 
> In the problematic case, ie. when the XNHTICK replay uses an invalid
> sched, the current domain is root. It must be root because only then the
> context could have been migrated to a different CPU by Linux. So this
> does not help to avoid having to reload sched.

I mean replace:
        if (testbits(sched->lflags, XNHTICK) &&
            xnthread_test_state(sched->curr, XNROOT))
                xnintr_host_tick(sched);

with
        if (!xnarch_root_domain_p() &&
            testbits(sched->lflags, XNHTICK) &&
            xnthread_test_state(sched->curr, XNROOT))
            xnintr_host_tick(sched);

-- 
                                                                Gilles.

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to