Dmitry Adamushko wrote:
> On 29/08/06, Jan Kiszka <[EMAIL PROTECTED]> wrote:
>>
>> Dmitry Adamushko wrote:
>>
>> I think the additional costs of maintaining an error counter are almost
>> negligible. The test is in the unlikely path, and the first condition
>> already keeps us away from touching the counter.
> 
> 
> But it's updated (unhandled = 0) any time the ISR(s) report something
> different from XN_ISR_NONE.  Hence, it's at the beginning of the xnintr_t
> structure, hopefully, at the same cache line with other highly-used members
> (i.e. isr, cookie and hits).

Mmh, considering this and also the existing code I wonder if we could
optimise this a bit. I'm only looking at xnintr_irq_handler now (sharing
is slow anyway): currently the intr object is touched both before
(naturally...) and after the call to the ISR handler. Maybe we can push
all accesses before the handler for the fast path. E.g.:

int unhandled = intr->unhandled;

intr->unhandled = 0;
++intr->hits;
s = intr->isr(...);

if (s == XN_ISR_NONE) {
        intr->unhandled = ++unhandled;
        if (unhandled == XNINTR_MAX_UNHANDLED)
                ALARM!
}

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to