[asterisk-bugs] [JIRA] (DAHLIN-26) [patch] ztdynamic double buffering on rx, statistics

Pavel Selivanov (JIRA) noreply at issues.asterisk.org
Wed Jan 16 06:49:45 CST 2013


     [ https://issues.asterisk.org/jira/browse/DAHLIN-26?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavel Selivanov updated DAHLIN-26:
----------------------------------

    Attachment: dahdi_dynamic.c.patch

I've attached a new patch for dahdi_dynamic (DAHDI 2.6.1).
It implements receive fifo, and exports dynamic statistics to procfs.

Why dynamic in DAHDI 2.6.1 is bad ?
1. Can not work in tasklet.
All heavy jobs (echo cancel, rx from master span, so, conference) are done in interrupt context.
2. No statistics.
No way to find the source of slips/skips.
3. Although have some kind of rx fifo (actually in dahdi's conf), it's fixed and have size = 2.
4. Due to using general work queue in dahdi_dynamic_eth, have a huge jitter (up to 10ms).

Patch provided implements:
1. receive fifo
Using kfifo.
2. Procfs statistics
3. sync test
diver will let you know, if dynamic is out of sync with dahdi.
It's a frequent problem.

One more reminder – general workqueue, used in dahdi_dynamic_eth is absolutely bad, even with this patch.

                
> [patch] ztdynamic double buffering on rx, statistics
> ----------------------------------------------------
>
>                 Key: DAHLIN-26
>                 URL: https://issues.asterisk.org/jira/browse/DAHLIN-26
>             Project: DAHDI-Linux
>          Issue Type: Bug
>          Components: dahdi_dynamic
>            Reporter: Pavel Selivanov
>            Assignee: Pavel Selivanov
>         Attachments: dahdi_dynamic.c.#2.patch, dahdi_dynamic.c.patch, dahdi_dynamic.c.printk.patch
>
>
> In current implementation:
> 1. If we have more than one TDMoE device, we'll have a slip/skip. 2 TDMoE devices can have phase jitter.
> 2. We have no statistics (which is necessary).
> 3. ztdynamic can't be a master for zaptel (but why not ?)
> ****** ADDITIONAL INFORMATION ******
> complimentary to
> http://bugs.digium.com/view.php?id=13205
> I'm sure, It's better to use list with pre-allocated buffers (1 memcpy dahdi_dynamic_receive) instead of fifo I've used (2 memcpy, dahdi_dynamic_receive & __ztdynamic_run).
> Or even more, it' better to change dynamic/eth/loc , and use the same idea as skbuff (will have only 1 memcpy on rx, and 1 memcpy on tx{in current version, 2 memcpy on tx})

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list