[kaffe] Porting KAFFE on XScale PXA255

Gérard Basler gerard.basler@cinerent.com
Thu Dec 18 08:22:02 2003


Hi all!

I'm tring to run kaffe on PXA255. But without any luck so far. I've
found a similar post concerning PXA250.
http://www.kaffe.org/pipermail/kaffe/2003-November/044367.html
Does someone know if kaffe works now under PXA250? 
I really need a working jvm for that cpu.
I am willing to put some effort in it (debugging with gdb and so on).
Could someone please help me a bit?
I don't know where to start from.
Is it possible to deactivate the JIT?
Here's how for it goes:

/mnt/cf/source # kaffe -verbose -verbosejit -verbosemem -verbosecall
com.cinerent.Yoshi
Loading java/lang/Object.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/Serializable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Cloneable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Class.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/String.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Comparable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/CharSequence.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/System.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Void.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/Boolean.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Byte.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/Number.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Character.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Short.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/Integer.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Long.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/Float.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/Double.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading kaffe/util/Ptr.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/ClassLoader.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Throwable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/VMThrowable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/StackTraceElement.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Exception.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/lang/ArrayIndexOutOfBoundsException.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading
java/lang/IndexOutOfBoundsException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/RuntimeException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/lang/NullPointerException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/lang/ArithmeticException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/lang/ClassNotFoundException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/lang/NoClassDefFoundError.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/LinkageError.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Error.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/lang/StackOverflowError.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/lang/VirtualMachineError.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/IOException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/String$ICComp.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Comparator.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/lang/String.<clinit>()V time 31ms (31ms) @ 0x2239f0>
<JIT: java/lang/String$ICComp.<init>()V time 1ms (32ms) @ 0x263e8c>
<JIT: java/lang/Object.<init>()V time 1ms (33ms) @ 0x270f7c>
Loading java/lang/Thread.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/Runnable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/lang/RuntimePermission.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/security/BasicPermission.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/security/Permission.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/security/Guard.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/lang/Thread.<clinit>()V time 77ms (110ms) @ 0x2a4610>
<JIT: java/lang/RuntimePermission.<init>(Ljava/lang/String;)V time 2ms
(112ms) @ 0x2b004c>
<JIT: java/security/BasicPermission.<init>(Ljava/lang/String;)V time 3ms
(115ms) @ 0x2b010c>
Loading
java/lang/IllegalArgumentException.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/security/Permission.<init>(Ljava/lang/String;)V time 27ms
(142ms) @ 0x2a9808>
<JIT: java/lang/String.equals(Ljava/lang/Object;)Z time 4ms (146ms) @
0x2ab03c>
Loading java/lang/ThreadGroup.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/lang/Throwable.<clinit>()V time 2ms (148ms) @ 0x25b664>
Loading java/util/Properties.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Hashtable.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Dictionary.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Map.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/io/BufferedInputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/FilterInputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/InputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading kaffe/io/StdInputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/PrintStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/FilterOutputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/OutputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/BufferedOutputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading kaffe/io/StdOutputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading kaffe/io/StdErrorStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/FileInputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/FileDescriptor.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/io/FileOutputStream.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/lang/System.<clinit>()V time 411ms (559ms) @ 0x2c6034>
<JIT: java/util/Hashtable.<clinit>()V time 1ms (560ms) @ 0x2a76bc>
<JIT: java/util/Properties.<clinit>()V time 1ms (561ms) @ 0x2a76bc>
<JIT: java/util/Properties.<init>()V time 2ms (563ms) @ 0x2b088c>
<JIT: java/util/Properties.<init>(Ljava/util/Properties;)V time 1ms
(564ms) @ 0x2c4220>
<JIT: java/util/Hashtable.<init>()V time 2ms (566ms) @ 0x25b12c>
Loading java/lang/StringBuffer.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/util/Hashtable$HashEntry.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading
java/util/AbstractMap$BasicMapEntry.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Map$Entry.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/util/Hashtable.<init>(IF)V time 105ms (671ms) @ 0x2d2044>
<JIT: java/util/Dictionary.<init>()V time 2ms (673ms) @ 0x2b094c>
<JIT:
java/util/Hashtable.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; time 4ms (677ms) @ 0x2d0054>
<JIT: java/util/Hashtable.hash(Ljava/lang/Object;)I time 3ms (680ms) @
0x2c4bd8>
<JIT: java/lang/String.hashCode()I time 3ms (683ms) @ 0x2c7800>
<JIT:
java/util/Hashtable$HashEntry.<init>(Ljava/lang/Object;Ljava/lang/Object;)V time 3ms (686ms) @ 0x25b904>
<JIT:
java/util/AbstractMap$BasicMapEntry.<init>(Ljava/lang/Object;Ljava/lang/Object;)V time 1ms (687ms) @ 0x2c4dc0>
<JIT: java/util/Hashtable.rehash()V time 5ms (692ms) @ 0x2c881c>
<JIT:
java/util/Properties.getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; time 1ms (693ms) @ 0x2d1220>
<JIT:
java/util/Properties.getProperty(Ljava/lang/String;)Ljava/lang/String;
time 2ms (695ms) @ 0x2d6030>
<JIT: java/util/Hashtable.get(Ljava/lang/Object;)Ljava/lang/Object; time
2ms (697ms) @ 0x2d6428>
<JIT: java/io/BufferedInputStream.<clinit>()V time 1ms (698ms) @
0x2c366c>
<JIT: java/io/FileDescriptor.<clinit>()V time 3ms (701ms) @ 0x2d6808>
<JIT: java/io/FileDescriptor.<init>()V time 2ms (703ms) @ 0x2d1030>
<JIT: java/io/FileDescriptor.Block$()V time 1ms (704ms) @ 0x2b0b8c>
Loading java/lang/Runtime.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading kaffe/lang/ThreadStack.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/lang/System.loadLibrary(Ljava/lang/String;)V time 60ms
(764ms) @ 0x2d17f0>
Loading kaffe/lang/MemoryAdvice.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Vector.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/AbstractList.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/AbstractCollection.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/Collection.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
Loading java/util/List.class(/mnt/cf/kaffe/jre/lib/rt.jar) [compressed]
Loading java/util/RandomAccess.class(/mnt/cf/kaffe/jre/lib/rt.jar)
[compressed]
<JIT: java/lang/Runtime.<clinit>()V time 286ms (1050ms) @ 0x2de038>
<JIT: java/lang/Runtime.<init>()V time 1ms (1051ms) @ 0x2b0c4c>
<JIT: kaffe/lang/MemoryAdvice.<clinit>()V time 3ms (1054ms) @ 0x2e6040>
<JIT: kaffe/lang/MemoryAdvice.<init>()V time 1ms (1055ms) @ 0x2e6410>
<JIT: kaffe/lang/MemoryAdvice.<init>(IIIIII)V time 3ms (1058ms) @
0x2de7f8>
<JIT: kaffe/lang/MemoryAdvice.Block$()V time 2ms (1060ms) @ 0x2cceb4>
<JIT: kaffe/lang/MemoryAdvice.getInstance()Lkaffe/lang/MemoryAdvice;
time 3ms (1063ms) @ 0x2b9ae0>
<JIT: java/util/Vector.<clinit>()V time 1ms (1064ms) @ 0x2d96bc>
<JIT: java/util/Vector.<init>(I)V time 1ms (1065ms) @ 0x25bc84>
<JIT: java/util/Vector.<init>(II)V time 7ms (1072ms) @ 0x2debf8>
<JIT: java/util/AbstractList.<init>()V time 2ms (1074ms) @ 0x2b0dcc>
<JIT: java/util/AbstractCollection.<init>()V time 2ms (1076ms) @
0x2b0e8c>
<JIT: java/lang/Runtime.getRuntime()Ljava/lang/Runtime; time 2ms
(1078ms) @ 0x2b9a00>
<JIT:
kaffe/lang/ThreadStack.getCallersClassLoader(Z)Ljava/lang/ClassLoader;
time 1ms (1079ms) @ 0x2ccf4c>

And now it just stops but continues consuming 100% cpu.

/mnt/cf/source # cat /proc/cpuinfo
Processor       : XScale-PXA255 rev 6 (v5l)
BogoMIPS        : 397.31
Features        : swp half thumb fastmult edsp
CPU implementor : 0x69
CPU architecture: 5TE
CPU variant     : 0x0
CPU part        : 0x2d0
CPU revision    : 6
Cache type      : undefined 5
Cache clean     : undefined 5
Cache lockdown  : undefined 5
Cache unified   : harvard
I size          : 32768
I assoc         : 32
I line length   : 32
I sets          : 32
D size          : 32768
D assoc         : 32
D line length   : 32
D sets          : 32

Hardware        : HP iPAQ H5400
Revision        : 0000
Serial          : 0000000000000000