Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Jul 2003 01:59:26 +0200
From:      Pawel Jakub Dawidek <nick@garage.freebsd.pl>
To:        freebsd-current@freebsd.org
Subject:   Panic on SMP machine.
Message-ID:  <20030708235925.GQ4973@garage.freebsd.pl>

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

--NKys6zTV8iyMJiwY
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello.

While building world I get this panic:

Fatal trap 12: page fault while in kernel mode
cpuid =3D 0; lapic.id =3D 00000000
fault virtual address   =3D 24
[...]
instruction pointer     =3D 0x8:0xc01a405b
[...]
current process         =3D 23 (irq10: atapi1+)
kernel: type 12 trap, code=3D0
Stopped at      propagate_priority+0x8b:       cmpl    0x24(%ebx),%ecx
db> trace
propagate_priority+0x8b
_mtx_lock_sleep+0x209
ithread_loop+0x1cc
fork_exit+0xb0
fork_trampoline+0x1a

According to instruction pointer panic is here:
c01a4049:       e8 c2 fe 01 00          call   c01c3f10 <sched_prio>
c01a404e:       eb 75                   jmp    c01a40c5 <propagate_priority=
+0xf5>
c01a4050:       89 f0                   mov    %esi,%eax
c01a4052:       88 81 dd 00 00 00       mov    %al,0xdd(%ecx)
c01a4058:       8b 59 5c                mov    0x5c(%ecx),%ebx
c01a405b:       3b 4b 24                cmp    0x24(%ebx),%ecx
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
c01a405e:       74 90                   je     c01a3ff0 <propagate_priority=
+0x20>
c01a4060:       8b 79 24                mov    0x24(%ecx),%edi
c01a4063:       8b 47 04                mov    0x4(%edi),%eax
c01a4066:       8b 10                   mov    (%eax),%edx
c01a4068:       0f b6 82 dd 00 00 00    movzbl 0xdd(%edx),%eax

IMHO it is here (from /sys/kern/kern_mutex.c):

166:		/*
167:		 * Pick up the mutex that td is blocked on.
168:		 */
169:		m =3D td->td_blocked;
170:		MPASS(m !=3D NULL);
171:
172:		/*
173:		 * Check if the thread needs to be moved up on
174:		 * the blocked chain
175:		 */
176:		if (td =3D=3D TAILQ_FIRST(&m->mtx_blocked)) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
177:			continue;
178:		}

So it looks like 'm' was NULL.

--=20
Pawel Jakub Dawidek                       pawel@dawidek.net
UNIX Systems Programmer/Administrator     http://garage.freebsd.pl
Am I Evil? Yes, I Am!                     http://cerber.sourceforge.net

--NKys6zTV8iyMJiwY
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)

iQCVAwUBPwta3T/PhmMH/Mf1AQEr8QP+JdGNtDpiLFtB9SwZMpGKztXsU+C0A5xz
Q5MjDusuU2wLvfv0AMizWL7ha6ljwEj1rVd74I/A1E2O2ExV8q06C/+h/oQShHAq
Hs2gp9fwaZhEqF3kGwrdXRT/YvjsEDbKXIRc9Iw2tlP3juOXszBWzgGd503k5xRl
IIwm76UwS7Y=
=3Hiv
-----END PGP SIGNATURE-----

--NKys6zTV8iyMJiwY--



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