sio / puc wedging on both -current and -stable

From: Mike Tancsa (mike_at_sentex.net)
Date: 05/17/04

  • Next message: Ion-Mihai Tetcu: "can mount as acd0 (atapi) but not as cd0 (cam)"
    Date: Mon, 17 May 2004 17:08:21 -0400
    To: freebsd-current@freebsd.org
    
    

    We are building a box that needs many serial ports to talk to some legacy
    low speed (9600) serial devices. Our application (a small daemon written
    in c) happily talks to the devices and all works well. However, if one of
    the external devices die or is unplugged, the FreeBSD box will at seemingly
    irregular intervals lockup hard. The only way to unlock the machine is to
    either hit the reset button (the keyboard is locked solid-- not even num
    lock works) *or* if I jiggle the DB9 connector enough so that enough noise
    shorts across the serial port *or* plug the serial port into a working
    device that I imagine sends some data on the serial port. The machine then
    returns to a normal state and all is well. This does NOT happen with the
    onboard serial ports. Only with a PUC device (we have tried several and
    its the same result)

    Does this jog anyone's memory as to what the problem might be ?

    puc0@pci1:5:0: class=0x070002 card=0x00000000 chip=0x01201407 rev=0x00
    hdr=0x00
         vendor = 'Lava Computer Manufacturing Inc'
         class = simple comms
         subclass = UART
    puc1@pci1:5:1: class=0x070002 card=0x00000000 chip=0x01211407 rev=0x00
    hdr=0x00
         vendor = 'Lava Computer Manufacturing Inc'
         class = simple comms

    kernel is GENERIC

    I have a remote debugger setup and I can send a break and drop the unit
    into debugger, but kernel debugging is a little beyond our skillset.

    db> trace
    siointr1(c11d0000,d56dacb0,c02b49e6,c11d0000,10) at siointr1+0xc5
    siointr(c11d0000,10,a005,c,10060) at siointr+0xc
    Xfastintr4(c11d0c00,d56dacd8,c02a741a,c11d0c00,c0a3f240) at Xfastintr4+0x16
    siointr(c11d0c00) at siointr+0xc
    puc_intr(c11af000,63103a,c11d0c00,0,d56dad68) at puc_intr+0x4e
    intr_mux(c0a3f240,0,630010,c1360010,c0170010) at intr_mux+0x1f
    Xresume12() at Xresume12+0x2b
    --- interrupt, eip = 0xc02b5b2a, esp = 0xd56dad38, ebp = 0xd56dad68 ---
    vec12(c11ce980,3,2000,cbf03a00,d56634c0) at vec12+0x2
    cnopen(c11ce980,3,2000,cbf03a00,0) at cnopen+0x6a
    spec_open(d56dae08,d56dade0,c0270a6d,d56dae08,d56dae7c) at spec_open+0xfe
    spec_vnoperate(d56dae08,d56dae7c,c01a29cc,d56dae08,0) at spec_vnoperate+0x15
    ufs_vnoperatespec(d56dae08,0,c1313a40,d56daf80,d56634c0) at
    ufs_vnoperatespec+0x15
    vn_open(d56daed4,3,ec,cbf03a00,3) at vn_open+0x3d8
    open(cbf03a00,d56daf80,bfbffa94,bfbffa94,bfbff964) at open+0xb8
    syscall2(c02b002f,2f,2f,bfbff964,bfbffa94) at syscall2+0x1a9
    Xint0x80_syscall() at Xint0x80_syscall+0x25

    Here is the ps snippet

    db> ps
       pid proc addr uid ppid pgrp flag stat wmesg wchan cmd
       151 cbf03380 d56e3000 0 1 151 000084 3 siodtr c11d0418 seriald
       149 cbf03520 d56df000 0 1 149 000084 3 siodtr c11d0818 seriald
       147 cbf03a00 d56d8000 0 1 147 000004 2 seriald
       145 cbf036c0 d56e6000 0 1 145 000484 2 seriald
    db>

      panic
    panic: from debugger
    Debugger("panic")

    Fatal trap 3: breakpoint instruction fault while in kernel mode
    instruction pointer = 0x8:0xc02b3975
    stack pointer = 0x10:0xd56daaa4
    frame pointer = 0x10:0xd56daaac
    code segment = base 0x0, limit 0xfffff, type 0x1b
                             = DPL 0, pres 1, def32 1, gran 1
    processor eflags = interrupt enabled, IOPL = 0
    current process = 147 (seriald)
    interrupt mask = tty
    Stopped at siointr1+0xc5: jmp siointr1+0x1b4

    Any pointers on how to track this down ? It happens both in RELENG_4 from
    May 12th and 5.2-CURRENT FreeBSD 5.2-CURRENT #1: Thu May 13

            ---Mike
    --------------------------------------------------------------------
    Mike Tancsa, tel +1 519 651 3400
    Sentex Communications, mike@sentex.net
    Providing Internet since 1994 www.sentex.net
    Cambridge, Ontario Canada www.sentex.net/mike

    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"


  • Next message: Ion-Mihai Tetcu: "can mount as acd0 (atapi) but not as cd0 (cam)"