Date: Wed, 14 May 2003 03:40:20 -0700 (PDT) From: Thomas Moestl <t.moestl@tu-bs.de> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/52198: Kernel trap 12 when debugging fork() with ald [/usr/ports/devel/ald] Message-ID: <200305141040.h4EAeKat014214@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/52198; it has been noted by GNATS. From: Thomas Moestl <t.moestl@tu-bs.de> To: Lolownia <lolownia@polbox.com> Cc: FreeBSD-gnats-submit@freebsd.org Subject: Re: kern/52198: Kernel trap 12 when debugging fork() with ald [/usr/ports/devel/ald] Date: Wed, 14 May 2003 03:26:31 +0200 On Wed, 2003/05/14 at 03:19:24 +0200, Thomas Moestl wrote: > On Wed, 2003/05/14 at 00:36:36 +0200, Lolownia wrote: > > > > >Number: 52198 > > >Category: kern > > >Synopsis: Kernel trap 12 when debugging fork() with ald [/usr/ports/devel/ald] > > [...] > > When stepping through simple assembler program with fork() syscall, > > system drops into DDB > > db> trace > > sw1b(2f,2f,2f,bfbff64c,bfbff654) at sw1b+0xa9 > > fork_trampoline() at fork_trampoline > > --- trap 0xa, eip = 0x804849c, esp = 0xbfbff628, ebp = 0xbfbff644 --- > > This is a bug in cpu_fork(); it bogusly bases the kernel eflags to be > set for a new process on the user eflags of the forking process (since > a commit which seems to originally have been intended to clear PSL_I, > about a year ago). > The patch below should fix this; it will just use a sane initial > value, since cloning the forking process' kernel eflags (as was done > before the commit mentioned above) Oops, actually, that commit introduced eflags saving and restoring in cpu_switch() altogether, so scratch that remarks about the previous behaviour. Need sleep. The patch should be correct, however. - Thomas -- Thomas Moestl <t.moestl@tu-bs.de> http://www.tu-bs.de/~y0015675/ <tmm@FreeBSD.org> http://people.FreeBSD.org/~tmm/ PGP fingerprint: 1C97 A604 2BD0 E492 51D0 9C0F 1FE6 4F1D 419C 776C
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305141040.h4EAeKat014214>