Kaffe Virtual Machine

  • Bees
  • ANTS
  • JNodeOS
  • JanosVM
  • Moab
  • Janos Meta-Makefiles
  • Kaffe
  • tcpdump
  • createnework
Mailing Lists   
Related Work   
Flux Projects   

The Janos project uses the Kaffe virtual machine as the base of the JanosVM. See www.kaffe.org for more information on Kaffe.

The Flux Research Group has accumulated a lot of experience with Kaffe having built several other projects in and around it. Additionally, Flux members have contributed several major parts of the VM including the "jthread" threading system, OSKit support, alpha GCJ support, and numerous bug fixes and other features.

There are three projects available on this page:

  • Diffs between JanosVM and Kaffe
  • Cross-langauge profiling in Kaffe
  • Nightly regression test email

Diffs between JanosVM and Kaffe

We have implemented a number of features and bug fixes in the JanosVM that also apply to the standard Kaffe distribution. Because of time constraints we aren't always able to back port them, so we have provided fairly recent diffs here:
  • For kaffe/config.
  • For kaffe/kaffe/kaffevm.
  • For kaffe/kaffe/xprof.
  • For kaffe/libraries/clib.
  • For kaffe/libraries/javalib.
  • They are separated based on directory to keep it from being one overwhelming blob of diffs.

    Cross-language Profiling in Kaffe

    We have implemented a system for combined profiling of C and JIT'ed Java code in Kaffe. This makes it possible to produce timing and call graph data covering both languages in a format that can be understood by GNU gprof. The implementation works much like regular C profiling, it gets timing information by regularly sampling the current value of the PC and adds a call to an `mcount' like function to the beginning of JIT'ed methods. Then, at exit, the profiling data is written out, as well as an assembler file containing symbol information for the JIT'ed code.

    (We also added rudimentary support for GDB debugging of JIT'd code and a simple feedback framework based on this infrastructure. See the announcement for more details.)

  • Read the original announcement
  • Read the xprofiler manual
  • Read the xdebugging manual
  • Read the JIT feedback manual
  • Look at some example gprof output. This is a result of profiling javac compiling "HelloWorld" (2.0M).
  • Our cross-language profiling support was added to the Kaffe CVS repository on May 23, 2000. Go to the Kaffe CVS page for information on getting the latest Kaffe.

    We still have our patches and snapshot available:

  • Download a patch (187K) (made against a CVS snapshot in early May, 2000)
  • Download a a complete Kaffe source snapshot with our changes -- from early May 2000 (3.5M)
  • The vast majority of this work was done by Tim Stack .

    Nightly Regression Tests

    As a service to the Kaffe developers we have setup our in-house automated testing software, flest, to configure, compile, install and check Kaffe each night on the latest CVS snapshot. A summary of the tests is sent to the kaffe-nightlytests mailing list once each night. We run the tests on the following configurations of Kaffe:
    • --with-engine=jit --enable-debug
    • --with-engine=jit
    • --with-engine=jit --disable-debug --with-staticlib --with-staticvm
    • --with-engine=intrp --enable-debug
    • --with-engine=intrp --disable-debug --with-staticlib --with-staticvm
    We have an older example report (8k) you can look at.

    To subscribe: Send mail to majordomo@flux.cs.utah.edu with subscribe kaffe-nightlytests in the body.

    To unsubscribe: Send mail to majordomo@flux.cs.utah.edu with unsubscribe kaffe-nightlytests in the body.

    If you have comments, questions, problems or suggestions (e.g., if you want another configuration added to the set of tested configurations), please contact the Kaffe-nightlytests Owner.

    [ Network Testbed ] [ Alchemy/Knit ] [ STP ] [ Janos ] [ OSKit ]
    Flux Research Group / School of Computing / University of Utah

    Problems? Contact the Janos Web Admin.
    Last updated April 30, 2004.