Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Jul 2006 00:54:14 +0400
From:      Yuri Pankov <y.pankov@irbis.net.ru>
To:        Divacky Roman <xdivac02@stud.fit.vutbr.cz>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: building native JDK 1.5.0 and linprocfs witness reports
Message-ID:  <1152478454.66985.5.camel@klamath.irbis.net.ru>
In-Reply-To: <20060709091720.GA86627@stud.fit.vutbr.cz>
References:  <20060708202730.7dfaedf1@klamath.irbis.net.ru> <20060709091720.GA86627@stud.fit.vutbr.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2006-07-09 at 11:17 +0200, Divacky Roman wrote:
> On Sat, Jul 08, 2006 at 08:27:30PM +0400, Yuri Pankov wrote:
> > Hi.
> > 
> > I've problems compiling native JDK 1.5.0. Posting to this list as it
> > seems related to linprocfs problems (linux-sun-jdk is used for
> > bootstraping). Build fails early in the beginning with "javac"
> > segmentation fault, and here's what I get in dmesg (lots of such
> > messages):
> > malloc(M_WAITOK) of "1024", forcing M_NOWAIT with the
> > following non-sleepable locks held: exclusive sleep mutex vm object
> > (standard object) r = 0 (0xffffff0063434578) locked
> > @ /usr/src/sys/compat/linprocfs/linprocfs.c:835
> 
> this happens because the code locks the vm object which non-sleepable
> mutex to protect it and then subsequent code calls malloc with WAITOK
> which is forbidden in such cases.
> 
> pls, can you try attached patch and tell me whats printed if you reproduce
> the problem? its not meant to fix anything just a info print
> 
> thnx, roman
> 
> Index: linprocfs.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/compat/linprocfs/linprocfs.c,v
> retrieving revision 1.96
> diff -u -r1.96 linprocfs.c
> --- linprocfs.c	27 Jun 2006 20:11:58 -0000	1.96
> +++ linprocfs.c	9 Jul 2006 09:14:55 -0000
> @@ -832,6 +832,7 @@
>  		ino = 0;
>  		if (lobj) {
>  			vp = lobj->handle;
> +			printf("lobj type: %i\n", lobj->type);
>  			VM_OBJECT_LOCK(lobj);
>  			off = IDX_TO_OFF(lobj->size);
>  			if (lobj->type == OBJT_VNODE && lobj->handle) {

I've got a lot of identical messages, so I just grep'ed lobj type from
dmesg.
# dmesg | grep 'lobj type'
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 0
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 0
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 0
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 0
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 2
lobj type: 0

-- 
Yuri




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