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>