| Summary: | 4.6-STABLE kernel panic, fxp related | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Paweł Małachowski <pawmal> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 4.6-STABLE | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
Paweł Małachowski
2002-08-31 20:20:01 UTC
>#15 0xc037859f in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16, > tf_edi = 6756538, tf_esi = 1, tf_ebp = -1069570240, tf_isp = -1069570280, > tf_ebx = -1058483712, tf_edx = -1058799616, tf_ecx = -1608507392, > tf_eax = 1828738, tf_trapno = 12, tf_err = 2, tf_eip = -1071494537, > tf_cs = 8, tf_eflags = 66070, tf_esp = -1058571520, tf_ss = -1058512894}) > at /usr/src/sys/i386/i386/trap.c:466 >#16 0xc0224a77 in m_getcl (how=1, type=1, flags=2) > at /usr/src/sys/kern/uipc_mbuf.c:589 >#17 0xc01ae05f in fxp_add_rfabuf (sc=0xc15bca00, oldm=0xc0e77b00) > at /usr/src/sys/dev/fxp/if_fxp.c:1863 Looks like a problem in the new m_getcl() function, which has had some problems recently, but were thought to be fixed. -DG D.G.Lawrence Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500 TeraSolutions, Inc. - http://www.terasolutions.com - (503) 288 9544 The FreeBSD Project - http://www.freebsd.org Pave the road of life with opportunities. On Sat, Aug 31, 2002 at 12:17:47PM -0700, Pawel Malachowski wrote:
> #16 0xc0224a77 in m_getcl (how=1, type=1, flags=2)
> at /usr/src/sys/kern/uipc_mbuf.c:589
This looks like it might be the mcl_pool problem. Can you check what
version of /usr/src/sys/kern/uipc_mbuf.c you have? You might also
like to check and see what "sysctl -a | fgrep mcl_pool_max" outputs.
David.
State Changed From-To: open->feedback Waiting for feedback from submitter. OK, as Ian Dowse suggested, I've tried to use the `date'
in my cvsup file to find out the latest RELENG_4 stable
for me.
The procedure was:
0) edit the supfile with the proper date tag
(for example, date=2002.08.11.10.20.00)
1) fetch src-all
2) make clean and remove everyting from /usr/obj
3) uncomment the `makeoptions DEBUG=-g' in GENERIC config file
4) make kernel
5) reboot
Some of my `checkpoints' were:
----------
2002.07.* RELENG_4 looks stable
----------
2002.08.05 RELENG_4 looks stable
----------
2002.08.08 RELENG_4 looks stable
----------
2002.08.08.18.45 RELENG_4 looks stable
----------
2002.08.09.00.00 RELENG_4 looks stable
----------
2002.08.09.02.11 cannot compile,
known and fixed (USB)
----------
2002.08.09.12.00 RELENG_4 is unstable,
double kernel panic.
#6 0xc02eb420 in acquire_lock (lk=0xc040101c)
at /usr/src/sys/ufs/ffs/ffs_softdep.c:266
266 lk->lkt_held = CURPROC->p_pid;
(kgdb) up 10
#16 0xc0204e20 in m_freem (m=0x0) at /usr/src/sys/kern/uipc_mbuf.c:706
706 if (mcl_pool_now < mcl_pool_max && m->m_next == NULL &&
----------
2002.08.10.12.35 RELENG_4 is unstable,
kernel panic
I've tried to compile with:
static int mcl_pool_max = 0;
but kernel happened:
(kgdb) up 6
#6 0xc0207737 in sosend (so=0xcccf1a80, addr=0x0, uio=0xcdf0ced4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.11.10.20 RELENG_4 is unstable,
kernel panic
(kgdb) up 6
#6 0xc0207737 in sosend (so=0xcccf1a80, addr=0x0, uio=0xcdf03ed4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.12 RELENG_4 is unstable,
double kernel panic
(kgdb) up 6
#6 0xc020485f in m_getcl (how=1, type=1, flags=2)
at /usr/src/sys/kern/uipc_mbuf.c:586
586 MCLGET(mp, how);
(kgdb) up 16
#22 0xc0207737 in sosend (so=0xcccf3dc0, addr=0x0, uio=0xcdf0ded4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.13 RELENG_4 is unstable,
double kernel panic
(kgdb) up 6
#6 0xc020489b in m_getcl (how=1, type=1, flags=2)
at /usr/src/sys/kern/uipc_mbuf.c:589
589 MCLGET(mp, how);
(kgdb) up 16
#22 0xc0207773 in sosend (so=0xcccf3dc0, addr=0x0, uio=0xcdf0ded4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.14 RELENG_4 is unstable,
kernel panic
(kgdb) up 6
#6 0xc02077d3 in sosend (so=0xcccf1900, addr=0x0, uio=0xcdf0ced4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.15 RELENG_4 is unstable,
double kernel panic
(kgdb) up 6
#6 0xc0204917 in m_getcl (how=1, type=1, flags=2)
at /usr/src/sys/kern/uipc_mbuf.c:589
589 MCLGET(mp, how);
(kgdb) up 16
#22 0xc02077ef in sosend (so=0xcccf1c00, addr=0x0, uio=0xcdf0ced4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.16 RELENG_4 is unstable,
kernel panic
(kgdb) up 6
#6 0xc02077ef in sosend (so=0xcccf1a80, addr=0x0, uio=0xcdf0ced4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.20 RELENG_4 is unstable,
double kernel panic
(kgdb) up 6
#6 0xc0204963 in m_getcl (how=1, type=1, flags=2)
at /usr/src/sys/kern/uipc_mbuf.c:589
589 MCLGET(mp, how);
(kgdb) up 16
#22 0xc020783b in sosend (so=0xcccf1c00, addr=0x0, uio=0xcdf0fed4, top=0x0,
control=0x0, flags=0, p=0xcc2ff1e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
----------
2002.08.30 RELENG_4 is unstable,
kernel panic
----------
2002.09.03 RELENG_4 is unstable,
kernel panic
(kgdb) up 6
#6 0xc0227f87 in sosend (so=0xcccdab40, addr=0x0, uio=0xcda28ed4, top=0x0,
control=0x0, flags=0, p=0xcc2e81e0) at /usr/src/sys/kern/uipc_socket.c:567
567 MCLGET(m, M_WAIT);
>sysctl -a | grep pool
kern.ipc.mcl_pool_max: 0
kern.ipc.mcl_pool_now: 0
>netstat -m -M vmcore.26 -N /usr/obj/usr/src/sys/GENERIC/kernel.debug
161/640/10048 mbufs in use (current/peak/max):
161 mbufs allocated to data
159/326/2512 mbuf clusters in use (current/peak/max)
812 Kbytes allocated to network (10% of mb_map in use)
0 requests for memory denied
0 requests for memory delayed
0 calls to protocol drain routines
vmstat -M vmcore.26 -N /usr/obj/usr/src/sys/GENERIC/kernel.debug
procs memory page disks faults cpu
r b w avm fre flt re pi po fr sr ad0 md0 in sy cs us sy id
1 0 0 26188 36156 16 0 0 0 28 0 0 0 257 509 176 0 2 97
----------
So, it looks as if the problem was introduced beetween
2002.08.09 00:00 and 2002.08.10 12:35.
This could by interesting:
Edit src/sys/dev/fxp/if_fxp.c
Add delta 1.110.2.24 2002.08.09.02.04.20 luigi
Edit src/sys/kern/uipc_mbuf.c
Add delta 1.51.2.17 2002.08.09.02.11.08 luigi
Add delta 1.51.2.18 2002.08.10.12.34.31 iedowse
The instruction pointer in panic message points to sosend()
and sometimes to m_getcl().
Crashdumps were removed from my HDD cause I don't have enough
space to keep all 26 cores. I have screenshots with `bt' info
from gdb for almost every panic message. It's also easy for me
to reproduce these panics on machine described in this PR.
Was this helpfull?
--
Pawe³ Ma³achowski
State Changed From-To: feedback->patched Fixed in -CURRENT for the default non-DEVICE_POLLING case, awaiting MFC to -STABLE. State Changed From-To: patched->closed Fixed in both -STABLE and -CURRENT. |