That was problem! The compiler (gcc 3.3.4) wasn't defining
"__32BITS__". I defined it manually, recompiled, and the problem
seems to have disappeared. Thanks!
-Steve
On Mon, Apr 10, 2006 at 09:01:05AM -0500, Bradford Beckmann wrote:
>
> Steve,
>
> OK it looks like it is the latter, i.e. "something really weird is
> happening in the L2 cache mapping functions". There is multiple problems
> with the debug output you sent:
>
> 1. The out_msg.Destination should have 15 L2 cache bank destinations set
> for the (16 - 1) cache banks that still needed to be search. I believe
> your DNUCA configuration was 256 banks with 16 banks per bank set, right?
> One problem is only 14 destinations are set in "out_msg.Destination".
>
> 2. "out_msg.RequestsPerRound" should equal the number of ones counted in
> "out_msg.Destination", which is 14. Instead this value is 7.
>
> I believe there must be either a memory corruption problem or a bug in
> Set.h. Can you run valgrind on just a few steps of your simulation? Also
> go to ruby/common/Set.h and comment out the line "#define OPTBIGSET". By
> default, Set uses our optimized implementation, but there may be a problem
> with your compiler not defining "__32BITS__" correctly. If you comment
> the line out, ruby will use our slower, but safer Set implementation.
>
> Brad
>
>
|