Re: [kaffe] jvmpi
hi, I've checked in some JVMPI stuff. Its not completely done yet, but its a pretty good start. I'll try and get it finish RSN. Hopefully, i didn't break anything... Real soon now indeed... The last checkin gets things a bit farther, atleast for the jit3/unix-jthreads configuration. I can run the tracer for the Extensible Java Profiler and get reasonable output for method traces, but the class loader trace does not seem to work. You can get EJP here: http://ejp.sourceforge.net/ I've only run the tracer library in kaffe though, I ran the presenter interface using jdk1.4. thanks, tim ___ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
[kaffe] CVS kaffe (stack): JVMPI checkpoint
PatchSet 4000 Date: 2003/08/30 23:57:08 Author: stack Branch: HEAD Tag: (none) Log: JVMPI checkpoint Members: ChangeLog:1.1596-1.1597 include/jni.h:1.21-1.22 include/jvmpi.h:1.1-1.2 kaffe/jvmpi/jvmpi_kaffe.c:1.1-1.2 kaffe/kaffe/main.c:1.48-1.49 kaffe/kaffevm/classMethod.c:1.107-1.108 kaffe/kaffevm/exception.c:1.70-1.71 kaffe/kaffevm/jni.c:1.91-1.92 kaffe/kaffevm/kaffe.def:1.26-1.27 kaffe/kaffevm/soft.c:1.54-1.55 kaffe/kaffevm/soft.h:1.11-1.12 kaffe/kaffevm/jit3/codeproto.h:1.11-1.12 kaffe/kaffevm/jit3/icode.c:1.30-1.31 kaffe/kaffevm/jit3/machine.c:1.39-1.40 kaffe/kaffevm/jit3/machine.h:1.18-1.19 kaffe/kaffevm/systems/unix-jthreads/jthread.c:1.99-1.100 kaffe/kaffevm/systems/unix-jthreads/jthread.h:1.45-1.46 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.1596 kaffe/ChangeLog:1.1597 --- kaffe/ChangeLog:1.1596 Sat Aug 30 20:24:58 2003 +++ kaffe/ChangeLog Sat Aug 30 23:57:08 2003 @@ -1,5 +1,51 @@ 2003-08-30 Timothy S. Stack [EMAIL PROTECTED] + * include/jni.h, include/jvmpi.h: + Change constant values to match the Sun versions so binaries are + compatible. + + * kaffe/jvmpi/jvmpi_kaffe.c: + Update for change to stack trace stuff. Add missing param in + jvmpiRawMonitorWait. Implement jvmpiSuspendThread and + jvmpiThreadHasRun. + + * kaffe/kaffe/main.c: + Add -Xrun command line argument. + + * kaffe/kaffevm/classMethod.c: + Move up class load event so partially loaded classes aren't + missing from profiles. + + * kaffe/kaffevm/exception.c: + Call soft_exit_method() when walking up the stack. + + * kaffe/kaffevm/jni.c: + Add JVMPI stuff to GetEnv. Call softcall_exit_method() when a + void method returns. + + * kaffe/kaffevm/kaffe.def: + Call softcall_exit_method() when a void method returns. + + * kaffe/kaffevm/soft.h, kaffe/kaffevm/soft.c: + Add soft_enter_method/soft_exit_method to call JVMPI stuff at + method entry/exit. + + * kaffe/kaffevm/jit3/codeproto.h, + kaffe/kaffevm/jit3/icode.c: + Add softcall_enter_method/softcall_exit_method to call JVMPI stuff + at method entry/exit. + + * kaffe/kaffevm/jit3/machine.h, + kaffe/kaffevm/jit3/machine.c: + Always turn on globalMethod variable, not just when + --with-profiling is on... Its also needed by JVMPI. + + * kaffe/kaffevm/systems/unix-jthreads/jthread.h, + kaffe/kaffevm/systems/unix-jthreads/jthread.c: + Fix CPU usage computation. + +2003-08-30 Timothy S. Stack [EMAIL PROTECTED] + * libraries/clib/io/FileDescriptor.c: Use '#ifdef's around O_SYNC/O_DSYNC since they are not defined on FreeBSD. Index: kaffe/include/jni.h diff -u kaffe/include/jni.h:1.21 kaffe/include/jni.h:1.22 --- kaffe/include/jni.h:1.21Thu Jul 31 22:46:43 2003 +++ kaffe/include/jni.h Sat Aug 30 23:57:09 2003 @@ -582,9 +582,8 @@ #define JNI_VERSION_1_10x00010001 #define JNI_VERSION_1_20x00010002 -#define JVMPI_VERSION_10x1001 -#define JVMPI_VERSION_1_1 0x10010001 -#define JVMPI_VERSION_1_2 0x10010002 +#define JVMPI_VERSION_10x1001 +#define JVMPI_VERSION_1_1 0x1002 #if defined(__cplusplus) } Index: kaffe/include/jvmpi.h diff -u kaffe/include/jvmpi.h:1.1 kaffe/include/jvmpi.h:1.2 --- kaffe/include/jvmpi.h:1.1 Sat Jul 26 16:50:47 2003 +++ kaffe/include/jvmpi.h Sat Aug 30 23:57:09 2003 @@ -7,63 +7,81 @@ #define _KAFFE_JVMPI_H enum { + JVMPI_FAIL = -1, JVMPI_SUCCESS, - JVMPI_FAIL, JVMPI_NOT_AVAILABLE, +}; - JVMPI_THREAD_RUNNABLE, +enum { + JVMPI_THREAD_RUNNABLE = 1, JVMPI_THREAD_MONITOR_WAIT, JVMPI_THREAD_CONDVAR_WAIT, +}; - JVMPI_THREAD_SUSPENDED = 0x4000, - JVMPI_THREAD_INTERRUPTED = 0x8000, +enum { + JVMPI_THREAD_INTERRUPTED = 0x4000, + JVMPI_THREAD_SUSPENDED = 0x8000, }; enum { - JVMPI_NORMAL_PRIORITY, - JVMPI_MAXIMUM_PRIORITY, - JVMPI_MINIMUM_PRIORITY, + JVMPI_MINIMUM_PRIORITY = 1, + JVMPI_NORMAL_PRIORITY = 5, + JVMPI_MAXIMUM_PRIORITY = 10, }; enum { - JVMPI_EVENT_ARENA_DELETE, - JVMPI_EVENT_ARENA_NEW, - JVMPI_EVENT_CLASS_LOAD, - JVMPI_EVENT_CLASS_LOAD_HOOK, - JVMPI_EVENT_CLASS_UNLOAD, - JVMPI_EVENT_COMPILED_METHOD_LOAD, + JVMPI_EVENT_METHOD_ENTRY = 1, + JVMPI_EVENT_METHOD_ENTRY2, + JVMPI_EVENT_METHOD_EXIT, + + JVMPI_EVENT_OBJECT_ALLOC = 4, + JVMPI_EVENT_OBJECT_FREE, + JVMPI_EVENT_OBJECT_MOVE, + + JVMPI_EVENT_COMPILED_METHOD_LOAD = 7, JVMPI_EVENT_COMPILED_METHOD_UNLOAD, - JVMPI_EVENT_DATA_DUMP_REQUEST, - JVMPI_EVENT_DATA_RESET_REQUEST, -
Re: [kaffe] CVS kaffe (guilhem): Classpath's IO/net subsystem merging+ fixes.
Timothy Stack wrote: On Sat, 30 Aug 2003 07:20:57 -0700 Kaffe CVS [EMAIL PROTECTED] wrote: PatchSet 3996 Date: 2003/08/30 14:18:17 Author: guilhem Branch: HEAD Tag: (none) Log: Classpath's IO/net subsystem merging + fixes. Nice work! That's going to help me out a lot. I compiled it 4 times, and I found some possible regressions (x86/Linux/defaults), all intermittent: * GCTest.java - I had 2 failures in 4 runs of make check * NetworkInterfaceTest.java - I had 1 failure in 4 runs of make check NetworkInterfaceTest, InetAddressTest, and InetSocketAddressTest fail for me... The log of the failure would be helpful... (*.fail) Thanks, Guilhem. ___ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
[kaffe] CVS kaffe (guilhem): Various fixes.
PatchSet 4001 Date: 2003/08/31 17:16:47 Author: guilhem Branch: HEAD Tag: (none) Log: Various fixes. Noticeable changes: Reimplementation of deleteOnExit (missing in classpath) Removed SoInterrupt because it is wrong. Implemented fsync for pthreads. Members: ChangeLog:1.1597-1.1598 include/Makefile.am:1.47-1.48 include/Makefile.in:1.119-1.120 kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.14-1.15 libraries/clib/io/File.c:1.20-1.21 libraries/clib/io/FileDescriptor.c:1.5-1.6 libraries/clib/net/NetworkInterface.c:1.2-1.3 libraries/clib/net/PlainDatagramSocketImpl.c:1.27-1.28 libraries/clib/net/PlainSocketImpl.c:1.31-1.32 libraries/javalib/java/io/File.java:1.35-1.36 libraries/javalib/java/lang/Runtime.java:1.25-1.26 libraries/javalib/java/lang/Thread.java:1.42-1.43 test/regression/Makefile.am:1.81-1.82 test/regression/Makefile.in:1.134-1.135 test/regression/SoInterrupt.java:1.5-1.6(DEAD) Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.1597 kaffe/ChangeLog:1.1598 --- kaffe/ChangeLog:1.1597 Sat Aug 30 23:57:08 2003 +++ kaffe/ChangeLog Sun Aug 31 17:16:47 2003 @@ -1,3 +1,36 @@ +2003-08-31 Guilhem Lavaux [EMAIL PROTECTED] + + * kaffe/kaffevm/systems/unix-pthreads/syscalls.c: + (jthreadedFSync) added. + (Kaffe_SystemCallInterface) added jthreadedFSync. + + * libraries/clib/net/PlainDatagramSocketImpl.c: + (java_net_PlainDatagramSocketImpl_receive) check if pkt is NULL + and throw NullPointerException if it is the case. + Changed the way EINTR is handled (it must be ignored). + ETIMEDOUT throws a better exception with bytesTransferred set to + the right value. + + * libraries/clib/net/PlainSocketImpl.c: + (java_net_PlainSocketImpl_receive) see above for the changed behaviour. + (java_net_PlainSocketImpl_accept) EINTR is now ignored. + + * libraries/clib/io/File.c: + (java_io_File_listInternal) check whether the pointer is null. + + * libraries/clib/io/FileDescriptor.c: + (getFileSize) don't return an error if there isn't. + + * include/Makefile.am: + (NOINSTALL_DERIVED_HDRS) added java_io_InterruptedIOException.h + + * test/regression/SoInterrupt.java: removed. This test was a + non-sense from the beginning to the end. + + * test/regression/Makefile.am: removed SoInterrupt.java + + * test/regression/Makefile.in: regenerated. + 2003-08-30 Timothy S. Stack [EMAIL PROTECTED] * include/jni.h, include/jvmpi.h: Index: kaffe/include/Makefile.am diff -u kaffe/include/Makefile.am:1.47 kaffe/include/Makefile.am:1.48 --- kaffe/include/Makefile.am:1.47 Sat Aug 30 14:18:23 2003 +++ kaffe/include/Makefile.am Sun Aug 31 17:16:48 2003 @@ -47,6 +47,7 @@ java_io_FileInputStream.h \ java_io_FileOutputStream.h \ java_io_InputStream.h \ + java_io_InterruptedIOException.h \ java_io_ObjectInputStream.h \ java_io_PrintStream.h \ java_io_RandomAccessFile.h \ Index: kaffe/include/Makefile.in diff -u kaffe/include/Makefile.in:1.119 kaffe/include/Makefile.in:1.120 --- kaffe/include/Makefile.in:1.119 Sat Aug 30 14:18:23 2003 +++ kaffe/include/Makefile.in Sun Aug 31 17:16:48 2003 @@ -282,6 +282,7 @@ java_io_FileInputStream.h \ java_io_FileOutputStream.h \ java_io_InputStream.h \ + java_io_InterruptedIOException.h \ java_io_ObjectInputStream.h \ java_io_PrintStream.h \ java_io_RandomAccessFile.h \ Index: kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c diff -u kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.14 kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.15 --- kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.14 Fri Aug 8 14:38:25 2003 +++ kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.cSun Aug 31 17:16:48 2003 @@ -249,6 +249,17 @@ } static int +jthreadedFSync(int fd) +{ + int rc = 0; + + if (fsync(fd) == -1) { + rc = errno; + } + return (rc); +} + +static int jthreadedMkdir(const char *path, int mode) { int rc = 0; @@ -880,6 +891,7 @@ jthreadedFStat, jthreadedStat, jthreadedFTruncate, +jthreadedFSync, jthreadedMkdir, jthreadedRmdir, jthreadedRename, Index: kaffe/libraries/clib/io/File.c diff -u kaffe/libraries/clib/io/File.c:1.20 kaffe/libraries/clib/io/File.c:1.21 --- kaffe/libraries/clib/io/File.c:1.20 Sat Aug 30 14:18:24 2003 +++ kaffe/libraries/clib/io/File.c Sun Aug 31 17:16:49 2003 @@ -272,7 +272,7 @@ mentry = dirlist; dirlist = mentry-next; unhand_array(array)-body[i] = - (Hjava_lang_Object*)stringC2Java(mentry-name); + (Hjava_lang_Object*)checkPtr(stringC2Java(mentry-name)); /* if allocation fails, continue freeing
[kaffe] CVS kaffe (guilhem): Last check in has an incomplete ChangeLog.
PatchSet 4002 Date: 2003/08/31 18:00:51 Author: guilhem Branch: HEAD Tag: (none) Log: Last check in has an incomplete ChangeLog. Members: ChangeLog:1.1598-1.1599 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.1598 kaffe/ChangeLog:1.1599 --- kaffe/ChangeLog:1.1598 Sun Aug 31 17:16:47 2003 +++ kaffe/ChangeLog Sun Aug 31 18:00:51 2003 @@ -24,6 +24,17 @@ * include/Makefile.am: (NOINSTALL_DERIVED_HDRS) added java_io_InterruptedIOException.h + * include/Makefile.in: regenerated. + + * libraries/javalib/java/io/File.java: + (deleteOnExit) reimplemented deleteOnExit for classpath using + shutdownHooks. + + * libraries/javalib/java/lang/Runtime.java: + (runShutdownHooks) don't show InterruptedException because it may + be a remanant of a former interrupt. If it happens try to join again. + + * test/regression/SoInterrupt.java: removed. This test was a non-sense from the beginning to the end. ___ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
Re: [kaffe] CVS kaffe (guilhem): Various fixes.
PatchSet 4001 Date: 2003/08/31 17:16:47 Author: guilhem Branch: HEAD Tag: (none) Log: Various fixes. Noticeable changes: Reimplementation of deleteOnExit (missing in classpath) The test case for this is not checked in (DeleteFile.java). Removed SoInterrupt because it is wrong. Why is it wrong? Improving test cases is desired over removing them. tim ___ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
[kaffe] CVS kaffe (stack): Backport JanosVM stuff
PatchSet 4003 Date: 2003/08/31 22:08:52 Author: stack Branch: HEAD Tag: (none) Log: Backport JanosVM stuff Members: ChangeLog:1.1599-1.1600 Makefile.am:1.46-1.47 Makefile.in:1.112-1.113 configure:1.254-1.255 configure.in:1.221-1.222 config/Makefile.in:1.86-1.87 include/Makefile.in:1.120-1.121 include/errors.h:1.8-1.9 kaffe/Makefile.in:1.78-1.79 kaffe/jvmpi/Makefile.in:1.5-1.6 kaffe/kaffe/Makefile.in:1.92-1.93 kaffe/kaffeh/Makefile.in:1.81-1.82 kaffe/kaffevm/Makefile.am:1.46-1.47 kaffe/kaffevm/Makefile.in:1.113-1.114 kaffe/kaffevm/access.c:INITIAL-1.1 kaffe/kaffevm/access.h:1.7-1.8 kaffe/kaffevm/classMethod.c:1.108-1.109 kaffe/kaffevm/classMethod.h:1.60-1.61 kaffe/kaffevm/code.c:1.9-1.10 kaffe/kaffevm/constants.c:1.16-1.17 kaffe/kaffevm/exception.c:1.71-1.72 kaffe/kaffevm/gcFuncs.c:1.46-1.47 kaffe/kaffevm/kaffe.def:1.27-1.28 kaffe/kaffevm/lookup.c:1.32-1.33 kaffe/kaffevm/object.c:1.20-1.21 kaffe/kaffevm/readClass.c:1.18-1.19 kaffe/kaffevm/soft.c:1.55-1.56 kaffe/kaffevm/soft.h:1.12-1.13 kaffe/kaffevm/stackTrace.c:1.29-1.30 kaffe/kaffevm/support.c:1.59-1.60 kaffe/kaffevm/support.h:1.23-1.24 kaffe/kaffevm/thread.c:1.54-1.55 kaffe/kaffevm/verify.c:1.25-1.26 kaffe/kaffevm/gcj/Makefile.in:1.62-1.63 kaffe/kaffevm/intrp/Makefile.in:1.70-1.71 kaffe/kaffevm/jit/Makefile.in:1.76-1.77 kaffe/kaffevm/jit3/Makefile.in:1.46-1.47 kaffe/kaffevm/jit3/codeproto.h:1.12-1.13 kaffe/kaffevm/jit3/icode.c:1.31-1.32 kaffe/kaffevm/systems/Makefile.in:1.72-1.73 kaffe/kaffevm/systems/beos-native/Makefile.in:1.63-1.64 kaffe/kaffevm/systems/oskit-pthreads/Makefile.in:1.69-1.70 kaffe/kaffevm/systems/unix-jthreads/Makefile.in:1.72-1.73 kaffe/kaffevm/systems/unix-pthreads/Makefile.in:1.42-1.43 kaffe/man/Makefile.in:1.70-1.71 kaffe/scripts/Makefile.in:1.101-1.102 kaffe/scripts/bat/Makefile.in:1.63-1.64 kaffe/scripts/compat/Makefile.in:1.84-1.85 kaffe/xprof/Makefile.in:1.38-1.39 libraries/Makefile.in:1.67-1.68 libraries/clib/Makefile.in:1.72-1.73 libraries/clib/awt/Makefile.in:1.80-1.81 libraries/clib/awt/X/Makefile.in:1.70-1.71 libraries/clib/awt/qt/Makefile.in:1.25-1.26 libraries/clib/io/Makefile.in:1.73-1.74 libraries/clib/management/Makefile.in:1.82-1.83 libraries/clib/math/Makefile.in:1.78-1.79 libraries/clib/native/Class.c:1.68-1.69 libraries/clib/native/Makefile.in:1.105-1.106 libraries/clib/net/Makefile.in:1.85-1.86 libraries/clib/security/Makefile.in:1.46-1.47 libraries/clib/zip/Makefile.in:1.80-1.81 libraries/extensions/Makefile.in:1.58-1.59 libraries/extensions/comm/Makefile.in:1.53-1.54 libraries/extensions/comm/javalib/Makefile.in:1.53-1.54 libraries/extensions/microsoft/Makefile.in:1.45-1.46 libraries/extensions/microsoft/clib/Makefile.in:1.48-1.49 libraries/extensions/microsoft/javalib/Makefile.in:1.46-1.47 libraries/extensions/pjava/Makefile.in:1.53-1.54 libraries/extensions/pjava/javalib/Makefile.in:1.53-1.54 libraries/extensions/servlet/Makefile.in:1.53-1.54 libraries/extensions/servlet/javalib/Makefile.in:1.53-1.54 libraries/extensions/sound/Makefile.in:1.21-1.22 libraries/extensions/sound/alsa/Makefile.in:1.22-1.23 libraries/extensions/sound/common/Makefile.in:1.21-1.22 libraries/extensions/sound/esd/Makefile.in:1.22-1.23 replace/Makefile.in:1.17-1.18 test/Makefile.in:1.73-1.74 test/internal/Makefile.in:1.25-1.26 test/regression/BadCatch1.j:INITIAL-1.1 test/regression/BadCatch2.j:INITIAL-1.1 test/regression/BadClassFileCode.java:INITIAL-1.1 test/regression/BadClassFileConstants.java:INITIAL-1.1 test/regression/BadClassVersion.java:INITIAL-1.1 test/regression/CircularClass.j:INITIAL-1.1 test/regression/CircularInterface.j:INITIAL-1.1 test/regression/ClassFlags1.j:INITIAL-1.1 test/regression/ClassFlags2.j:INITIAL-1.1 test/regression/DuplicateField.j:INITIAL-1.1 test/regression/EmptyMethod.j:INITIAL-1.1 test/regression/FieldErrors.java:INITIAL-1.1 test/regression/FieldFlags1.j:INITIAL-1.1 test/regression/FieldFlags2.j:INITIAL-1.1 test/regression/FieldFlags3.j:INITIAL-1.1 test/regression/FieldFlags4.j:INITIAL-1.1 test/regression/FieldRefSignature1.j:INITIAL-1.1 test/regression/FieldSignature1.j:INITIAL-1.1 test/regression/FieldSignature2.j:INITIAL-1.1