Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jun 2013 20:17:12 -0400
From:      Glen Barber <gjb@FreeBSD.org>
To:        freebsd-current@FreeBSD.org
Subject:   [panic] swi4 page fault (ip_slowtimo())
Message-ID:  <20130622001712.GA1888@glenbarber.us>

next in thread | raw e-mail | index | archive | help

--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

I have the following kgdb session from a page fault seemingly triggered
in pf(4).

I realize the -CURRENT is about a month old, but I cannot find any
commits that seem relevant to this area of the code.

I am happy to dig further and provide any information that is requested.

Glen

Script started on Fri Jun 21 19:57:21 2013
root@orion:/usr/obj/usr/src/sys/ORION # uname -a
FreeBSD orion 10.0-CURRENT FreeBSD 10.0-CURRENT #10 r250476: Fri May 10 16:=
29:54 EDT 2013     root@orion:/usr/obj/usr/src/sys/ORION  amd64
root@orion:/usr/obj/usr/src/sys/ORION # kgdb ./kernel.debug /var/crash/vmco=
re.8
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain condition=
s.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid =3D 0; apic id =3D 00
fault virtual address	=3D 0x11
fault code		=3D supervisor read data, page not present
instruction pointer	=3D 0x20:0xffffffff80772688
stack pointer	        =3D 0x28:0xffffff800026da20
frame pointer	        =3D 0x28:0xffffff800026da40
code segment		=3D base 0x0, limit 0xfffff, type 0x1b
			=3D DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	=3D interrupt enabled, resume, IOPL =3D 0
current process		=3D 12 (swi4: clock)
trap number		=3D 12
panic: page fault
cpuid =3D 0
KDB: stack backtrace:
#0 0xffffffff80676a46 at kdb_backtrace+0x66
#1 0xffffffff8063ae6b at panic+0x13b
#2 0xffffffff80918ba0 at trap_fatal+0x290
#3 0xffffffff80918f11 at trap_pfault+0x221
#4 0xffffffff809194c4 at trap+0x344
#5 0xffffffff80902c53 at calltrap+0x8
#6 0xffffffff806a29ce at pfslowtimo+0x2e
#7 0xffffffff80651476 at softclock_call_cc+0x106
#8 0xffffffff80651b09 at softclock+0xa9
#9 0xffffffff8060c06d at intr_event_execute_handlers+0xfd
#10 0xffffffff8060d81b at ithread_loop+0x9b
#11 0xffffffff80608c1f at fork_exit+0x11f
#12 0xffffffff8090317e at fork_trampoline+0xe
Uptime: 42d1h53m40s
(ada0:ahcich0:0:0:0): FLUSHCACHE48. ACB: ea 00 00 00 00 40 00 00 00 00 00 00
(ada0:ahcich0:0:0:0): CAM status: CCB request is in progress
(ada0:ahcich0:0:0:0): Error 5, Retries exhausted
(ada0:ahcich0:0:0:0): Synchronize cache failed
(ada1:ahcich1:0:0:0): FLUSHCACHE48. ACB: ea 00 00 00 00 40 00 00 00 00 00 00
(ada1:ahcich1:0:0:0): CAM status: CCB request is in progress
(ada1:ahcich1:0:0:0): Error 5, Retries exhausted
(ada1:ahcich1:0:0:0): Synchronize cache failed
(ada2:ahcich4:0:0:0): FLUSHCACHE48. ACB: ea 00 00 00 00 40 00 00 00 00 00 00
(ada2:ahcich4:0:0:0): CAM status: CCB request is in progress
(ada2:ahcich4:0:0:0): Error 5, Retries exhausted
(ada2:ahcich4:0:0:0): Synchronize cache failed
(ada3:ahcich5:0:0:0): FLUSHCACHE48. ACB: ea 00 00 00 00 40 00 00 00 00 00 00
(ada3:ahcich5:0:0:0): CAM status: CCB request is in progress
(ada3:ahcich5:0:0:0): Error 5, Retries exhausted
(ada3:ahcich5:0:0:0): Synchronize cache failed
Dumping 2263 out of 6048 MB:..1%..11%..21%..31%..41%..51%..61%..71%..81%..9=
1%

Reading symbols from /boot/kernel/zfs.ko.symbols...done.
Loaded symbols for /boot/kernel/zfs.ko.symbols
Reading symbols from /boot/kernel/opensolaris.ko.symbols...done.
Loaded symbols for /boot/kernel/opensolaris.ko.symbols
#0  doadump (textdump=3D<value optimized out>) at pcpu.h:231
231		__asm("movq %%gs:%1,%0" : "=3Dr" (td)
(kgdb) bt
#0  doadump (textdump=3D<value optimized out>) at pcpu.h:231
#1  0xffffffff8063a9d6 in kern_reboot (howto=3D260) at /usr/src/sys/kern/ke=
rn_shutdown.c:447
#2  0xffffffff8063ae55 in panic (fmt=3D<value optimized out>) at /usr/src/s=
ys/kern/kern_shutdown.c:754
#3  0xffffffff80918ba0 in trap_fatal (frame=3D0xc, eva=3D<value optimized o=
ut>) at /usr/src/sys/amd64/amd64/trap.c:872
#4  0xffffffff80918f11 in trap_pfault (frame=3D0xffffff800026d970, usermode=
=3D0) at /usr/src/sys/amd64/amd64/trap.c:789
#5  0xffffffff809194c4 in trap (frame=3D0xffffff800026d970) at /usr/src/sys=
/amd64/amd64/trap.c:463
#6  0xffffffff80902c53 in calltrap () at /usr/src/sys/amd64/amd64/exception=
=2ES:228
#7  0xffffffff80772688 in ip_slowtimo () at /usr/src/sys/netinet/ip_input.c=
:1237
#8  0xffffffff806a29ce in pfslowtimo (arg=3D0x0) at /usr/src/sys/kern/uipc_=
domain.c:508
#9  0xffffffff80651476 in softclock_call_cc (c=3D0xffffffff80e1ac60, cc=3D0=
xffffffff80dc6800, direct=3D0)
    at /usr/src/sys/kern/kern_timeout.c:674
#10 0xffffffff80651b09 in softclock (arg=3D<value optimized out>) at /usr/s=
rc/sys/kern/kern_timeout.c:802
#11 0xffffffff8060c06d in intr_event_execute_handlers (p=3D<value optimized=
 out>, ie=3D0xfffffe0010811900)
    at /usr/src/sys/kern/kern_intr.c:1263
#12 0xffffffff8060d81b in ithread_loop (arg=3D0xfffffe0010819000) at /usr/s=
rc/sys/kern/kern_intr.c:1276
#13 0xffffffff80608c1f in fork_exit (callout=3D0xffffffff8060d780 <ithread_=
loop>, arg=3D0xfffffe0010819000, frame=3D0xffffff800026dc00)
    at /usr/src/sys/kern/kern_fork.c:991
#14 0xffffffff8090317e in fork_trampoline () at /usr/src/sys/amd64/amd64/ex=
ception.S:602
#15 0x0000000000000000 in ?? ()
(kgdb) frame 6
#6  0xffffffff80902c53 in calltrap () at /usr/src/sys/amd64/amd64/exception=
=2ES:228
228		call	trap
Current language:  auto; currently asm
(kgdb) list *0xffffffff80902c53
0xffffffff80902c53 is at /usr/src/sys/amd64/amd64/exception.S:230.
225		.type	calltrap,@function
226	calltrap:
227		movq	%rsp,%rdi
228		call	trap
229		MEXITCOUNT
230		jmp	doreti			/* Handle any pending ASTs */
231=09
232		/*
233		 * alltraps_noen entry point.  Unlike alltraps above, we want to
234		 * leave the interrupts disabled.  This corresponds to
(kgdb) up
#7  0xffffffff80772688 in ip_slowtimo () at /usr/src/sys/netinet/ip_input.c=
:1237
1237				for(fp =3D TAILQ_FIRST(&V_ipq[i]); fp;) {
Current language:  auto; currently c
(kgdb) list *0xffffffff80772688
0xffffffff80772688 is in ip_slowtimo (/usr/src/sys/netinet/ip_input.c:1242).
1237				for(fp =3D TAILQ_FIRST(&V_ipq[i]); fp;) {
1238					struct ipq *fpp;
1239=09
1240					fpp =3D fp;
1241					fp =3D TAILQ_NEXT(fp, ipq_list);
1242					if(--fpp->ipq_ttl =3D=3D 0) {
1243						IPSTAT_ADD(ips_fragtimeout,
1244						    fpp->ipq_nfrags);
1245						ip_freef(&V_ipq[i], fpp);
1246					}
(kgdb) p *ipq
$1 =3D {tqh_first =3D 0x0, tqh_last =3D 0xffffffff80e20e80}
(kgdb) up
#8  0xffffffff806a29ce in pfslowtimo (arg=3D0x0) at /usr/src/sys/kern/uipc_=
domain.c:508
508					(*pr->pr_slowtimo)();
(kgdb) list *0xffffffff806a29ce
0xffffffff806a29ce is in pfslowtimo (/usr/src/sys/kern/uipc_domain.c:506).
501	{
502		struct domain *dp;
503		struct protosw *pr;
504=09
505		for (dp =3D domains; dp; dp =3D dp->dom_next)
506			for (pr =3D dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
507				if (pr->pr_slowtimo)
508					(*pr->pr_slowtimo)();
509		callout_reset(&pfslow_callout, hz/2, pfslowtimo, NULL);
510	}
(kgdb) p *dp
$2 =3D {dom_family =3D 2, dom_name =3D 0xffffffff80a56512 "internet", dom_i=
nit =3D 0, dom_destroy =3D 0, dom_externalize =3D 0, dom_dispose =3D 0,=20
  dom_protosw =3D 0xffffffff80d16320, dom_protoswNPROTOSW =3D 0xffffffff80d=
16ce0, dom_next =3D 0x0,=20
  dom_rtattach =3D 0xffffffff8076d070 <in_inithead>, dom_rtdetach =3D 0, do=
m_rtoffset =3D 32, dom_maxrtkey =3D 16,=20
  dom_ifattach =3D 0xffffffff807626c0 <in_domifattach>, dom_ifdetach =3D 0x=
ffffffff80762690 <in_domifdetach>}
(kgdb) p *dp
$3 =3D {dom_family =3D 2, dom_name =3D 0xffffffff80a56512 "internet", dom_i=
nit =3D 0, dom_destroy =3D 0, dom_externalize =3D 0, dom_dispose =3D 0,=20
  dom_protosw =3D 0xffffffff80d16320, dom_protoswNPROTOSW =3D 0xffffffff80d=
16ce0, dom_next =3D 0x0,=20
  dom_rtattach =3D 0xffffffff8076d070 <in_inithead>, dom_rtdetach =3D 0, do=
m_rtoffset =3D 32, dom_maxrtkey =3D 16,=20
  dom_ifattach =3D 0xffffffff807626c0 <in_domifattach>, dom_ifdetach =3D 0x=
ffffffff80762690 <in_domifdetach>}
(kgdb) p *domains
$4 =3D {dom_family =3D 17, dom_name =3D 0xffffffff809acd08 "route", dom_ini=
t =3D 0, dom_destroy =3D 0, dom_externalize =3D 0, dom_dispose =3D 0,=20
  dom_protosw =3D 0xffffffff80d11300, dom_protoswNPROTOSW =3D 0xffffffff80d=
11368, dom_next =3D 0xffffffff80d21de0, dom_rtattach =3D 0,=20
  dom_rtdetach =3D 0, dom_rtoffset =3D 0, dom_maxrtkey =3D 0, dom_ifattach =
=3D 0, dom_ifdetach =3D 0}
(kgdb) p *dp->dom_protoswNPROTOSW
$5 =3D {pr_type =3D 2, pr_domain =3D 0xffffffff80a56512, pr_protocol =3D 0,=
 pr_flags =3D 0, pr_input =3D 0, pr_output =3D 0, pr_ctlinput =3D 0,=20
  pr_ctloutput =3D 0xffffffff80d16320 <inetsw>, pr_init =3D 0xffffffff80d16=
ce0 <inetdomain>, pr_destroy =3D 0,=20
  pr_fasttimo =3D 0xffffffff8076d070 <in_inithead>, pr_slowtimo =3D 0, pr_d=
rain =3D 0x1000000020, pr_usrreqs =3D 0xffffffff807626c0}
(kgdb) p pfslow_callout
$6 =3D {c_links =3D {le =3D {le_next =3D 0x0, le_prev =3D 0xffffffff80dc691=
0}, sle =3D {sle_next =3D 0x0}, tqe =3D {tqe_next =3D 0x0,=20
      tqe_prev =3D 0xffffffff80dc6910}}, c_time =3D 15614872462233060, c_pr=
ecision =3D 134217718, c_arg =3D 0x0,=20
  c_func =3D 0xffffffff806a29a0 <pfslowtimo>, c_lock =3D 0x0, c_flags =3D 1=
46, c_cpu =3D 0}
(kgdb) p *pfslowtimo
$7 =3D {void (void *)} 0xffffffff806a29a0 <pfslowtimo>
(kgdb) up
#9  0xffffffff80651476 in softclock_call_cc (c=3D0xffffffff80e1ac60, cc=3D0=
xffffffff80dc6800, direct=3D0)
    at /usr/src/sys/kern/kern_timeout.c:674
674		c_func(c_arg);
(kgdb) list *0xffffffff80651476
0xffffffff80651476 is in softclock_call_cc (/usr/src/sys/kern/kern_timeout.=
c:675).
670		sbt1 =3D sbinuptime();
671	#endif
672		THREAD_NO_SLEEPING();
673		SDT_PROBE(callout_execute, kernel, , callout_start, c, 0, 0, 0, 0);
674		c_func(c_arg);
675		SDT_PROBE(callout_execute, kernel, , callout_end, c, 0, 0, 0, 0);
676		THREAD_SLEEPING_OK();
677	#if defined(DIAGNOSTIC) || defined(CALLOUT_PROFILING)
678		sbt2 =3D sbinuptime();
679		sbt2 -=3D sbt1;
(kgdb) quit
root@orion:/usr/obj/usr/src/sys/ORION # ^D

Script done on Fri Jun 21 19:57:39 2013



--bp/iNruPH9dso1Pn
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (FreeBSD)

iQEcBAEBCAAGBQJRxO0IAAoJEFJPDDeguUaj4hYH/2bjj3VtJraUQk6/gyxR80Y5
h9JKEoWQuHJD6FgjiPHy4NYSS9lwCVMWv8s/VNi6TkGuvff+qHPKoVq6ATFYkrBL
e/DWT2fi/Dc9eUeI14WapSbjC/p2/zfOWmx9qqE1ZxcCh7jsLqeUncpberUr363n
CVU12xAQiPstdrzPS3UReYF+E8OH9C4V8uUI6HIMkFvZiV2QASfCxxTc27MR2j91
TRc25Xf7e9RwoCxQ2MjgnAzGrwMiHOtrZ5ffEMUQWUQyuP2zpNQk9BryZ7FwJ2O4
17fXaER9NNqGq3Iwm+8IBbY7SOMVBsfvOWuBUTH36xuy/L9gFUOlF209k7gKSQw=
=Ls4x
-----END PGP SIGNATURE-----

--bp/iNruPH9dso1Pn--



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