[asterisk-users] Kernel panic (asterisk 1.8.0-rc3, dahdi-linux-2.4)

Shaun Ruffell sruffell at digium.com
Sat Oct 16 14:00:59 CDT 2010


On 10/16/10 12:47 PM, Karsten Wemheuer wrote:
> Hi,
>
> Am Freitag, den 15.10.2010, 14:34 -0500 schrieb Shaun Ruffell:
>> On 10/15/2010 04:00 AM, Karsten Wemheuer wrote:
>>
>>> I setup an asterisk system (asterisk 1.8-rc3, dahdi-linux-2.4.0 with
>>> dahdi-extra from Tzafrirs git, kernel 2.6.35.4). The hardware is an
>>> older pc system with Celeron CPU (2.5 GHz) with a Beronet BN4S0 ISDN
>>> card. The system starts without any errors.
>>>
>>> I discovered a severe issue. The kernel panics on a very small load. The
>>> first call normally gets through. If I start the second or third call
>>> and sometimes when I terminate the first call, the system panics (Oops
>>> text on console).
>>>
>>> After solving some difficulties (the relevant part of the Oops text
>>> scrolls out of the monitor, no serial interface), I get the text via
>>> netconsole. It seems to me, that the panic occurred in oslec (function
>>> "oslec_update"). But maybe I am wrong with this. In the oslec code there
>>> is a patch to enable MMX. After switching this off, the problem
>>> disappeared. AFAIK the cpu supports mmx.
>>>
>>> Where should I address this issue to? Is it a known issue?
>>>
>>
>> Do you have CONFIG_DAHDI_MMX defined in include/dahdi/dahdi_config.h?
>
> No, I don't think so. (This is from memory, I currently have no access
> to the test system). But there was a patch (I think from debian
> packages, original from bug tracker (dahdi_mmx_auto.diff from
> http://bugs.digium.com/view.php?id=13500)) which enables mmx at least
> for the echo canceler oslec (I think). Disabling this patch let the
> kernel panic disappear.
>

Hmmm...I can't be certain since there are many parts coming from out of 
the tree here (besides just olsec itself), but looking at 
https://issues.asterisk.org/file_download.php?file_id=22366&type=bug 
doesn't *seem* right.  It appears that DAHDI_USE_MMX is exported and 
therefore the olsec in git://gitorious.org/dahdi-extra/dahdi-extra.git 
uses the MMX instructions, but -DCONFIG_DAHDI_MMX is only added onto 
CFLAGS_zaptel_base.o and not CFLAGS_dahdi_base.o.  Therefore, oslec most 
likely is killing the FPU registers since it believes that dahdi-base.c 
is taking care of saving and restoring them by hand.

I would recommend changing CFLAGS_zaptel_base.o to CFLAGS_dahdi_base.o, 
or hand edit include/dahdi/dahdi_config.h to make sure CONFIG_DAHDI_MMX 
is defined and see if you still get the crash.

Cheers,
Shaun

-- 
Shaun Ruffell
Digium, Inc. | Linux Kernel Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: www.digium.com & www.asterisk.org



More information about the asterisk-users mailing list