Re: Problem in Thread.c

"Carl Lebsack" <[email protected]> Sun, 16 Apr 2006 22:54:11 -0500
Newsgroups gmane.comp.java.vm.sablevm.devel
Message-ID <[email protected]>
This doesn't imply the bug is in SableVM.  Garbage collectors are
extremely sensitive to correctness.  If a single reference isn't
updated correctly, or a reference is updated incorrectly the VM can
crash.  However, the crash (segfault etc.) does not have to appear at
the source of the problem, but at some point after the problem.  The
fact that changing the heap size has an effect probably means there is
still an issue with garbage collection and the GC trigger point is
what causes the variation.  This is a guess based on my own experience
writing a generational collector for SableVM.  Missing a single write
barrier location caused a host of bizarre problems to manifest in
various parts of the VM.  Changing the heap size would allow some runs
to complete successfully while others would crash.

Good luck.

Carl Lebsack

On 4/16/06, S=E9bastien Adam <[email protected]> wrote:
> Finally, maybe the bug is in sablevm. When I set my heap size with the
> following value:
>
> #define SVM_DEFAULT_GENERATION_SIZE SVM_DEFAULT_FRAME_SIZE * 1536
>
> Everything works perfectly...
>
> So, depending of the heap size sablevm will produce the good result or
> not...
>
>
>
> On 4/16/06, Etienne Gagnon <[email protected]> wrote:
> >
> Actually, the bug is possibly in sablevm...  Look at:
> http://sablevm.org/bugs/172
>
> Also, note that you should be able to change such value using a runtime
> system property, like
>
> sablevm --preperty=3Dsablevm.heap.increment=3D1024
> or
> sablevm --preperty=3Dsablevm.heap.default.generation.size=3D...
>
> look in vm_args.m4.c
>
> Etienne
>
> S=E9bastien Adam wrote:
> > Last news...
> >
> > When I change the heap size... for example:
> >
> > In gc_gencopy.c,
> >
> > we replace:
> > #define SVM_DEFAULT_GENERATION_SIZE SVM_DEFAULT_FRAME_SIZE * 1024
> > with:
> > #define SVM_DEFAULT_GENERATION_SIZE SVM_DEFAULT_FRAME_SIZE * 512
> >
> > I got the following error:
> > sablevm: gc_gencopy.c:455: _svmf_copy_object: Assertion `((void *)
> > obj->lockword) >=3D heap->to_generation->space.start && ((void *)
> > obj->lockword) < heap->to_generation-> alloc.start' failed.
> >
> > hummmm... this is really bad... It seems to be a problem in my gc :(
>
> --
> Etienne M. Gagnon, Ph.D.
> http://www.info2.uqam.ca/~egagnon/
> SableVM:
> http://www.sablevm.org/
> SableCC:
> http://www.sablecc.org/
>
>
>
> _______________________________________________
>
> SableVM-devel mailing list
> [email protected]
> http://sablevm.org/lists/control/listinfo/sablevm-devel
>
>
>
>
>
>
> _______________________________________________
> SableVM-devel mailing list
> [email protected]
> http://sablevm.org/lists/control/listinfo/sablevm-devel
>
>
>