Date: Wed, 31 Mar 2004 15:45:39 -0500 From: John Baldwin <jhb@FreeBSD.org> To: Scott Long <scottl@freebsd.org> Cc: Dan Nelson <dnelson@allantgroup.com> Subject: Re: panic: mutex Giant owned at ../../../kern/kern_thread.c:1341 Message-ID: <200403311545.39264.jhb@FreeBSD.org> In-Reply-To: <40675694.3080609@freebsd.org> References: <20040328211018.GN3446@dan.emsphone.com> <20040328222031.GA19463@dan.emsphone.com> <40675694.3080609@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 28 March 2004 05:49 pm, Scott Long wrote: > Dan Nelson wrote: > > In the last episode (Mar 28), Dan Nelson said: > >>Got this running an ibcs2_coff binary on today's kernel: > >> > >>(kgdb) where > >>#6 0xc7c1dd5b in ibcs2_wait (td=0xc7ef5540, uap=0x0) > >> at /usr/src/sys/i386/ibcs2/ibcs2_misc.c:164 > > > > I think this is due to ibcs2_wait being left out when wait4() was > > converted to giant-free (giant-allergic actually). The following seems > > to fix it: > > > > Index: syscalls.master > > =================================================================== > > RCS file: /mnt/emssrv5/home/ncvs/src/sys/i386/ibcs2/syscalls.master,v > > retrieving revision 1.17 > > diff -u -r1.17 syscalls.master > > --- syscalls.master 6 Feb 2004 20:20:07 -0000 1.17 > > +++ syscalls.master 28 Mar 2004 22:00:40 -0000 > > @@ -37,7 +37,7 @@ > > 4 MNOPROTO { int write(int fd, char *buf, u_int nbytes); } > > 5 STD { int ibcs2_open(char *path, int flags, int mode); } > > 6 MNOPROTO { int close(int fd); } > > -7 STD { int ibcs2_wait(int a1, int a2, int a3); } > > +7 MSTD { int ibcs2_wait(int a1, int a2, int a3); } > > 8 STD { int ibcs2_creat(char *path, int mode); } > > 9 NOPROTO { int link(char *path, char *link); } > > 10 STD { int ibcs2_unlink(char *path); } > > I agree that this is appropriate. However, ibcs2_wait() might need to > have some proc locks sprinkled into it. It would be good to have > someone like John Baldwin comment on it. It's safe, I just forgot to tag it along with the other wait functions when I added kern_wait() it seems. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403311545.39264.jhb>