Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Sep 2000 13:05:46 -0400 (EDT)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        Reifenberger Michael <Michael.Reifenberger.gp@icn.siemens.de>
Cc:        "'freebsd-emulation@freebsd.org'" <freebsd-emulation@freebsd.org>
Subject:   Re: IBM JDK 1.3 now working (pointer to patches)
Message-ID:  <14791.39444.277301.461069@grasshopper.cs.duke.edu>
In-Reply-To: <67E0BE167008D31185F60008C7289DA0E12F19@MCHH218E>
References:  <67E0BE167008D31185F60008C7289DA0E12F19@MCHH218E>

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

Reifenberger Michael writes:
 > Hi,
 > I've tried your latest patches on -current (patching the kernel, rebuilt kernel+modules).
 > It works better than before - it doesn't fill the syslog with ton's of messages.
 > But it isn't fully working as expected.
 > After starting one of my testapps (lotus notes or oracle 8.1.6 installer) I get one:
 > "kernel: trap 9 with interrupts disabled" in syslog and nothing else happens.
 > Am I missing something?

It looks like the IBM jdk 1.1.8 has a different problem than the the
1.3 jdk.

From a ktrace I see the problem when a particular thread is clone()'ed:

<...>
  2848 java     RET   linux_fork 0
  2848 java     CALL  getpid
  2848 java     RET   getpid 2848/0xb20
  2848 java     CALL  linux_rt_sigprocmask(0x2,0xbf1ffec4,0,0x8)
  2848 java     RET   linux_rt_sigprocmask 0
  2848 java     CALL  linux_sched_setscheduler(0xb20,0,0xbf1fff48)
  2848 java     RET   linux_sched_setscheduler RESTART
  2848 java     CALL  nanosleep(0xbf1ffd00,0)
  2846 java     RET   linux_kill 0
  2846 java     CALL  poll(0x80b1600,0x1,0x7d0)
  2841 java     RET   linux_rt_sigsuspend -1 errno 4 Interrupted system call
  2841 java     CALL  linux_sigreturn(0xbfbfe99c)
  2848 java     RET   nanosleep 0
  2848 java     CALL  nanosleep(0xbf1ffd00,0)
  2841 java     RET   linux_sigreturn JUSTRETURN
  2841 java     CALL  linux_rt_sigprocmask(0x2,0,0xbfbfeac8,0x8)
  2841 java     RET   linux_rt_sigprocmask 0
  2841 java     CALL  linux_rt_sigsuspend(0xbfbfeac8,0x8)
  2848 java     RET   nanosleep 0
  2848 java     CALL  getpid
  2848 java     RET   getpid 2848/0xb20
  2848 java     CALL  linux_rt_sigprocmask(0x1,0x281f9a20,0,0x8)
  2848 java     RET   linux_rt_sigprocmask 0
  2848 java     CALL  linux_modify_ldt(0x11,0xbf1ffcf4,0x10)
  2848 java     RET   linux_modify_ldt 0
  2848 java     PSIG  SIGSEGV caught handler=0x28082460 mask=0x80000000 code=0x0
  2848 java     PSIG  SIGSEGV caught handler=0x28082460 mask=0xcffef6bf code=0xffffffff
  2848 java     PSIG  SIGSEGV caught handler=0x28082460 mask=0xcffef6bf code=0xffffffff
<...>

Between the end of the linux_modify_ldt() function and the first
SEGV signal, a "kernel trap 9 with interrupts disabled" is printed on
console. (verified w/printfs in linux_sendsig() and linux_modify_ldt()).

I cannot prove this, but I suspect that something is going wrong with
the linux_modify_ldt() call and trashing the process's address space.
I played around with our linux_modify_ldt() function & "fixed" a few
minor incompatibilities, but it didn't seem to have any effect.

I hate to say this, but I'm mainly an alpha guy & I don't know
anything about x86 ldts.  I don't even know what they are.  Given that
the IBM JDK 1.3 works, I'm afraid that I'm not terribly motivated to
spend any time getting the obsolete 1.8 version to work.  So I'm going
to back away from this problem.

Hopefully somebody who has more knowledge about the low-level workings
of x86 processors can take up the torch.

Sorry,

Drew

------------------------------------------------------------------------------
Andrew Gallatin, Sr Systems Programmer	http://www.cs.duke.edu/~gallatin
Duke University				Email: gallatin@cs.duke.edu
Department of Computer Science		Phone: (919) 660-6590


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message




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