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>