Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Nov 1999 21:29:29 +0000
From:      Mark Knight <markk@knigma.org>
To:        freebsd-current@freebsd.org, freebsd-isdn@freebsd.org
Subject:   Panic caused by mbuf exhaustion in i4b with AVM PCI
Message-ID:  <KokTwDA5oaP4EwCV@knigma.org>

next in thread | raw e-mail | index | archive | help
Repeatable mbuf leak leading to crash in current of Saturday 20th
November and all snapshots I've taken prior to that since August (i.e.
when I got the ISDN card).

Hardware is BT Highway (AVM PCI) passive ISDN card.

It's triggered when I call my ISDN number from a PSTN telephone, and use
the standard example i4b answer script to play the caller a greeting. If
the caller then disconnects BEFORE the outgoing message is complete,
repeated use of netstat -m shows that mbufs continue to be allocated
until they are all consumed after several minutes.

I have reported this before (September), but this time I've got the
evidence. Sorry I can't offer a fix, but if someone who knows this code
could please take a look...

panic: L1 avma1pp_hscx_intr: RPF, cannot allocate new mbuf!
#0  boot (howto=256) at ../../kern/kern_shutdown.c:273
273                     dumppcb.pcb_cr3 = rcr3();
(kgdb) bt
#0  boot (howto=256) at ../../kern/kern_shutdown.c:273
#1  0xc015fc04 in poweroff_wait (junk=0xc02724c0, howto=-1070891776)
    at ../../kern/kern_shutdown.c:523
#2  0xc023cc99 in avma1pp_hscx_intr (h_chan=0, stat=2164391968,
sc=0xc02b7d00)
    at ../../i4b/layer1/i4b_avm_fritz_pci.c:1110
#3  0xc023cefd in avma1pp_hscx_int_handler (sc=0xc02b7d00)
    at ../../i4b/layer1/i4b_avm_fritz_pci.c:1224
#4  0xc023cfd4 in avma1pp_intr (sc=0xc02b7d00)
    at ../../i4b/layer1/i4b_avm_fritz_pci.c:1276
#5  0xc0237715 in intr_mux (arg=0xc04d5bc0)
    at ../../i386/isa/intr_machdep.c:570 

=========== isdntrace controller #0 =========== started Thu Nov 25
21:22:22 1999-- NT->TE - unit:0 - frame:000001 - time:25.11
21:22:25.761050 - length:4 ------Dump:000  02 e7 01 07
....Q921: SAP=0 (Call Control), C, TEI=115, S-Frame: RR N(R) 3 PF 1 --
TE->NT - unit:0 - frame:000002 - time:25.11 21:22:25.761050 - length:4 -
-----Dump:000  02 e7 01 05
....Q921: SAP=0 (Call Control), R, TEI=115, S-Frame: RR N(R) 2 PF 1 --
NT->TE - unit:0 - frame:000003 - time:25.11 21:22:27.601068 - length:29
-----Dump:000  02 ff 03
...Q921: SAP=0 (Call Control), C, TEI=127, U-Frame: UI PF 0 Dump:003  08
01 01 05 a1 04 03 90 90 a3 18 01 89 1e 02 84
................Dump:019  83 70 07 81 33 31 36 30 35 35
.p..316055Q931: pd=Q.931/I.451, cr=0x01 (from origination),
message=SETUP:      [sending complete]     [bearer capability:
cap=3.1 kHz audio          std=CCITT          rate=64 kbit/s
mode=circuit          layer1=G.711 A-law]     [channel id: channel=B-1
(exclusive)]     [progress ind: Std=CCITT, Loc=Public network serving
remote user          Description: Origination address is non-ISDN]
[called party number: 316055 (type=unknown, plan=ISDN)]-- TE->NT -
unit:0 - frame:000004 - time:25.11 21:22:27.601068 - length:8 ------
Dump:000  00 e7 06 04
....Q921: SAP=0 (Call Control), C, TEI=115, I-Frame: N(S) 3 N(R) 2 P 0
Dump:004  08 01 81 07
....Q931: pd=Q.931/I.451, cr=0x01 (from destination), message=CONNECT: -
- NT->TE - unit:0 - frame:000005 - time:25.11 21:22:27.631080 - length:4
------Dump:000  00 e7 01 08
....Q921: SAP=0 (Call Control), R, TEI=115, S-Frame: RR N(R) 4 PF 0 --
NT->TE - unit:0 - frame:000006 - time:25.11 21:22:27.651071 - length:8 -
-----Dump:000  02 e7 04 08
....Q921: SAP=0 (Call Control), C, TEI=115, I-Frame: N(S) 2 N(R) 4 P 0
Dump:004  08 01 01 0f
....Q931: pd=Q.931/I.451, cr=0x01 (from origination), message=CONNECT
ACKNOWLEDGE: -- TE->NT - unit:0 - frame:000007 - time:25.11
21:22:27.651071 - length:4 ------Dump:000  02 e7 01 06
....Q921: SAP=0 (Call Control), R, TEI=115, S-Frame: RR N(R) 3 PF 0 --
NT->TE - unit:0 - frame:000008 - time:25.11 21:22:29.231086 - length:4 -
-----Dump:000  00 fb 01 11
....Q921: SAP=0 (Call Control), R, TEI=125, S-Frame: RR N(R) 8 PF 1 --
NT->TE - unit:0 - frame:000009 - time:25.11 21:22:30. 31093 - length:4 -
-----Dump:000  00 fd 01 29
...)Q921: SAP=0 (Call Control), R, TEI=126, S-Frame: RR N(R) 20 PF 1 --
NT->TE - unit:0 - frame:000010 - time:25.11 21:22:31.891112 - length:16
-----Dump:000  02 e7 06 08
....Q921: SAP=0 (Call Control), C, TEI=115, I-Frame: N(S) 3 N(R) 4 P 0
Dump:004  08 01 01 45 08 02 80 90 1e 02 82 88
...E........Q931: pd=Q.931/I.451, cr=0x01 (from origination),
message=DISCONNECT:      [cause: 16: Normal call clearing (Q.850)
(location=user, std=CCITT)]     [progress ind: Std=CCITT, Loc=Public
network serving local user          Description: In-band info or
appropriate pattern now available]-- TE->NT - unit:0 - frame:000011 -
time:25.11 21:22:31.891112 - length:8 ------Dump:000  00 e7 08 08
....Q921: SAP=0 (Call Control), C, TEI=115, I-Frame: N(S) 4 N(R) 4 P 0
Dump:004  08 01 81 4d
...MQ931: pd=Q.931/I.451, cr=0x01 (from destination), message=RELEASE: -
- NT->TE - unit:0 - frame:000012 - time:25.11 21:22:31.911119 - length:4
------Dump:000  00 e7 01 0a
....Q921: SAP=0 (Call Control), R, TEI=115, S-Frame: RR N(R) 5 PF 0 --
NT->TE - unit:0 - frame:000013 - time:25.11 21:22:31.941114 - length:8 -
-----Dump:000  02 e7 08 0a
....Q921: SAP=0 (Call Control), C, TEI=115, I-Frame: N(S) 4 N(R) 5 P 0
Dump:004  08 01 01 5a
...ZQ931: pd=Q.931/I.451, cr=0x01 (from origination), message=RELEASE
COMPLETE: -- TE->NT - unit:0 - frame:000014 - time:25.11 21:22:31.941114
- length:4 ------Dump:000  02 e7 01 0a
....Q921: SAP=0 (Call Control), R, TEI=115, S-Frame: RR N(R) 5 PF 0 --
NT->TE - unit:0 - frame:000015 - time:25.11 21:22:39.231184 - length:4 -
-----Dump:000  02 fb 01 11
....Q921: SAP=0 (Call Control), C, TEI=125, S-Frame: RR N(R) 8 PF 1 --
NT->TE - unit:0 - frame:000016 - time:25.11 21:22:39.311186 - length:4 -
-----Dump:000  00 fb 01 11
....Q921: SAP=0 (Call Control), R, TEI=125, S-Frame: RR N(R) 8 PF 1 --
NT->TE - unit:0 - frame:000017 - time:25.11 21:22:40. 41192 - length:4 -
-----Dump:000  02 fd 01 29
...)Q921: SAP=0 (Call Control), C, TEI=126, S-Frame: RR N(R) 20 PF 1 --
NT->TE - unit:0 - frame:000018 - time:25.11 21:22:40.111194 - length:4 -
-----Dump:000  00 fd 01 29
...)Q921: SAP=0 (Call Control), R, TEI=126, S-Frame: RR N(R) 20 PF 1 --
NT->TE - unit:0 - frame:000019 - time:25.11 21:22:41.971211 - length:4 -
-----Dump:000  02 e7 01 0b
....Q921: SAP=0 (Call Control), C, TEI=115, S-Frame: RR N(R) 5 PF 1 --
TE->NT - unit:0 - frame:000020 - time:25.11 21:22:41.971211 - length:4 -
-----Dump:000  02 e7 01 0b
....Q921: SAP=0 (Call Control), R, TEI=115, S-Frame: RR N(R) 5 PF 1 

machine         i386
cpu             I386_CPU
cpu             I486_CPU
cpu             I586_CPU
cpu             I686_CPU
ident           SHREWD
maxusers        64

makeoptions     DEBUG=-g                #Build kernel with gdb(1) debug
symbols

#options        MATH_EMULATE            #Support for x87 emulation
options         INET                    #InterNETworking
options         FFS                     #Berkeley Fast Filesystem
options         FFS_ROOT                #FFS usable as root device [keep
this!]
options         MFS                     #Memory Filesystem
options         MFS_ROOT                #MFS usable as root device,
"MFS" req'ed
options         NFS                     #Network Filesystem
options         NFS_ROOT                #NFS usable as root device,
"NFS" req'ed
options         MSDOSFS                 #MSDOS Filesystem
options         CD9660                  #ISO 9660 Filesystem
options         CD9660_ROOT             #CD-ROM usable as root. "CD9660"
req'ed
options         PROCFS                  #Process filesystem
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP
THIS!]
options         SCSI_DELAY=15000        #Be pessimistic about Joe SCSI
device
options         UCONSOLE                #Allow users to grab the console
options         USERCONFIG              #boot -c editor
options         VISUAL_USERCONFIG       #visual boot -c editor
options         KTRACE                  #ktrace(1) syscall trace support
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores

options         PANIC_REBOOT_WAIT_TIME=-1

# To make an SMP kernel, the next two are needed
#options        SMP                     # Symmetric MultiProcessor
Kernel
#options        APIC_IO                 # Symmetric (APIC) I/O
# Optionally these may need tweaked, (defaults shown):
#options        NCPU=2                  # number of CPUs
#options        NBUS=4                  # number of busses
#options        NAPIC=1                 # number of IO APICs
#options        NINTR=24                # number of INTs

controller      isa0
#controller     pnp0                    # PnP support for ISA
#controller     eisa0
controller      pci0

# Floppy drives
controller      fdc0    at isa? port IO_FD1 irq 6 drq 2
device          fd0     at fdc0 drive 0
device          fd1     at fdc0 drive 1

# IDE controller and disks
#controller     wdc0    at isa? port IO_WD1 irq 14
#device         wd0     at wdc0 drive 0
#device         wd1     at wdc0 drive 1

#controller     wdc1    at isa? port IO_WD2 irq 15
#device         wd2     at wdc1 drive 0
#device         wd3     at wdc1 drive 1

# ATAPI devices on wdc?
#device         wcd0            #IDE CD-ROM
#device         wfd0            #IDE Floppy (e.g. LS-120)
#device         wst0            #IDE Tape (e.g. Travan)

# The 'ATA' driver supports all ATA and ATAPI devices.
# It can reuse the majors of wd.c for booting purposes.
# You only need one "controller ata0" for it to find all
# PCI ATA/ATAPI devices on modern machines.
#controller     ata0
device          atadisk0        # ATA disk drives
device          atapicd0        # ATAPI CDROM drives
#device         atapifd0        # ATAPI floppy drives
#device         atapist0        # ATAPI tape drives

#The folliwing options are valid on the ATA driver:
#
# ATA_STATIC_ID:        controller numbering is static (like the old
driver)
#                       else the device numbers are dynamically
allocated.
# ATA_ENABLE_ATAPI_DMA: enable DMA on ATAPI device, since many ATAPI
devices
#                       claim to support DMA but doesn't actually work,
this
#                       is not enabled as default.
# ATA_16BIT_ONLY:       for older HW that doesn't support 32bit
transfers on
#                       the ATA channels (mostly old ISA boards).

#options                ATA_STATIC_ID
options         ATA_ENABLE_ATAPI_DMA
#options        ATA_16BIT_ONLY

#
# For older non-PCI systems, this is the lines to use:
controller      ata0    at isa? port IO_WD1 irq 14
controller      ata1    at isa? port IO_WD2 irq 15

# SCSI Controllers
# A single entry for any of these controllers (ncr, ahb, ahc) is
# sufficient for any number of installed devices.
#controller     ncr0            # NCR/Symbios Logic
#controller     ahb0            # EISA AHA1742 family
controller      ahc0            # AHA2940 and onboard AIC7xxx devices
#options AHC_ALLOC_MEMIO
#controller     amd0            # AMD 53C974 (Teckram DC-390(T))
#controller     isp0            # Qlogic family
#controller     dpt0            # DPT Smartcache - See LINT for options!

#controller     adv0    at isa? port ? irq ?
#controller     adw0
#controller     bt0     at isa? port ? irq ?
#controller     aha0    at isa? port ? irq ?

# SCSI peripherals
# Only one of each of these is needed, they are dynamically allocated.
controller      scbus0          # SCSI bus (required)
#device         da0             # Direct Access (disks)
device          sa0             # Sequential Access (tape etc)
device          cd0             # CD
device          pass0           # Passthrough device (direct SCSI
access)

# Proprietary or custom CD-ROM Interfaces
#device         wt0     at isa? port 0x300 irq 5 drq 1
#device         mcd0    at isa? port 0x300 irq 10
#device         matcd0  at isa? port 0x230
#device         scd0    at isa? port 0x230

# atkbdc0 controls both the keyboard and the PS/2 mouse
controller      atkbdc0 at isa? port IO_KBD
device          atkbd0  at atkbdc? irq 1
device          psm0    at atkbdc? irq 12

device          vga0    at isa? port ? conflicts

# splash screen/screen saver
pseudo-device   splash

# syscons is the default console driver, resembling an SCO console
device          sc0     at isa?

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device         vt0     at isa?
#options        XSERVER                 # support for X server
#options        FAT_CURSOR              # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT
lines
#options        PCVT_SCANSET=2          # IBM keyboards are non-std

# Floating point support - do not disable.
device          npx0    at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
#device         apm0    at nexus? disable flags 0x31 # Advanced Power
Management

# PCCARD (PCMCIA) support
#controller     card0
#device         pcic0   at isa?
#device         pcic1   at isa?

# Serial (COM) ports
device          sio0    at isa? port IO_COM1 flags 0x10 irq 4
device          sio1    at isa? port IO_COM2 irq 3
device          sio2    at isa? disable port IO_COM3 irq 5
device          sio3    at isa? disable port IO_COM4 irq 9

# Parallel port
device          ppc0    at isa? port? flags 0x40 irq 7
controller      ppbus0          # Parallel port bus (required)
device          lpt0            # Printer
#device         plip0           # TCP/IP over parallel
device          ppi0            # Parallel port interface device
#controller     vpo0            # Requires scbus and da0


# PCI Ethernet NICs.
#device         ax0             # ASIX AX88140A
#device         de0             # DEC/Intel DC21x4x (``Tulip'')
#device         fxp0            # Intel EtherExpress PRO/100B (82557,
82558)
#device         pn0             # Lite-On 82c168/82c169 (``PNIC'')
#device         tx0             # SMC 9432TX (83c170 ``EPIC'')
#device         vx0             # 3Com 3c590, 3c595 (``Vortex'')

# PCI Ethernet NICs that use the common MII bus controller code.
#controller     miibus0         # MII bus support
#device         al0             # ADMtek AL981/AN985
(``Comet''/``Centaur'')
#device         dm0             # Davicom DM9100/DM9102
#device         mx0             # Macronix 98713/98715/98725 (``PMAC'')
#device         rl0             # RealTek 8129/8139
#device         sf0             # Adaptec AIC-6915 (``Starfire'')
#device         sis0            # Silicon Integrated Systems SiS 900/SiS
7016
#device         ste0            # Sundance ST201 (D-Link DFE-550TX)
#device         tl0             # Texas Instruments ThunderLAN
#device         vr0             # VIA Rhine, Rhine II
#device         wb0             # Winbond W89C840F
#device         xl0             # 3Com 3c90x (``Boomerang'',
``Cyclone'')

# ISA Ethernet NICs.
device          ed0     at isa? port 0x280 irq 5 iomem 0xd8000
#device         ex0     at isa? port? irq?
#device         ep0
# The probe order of these is presently determined by
i386/isa/isa_compat.c.
#device         ie0     at isa? port 0x300 irq 10 iomem 0xd0000
#device         fe0     at isa? port 0x300 irq ?
#device         le0     at isa? port 0x300 irq 5 iomem 0xd0000
#device         lnc0    at isa? port 0x280 irq 10 drq 0
#device         cs0     at isa? port 0x300 irq ?
# requires PCCARD (PCMCIA) support to be activated
#device         xe0     at isa? port? irq ?

# PCCARD NIC drivers.
# ze and zp take over the pcic and cannot coexist with generic pccard
# support, nor the ed and ep drivers they replace.
#device         ze0     at isa? port 0x300 irq 10 iomem 0xd8000 
#device         zp0     at isa? port 0x300 irq 10 iomem 0xd8000

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device   loop            # Network loopback
pseudo-device   ether           # Ethernet support
pseudo-device   sl      1       # Kernel SLIP
pseudo-device   ppp     1       # Kernel PPP
pseudo-device   tun             # Packet tunnel.
pseudo-device   pty             # Pseudo-ttys (telnet etc)
pseudo-device   gzip            # Exec gzipped a.out's

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device   bpf             #Berkeley packet filter

# USB support
#controller     uhci0           # UHCI PCI->USB interface
#controller     ohci0           # OHCI PCI->USB interface
#controller     usb0            # USB Bus (required)
#device         ugen0           # Generic
#device         uhid0           # "Human Interface Devices"
#device         ukbd0           # Keyboard
#device         ulpt0           # Printer
#controller     umass0          # Disks/Mass storage - Requires scbus
and da0
#device         ums0            # Mouse

# ISDN stuff
options "AVM_A1_PCI"
device  isic0
pseudo-device   "i4bq921"               # i4b layer 2
pseudo-device   "i4bq931"               # i4b layer 3
pseudo-device   "i4b"                   # i4b layer 4
pseudo-device   "i4btrc"        4       # Passive card ISDN tracing
pseudo-device   "i4bctl"                # Main userland i4b controller
pseudo-device   "i4brbch"       4       # Userland raw B channel access
pseudo-device   "i4btel"        2       # userland telephony driver
pseudo-device   "i4bipr"        4       # IP over raw HDLC ISDN
options         IPR_VJ                  # VJ for ipr
pseudo-device   "i4bisppp"      4       # sync PPP over ISDN
pseudo-device   sppp                    # Generic Synchronous PPP
options         NMBCLUSTERS=2048

Best regards,
-- 
Mark Knight


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?KokTwDA5oaP4EwCV>