Hello Russ,

2014-05-14 17:36, Russ Meyerriecks:
On Wed, May 14, 2014 at 2:57 AM, Łukasz Wójcik <lukasz.woj...@zoho.com
<mailto:lukasz.woj...@zoho.com>> wrote:

    I would appreciate any clues and suggestions on how to improve the
    latency situation.


I'm unfamiliar with BSD driver development but here are a couple things
I might check:
- Ensure the interrupts are being acknowledged properly by the driver.
If interrupts were left un-acknowledged, it could produce this scenario.

Unless there's something device-specific that has to be done, everything seems to be in order in this resort.

- Ensure all memory addresses are mapped properly regarding the
descriptor ring. If memory addresses were incorrectly loaded to the card
for the dring, it may cause similar issues.

Hmm that's a good point, although I would expect some panics if that would be the case. I will certainly check that, however.

- Time the irq handler to find it's running time. Linux has a tracer for
this, maybe BSD does as well. (I think this is least likely, unless some
BSD quirk is hanging up in the middle of the irq routine)

That's what I just did. It seems that irq handling routine takes 260-280ms during span setup. My measurements indicate that the most time is being spent in '__t4_set_timing_source_auto()' which is only called from the interrupt handler when T4_CHECK_TIMING flag is set (which I guess happens only during span setup ?). After all spans are configured, interrupt handling time drops to average 1ms (min: < 1ms, max: 5ms), and that's where the driver first wants to bump latency up and where missed interrupt message starts to appear:

(..)
Missed interrupt. Expected ident of 97 and got ident of 111
<maaaaaaaaaaaaaany similar as above, differing with idents>
(..)


Another question I'd like to ask is:

Assuming that 'status' contains whatever device status register holds, what does the check: (status & 0x2) mean ?


Once again, thank you for your help Russ!

Sincerely,
-ŁW


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to