Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Mar 2005 18:17:42 +0200
From:      Oleg Tarasov <subscriber@osk.com.ua>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        freebsd-bugs@FreeBSD.org
Subject:   Re: sio interrupt-level buffer overflows
Message-ID:  <1101884216.20050323181742@osk.com.ua>
In-Reply-To: <20050323235823.E19701@epsplex.bde.org>
References:  <815955888.20050323113529@osk.com.ua> <20050323235823.E19701@epsplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

Bruce Evans <bde@zeta.org.au> wrote:

> Working flow control might mask the kernel bug causing this.  Are you using
> pppd's crtscts option?  If things used to work, then the problem might be
> amplified by the new modem not having working flow control.

Yes, I have the option crtscts. But this model must have working flow
control - it was tested for it (as I know).

About my panics. They persist and when this server panics it somehow
overloads my network so it stops functioning until reboot. This is
very, very bad.

Maybe you could tell me where to write, or you could
personally tell me what should I do.

Using all my theoretical skills I have come to this data I could
obtain from my dump:

(kgdb) backtrace
#0  doadump () at pcpu.h:159
#1  0xc060b063 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:397
#2  0xc060b389 in panic (fmt=0xc080321d "spin lock held too long")
    at /usr/src/sys/kern/kern_shutdown.c:553
#3  0xc060270c in _mtx_lock_spin (m=0xc08d7800, td=0xc19ca320, opts=0,
    file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:613
#4  0xc077c165 in siointr (arg=0xc1ab8800) at /usr/src/sys/dev/sio/sio.c:1710
#5  0xc0790ead in intr_execute_handlers (isrc=0xc19b8890, iframe=0xd541ac94)
    at /usr/src/sys/i386/i386/intr_machdep.c:203
#6  0xc07932be in lapic_handle_intr (frame=
      {if_vec = 52, if_fs = -717160424, if_es = -1067384816, if_ds = 16, if_edi
= -1046699232, if_esi = -1064591424, if_ebp = -717116188, if_ebx = -1046425600,
if_edx = -1064566184, if_ecx = 0, if_eax = -1046425600, if_eip = -1067440569, if
_cs = 8, if_eflags = 582, if_esp = -1045200000, if_ss = 4})
    at /usr/src/sys/i386/i386/local_apic.c:490
#7  0xc078d753 in Xapic_isr1 () at apic_vector.s:110
#8  0x00000034 in ?? ()
#9  0xd5410018 in ?? ()
#10 0xc0610010 in coredump (td=0xc08b9fc0) at vnode_if.h:1244
#11 0xc05f6f46 in ithread_loop (arg=0xc1981c80)
    at /usr/src/sys/kern/kern_intr.c:546
#12 0xc05f6001 in fork_exit (callout=0xc05f6df8 <ithread_loop>,
    arg=0xc1981c80, frame=0xd541ad48) at /usr/src/sys/kern/kern_fork.c:811
#13 0xc078d3fc in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:209
(kgdb) list *0xc077c165
0xc077c165 is in siointr (/usr/src/sys/dev/sio/sio.c:1710).
1705
1706    #ifndef COM_MULTIPORT
1707            com = (struct com_s *)arg;
1708
1709            mtx_lock_spin(&sio_lock);
1710            siointr1(com);
1711            mtx_unlock_spin(&sio_lock);
1712    #else /* COM_MULTIPORT */
1713            bool_t          possibly_more_intrs;
1714            int             unit;
(kgdb) list *0xc060270c
0xc060270c is in _mtx_lock_spin (cpufunc.h:305).
300     }
301
302     static __inline void
303     ia32_pause(void)
304     {
305             __asm __volatile("pause");
306     }
307
308     static __inline u_int
309     read_eflags(void)
(kgdb) list *0xc060b389
0xc060b389 is at /usr/src/sys/kern/kern_shutdown.c:553.
548             mtx_lock_spin(&sched_lock);
549             td->td_flags |= TDF_INPANIC;
550             mtx_unlock_spin(&sched_lock);
551             if (!sync_on_panic)
552                     bootopt |= RB_NOSYNC;
553             boot(bootopt);
554     }
555
556     /*
557      * Support for poweroff delay.
(kgdb) list *0xc07932be
0xc07932be is in lapic_handle_intr (/usr/src/sys/i386/i386/local_apic.c:491).
486
487             if (frame.if_vec == -1)
488                     panic("Couldn't get vector from ISR!");
489             isrc = intr_lookup_source(apic_idt_to_irq(frame.if_vec));
490             intr_execute_handlers(isrc, &frame);
491     }
492
493     /* Translate between IDT vectors and IRQ vectors. */
494     u_int
495     apic_irq_to_idt(u_int irq)
                              

-- 
Best regards,
 Oleg Tarasov                          mailto:subscriber@osk.com.ua



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