Hi.

I'm replying to myself, since I'm stuck for some days in the same thing, and I
thought that asking may help me move on.  By the way, have you received my last
e-mail?  I'm asking because I could not see it correctly in
http://www.haskell.org/pipermail/cvs-ghc/2010-June/054293.html .

Excerpts from Marco Túlio Gontijo e Silva's message of Sex Jun 04 22:46:27 
-0300 2010:
(...)
> I'm currently studying the allocation part of the code, in alloc_for_copy
> from Evac.c

In addition to the changes I've described in my last blog post[0], I've made
this change to alloc_for_copy:


      if (gen < gct->evac_gen) {
          if (gct->eager_promotion) {
              gen = gct->evac_gen;
          } else {
              gct->failed_to_evac = rtsTrue;
          }
      }

+     if(size <= BITS_IN(W_) && gen->first_line != NULL) {
+         to = gen->first_line;
+         gen->first_line = (StgPtr) *gen->first_line;
+         return to;
+     }
+ 

This gave me all sorts of errors, from segfaults to corruption of values in the
program.  I've tried changing some parameters to find out a fix, without
success.  I tried using size == BITS_IN(W_) and small sizes like size <= 2.  I
also tried to check the type of the evacuated object to find a correlation
between this and a specific object type, and found nothing.  I tried using only
one free line for each generation, and got the same problem.

Notice I can write 0 in all the area reserved for free lines, with this code:

        // StgPtr start;
        // for(start = gen->first_line; start < gen->first_line + BITS_IN(W_); 
start++)
        //     *start = 0;

without problems.  The problem only happens when I return a pointer to a free
line in alloc_for_copy.

Any help is apreciated.  Thanks in advance.

0: http://marcotmarcot.wordpress.com/2010/06/04/summer-of-code-weekly-report-4/
(...)
-- 
marcot
http://wiki.debian.org/MarcoSilva

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to