I just figured out a rather annoying bug in the CPU where the 
profile event got scheduled at a totally bogus time which killed the 
simulation. The problem is that there's a "profile" parameter in both 
the atomic simple CPU and the base CPU. The atomic simple CPU sets it's 
version of "profile" at some point but the base CPU one never does. I'm 
guessing that's because the atomic CPU's definition masks the other when 
the parameter values get loaded up. Then, in the C++, if you refer to 
the "profile" member variable of the params struct, the hidden version 
is in scope that never got populated.

    There's several different things I can see as the "right" thing to 
do in this situation, but I'm sure what it's doing right now isn't it. 
First, we could say this sort of thing (params overwriting each other) 
is illegal, and we throw an error when it happens. This seems the most 
reasonable since you'd probably have a hard time even setting the hidden 
version in python. The other version, which at least would prevent wild 
dangling values, would be to initialize both versions of the parameter 
according to their defaults.

Gabe
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to