[Gc] Periodic hang up when running with Kaffe

Hans Boehm Hans.Boehm at hp.com
Thu Feb 28 14:07:06 PST 2008


There is unfortunately no easy solution.

Is the application paging?

The collector supports incremental collection (GC_enable_incremental()). 
However, this imposes some additional constraints on the application, in 
this case the VM.   In particular, the collector has to protect pages and 
catch faults.  This doesn't work when the faults occur in a system call.
I think the collector has enough hooks for a JVM to deal with this
restriction, but I doubt that Kaffe has addressed this.

These restrictions could probably be avoided with a suitable kernel 
extension, but that's not curently there.

Hans

On Wed, 27 Feb 2008, Zubair Ali Khan wrote:

> I am running Boehm GC 6.8 with Kaffe 1.1.8 on ARM926 (200 MHz) linux
> 2.4.20. When running Java application, the system runs low on heap, GC
> runs. The problem is that whenever GC runs, the VM and the Java
> application block/hang up for about 10 seconds. Since the application is
> interactive, user experience suffers. Any suggestions on how to make
> Boehm GC not block (if Boehm GC is blocking, which I suspect) ? Thanks
> in advance.
> Zubair Khan
>
> Following configure options are used to build GC:
>
> C=${CROSS_TOOL_PATH}/arm_v4t_le-gcc \
> CXX=${CROSS_TOOL_PATH}/arm_v4t_le-g++ \
> CPP=${CROSS_TOOL_PATH}/arm_v4t_le-cpp \
> AR=${CROSS_TOOL_PATH}/arm_v4t_le-ar \
> AS=${CROSS_TOOL_PATH}/arm_v4t_le-as \
> LD=${CROSS_TOOL_PATH}/arm_v4t_le-ld \
> RANLIB=${CROSS_TOOL_PATH}/arm_v4t_le-ranlib \
> LDFLAGS=${CROSS_LDFLAGS} \
> CFLAGS=${CROSS_CFLAGS} \
> CPPFLAGS=${CROSS_CFLAGS} \
> ./configure \
>        --build=i386-linux \
>        --host=arm-linux \
>        --target=arm-linux \
>        --prefix=${TARGET_DIR}/usr/local
>
> Following configure options are used to build Kaffe VM:
> CC=${CROSS_TOOL_PATH}/arm_v4t_le-gcc \
> CXX=${CROSS_TOOL_PATH}/arm_v4t_le-g++ \
> CPP=${CROSS_TOOL_PATH}/arm_v4t_le-cpp \
> AR=${CROSS_TOOL_PATH}/arm_v4t_le-ar \
> AS=${CROSS_TOOL_PATH}/arm_v4t_le-as \
> LD=${CROSS_TOOL_PATH}/arm_v4t_le-ld \
> RANLIB=${CROSS_TOOL_PATH}/arm_v4t_le-ranlib \
> LDFLAGS=${CROSS_LDFLAGS} \
> CFLAGS=${CROSS_CFLAGS} \
> CPPFLAGS=${CROSS_CFLAGS} \
> ./configure \
>        --build=i386-linux \
>        --host=arm-linux \
>        --target=arm-linux \
>        --prefix=${TARGET_DIR}/usr/local/kaffe \
>        --enable-minigui-peer \
>        --enable-default-toolkit="gnu.java.awt.peer.minigui.MgToolkit" \
>        --disable-gtk-peer \
>        --disable-gconf-peer \
>        --disable-esdtest \
>        --disable-alsatest \
>        --without-esd \
>        --enable-minigui-fontfilter \
>        --with-gc=boehm-gc
>
> Following is the info about tools and OS:
>
> / # /lib/libc.so.6
> GNU C Library stable release version 2.3.2, by Roland McGrath et al.
> Copyright (C) 2003 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.
> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
> Compiled by GNU CC version 3.3.1 (MontaVista 3.3.1-7.0.2.0401382
> 2004-10-07).
> Compiled on a Linux 2.4.20_dev system on 2004-10-07.
> Available extensions:
>        GNU libio by Per Bothner
>        crypt add-on version 2.1 by Michael Glad and others
>        linuxthreads-0.10 by Xavier Leroy
>        BIND-8.2.3-T5B
>        libthread_db work sponsored by Alpha Processor Inc
>        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
> Report bugs using the `glibcbug' script to <bugs at gnu.org>.
> / # uname -a
> Linux (none) 2.4.20_mvlcee31-omap730_gsm_gprs #1 Thu Nov 29 16:32:50 HKT
> 2007 armv5EJl unknown
>
> zkhan at halibut:~/workspace/tools/build-figueroa-3.0/scripts$
> arm_v4t_le-gcc  -v
> Reading specs from
> /opt/a9206/tools/devkit/arm/v4t_le/bin/../lib/gcc-lib/armv4tl-hardhat-linux/3.3.1/specs
> Configured with: ../configure --host=i686-pc-linux-gnu
> --target=armv4tl-hardhat-linux
> --prefix=/opt/montavista/devkit/arm/v4t_le
> --exec-prefix=/opt/montavista/devkit/arm/v4t_le
> --bindir=/opt/montavista/devkit/arm/v4t_le/bin
> --sbindir=/opt/montavista/devkit/arm/v4t_le/sbin
> --sysconfdir=/opt/montavista/devkit/arm/v4t_le/etc
> --datadir=/opt/montavista/devkit/arm/v4t_le/share
> --includedir=/opt/montavista/devkit/arm/v4t_le/include
> --libdir=/opt/montavista/devkit/arm/v4t_le/lib
> --libexecdir=/opt/montavista/devkit/arm/v4t_le/libexec
> --localstatedir=/opt/montavista/devkit/arm/v4t_le/var
> --sharedstatedir=/opt/montavista/devkit/arm/v4t_le/share
> --mandir=/opt/montavista/devkit/arm/v4t_le/man
> --infodir=/opt/montavista/devkit/arm/v4t_le/info
> --program-transform-name=s,^,arm_v4t_le-, --enable-cross
> --with-sysroot=/opt/montavista/devkit/arm/v4t_le/target --enable-shared
> --enable-languages=c,c++ --enable-__cxa_atexit --enable-threads=posix
> --disable-multilib
> --with-gxx-include-dir='$'{gcc_tooldir}/../target/usr/include/c++/3.3.1
> --with-float=soft --with-cpu=arm9tdmi
> Thread model: posix
> gcc version 3.3.1 (MontaVista 3.3.1-6.0.19.0400502 2004-04-12)
>
> zkhan at halibut:~/workspace/tools/build-figueroa-3.0/scripts$ arm_v4t_le-as -v
> GNU assembler version 2.14 (armv4tl-hardhat-linux) using BFD version
> 2.14 20030612 (MontaVista 2.14-11.0.4.0401541 2004-11-05)
>
> _______________________________________________
> Gc mailing list
> Gc at linux.hpl.hp.com
> http://www.hpl.hp.com/hosted/linux/mail-archives/gc/
>


More information about the Gc mailing list