I'm just scratching my head on this one. It seems like since July
checkpointing was broken since we weren't properly serializing the miscReg
stuff (now ISA)? 

EventManager is a proxy to let objects call schedule(event, when) without
having to know anything about the eventq. You need something like this so
that the ISA type events (tick compare is the SPARC case) get scheduled on
the appropriate queue. SimObject inherits from EventManager so just pass
the CPU pointer from the thread and that should do it.

On a related topic it seems like we need a way to verify that serialize()
is actually being called on all of these objects that aren't actually
simobjects but still need to serialize state.

Ali



On Fri, 16 Oct 2009 08:36:58 -0700, "Beckmann, Brad"
<brad.beckm...@amd.com>
wrote:
> If you noticed, my patch broke the regression tester last night.  The
> problem is the ISAs don't have a consistent naming convention for
> serialize and unserialize.  Specifically the SPARC and x86 pass an
> "Event Manager" to these functions, but only the SPARC unserialize
> function actually uses it.  What exactly is the Event Manager?  Can it
> be replace?  I'm sure ISA specific #IFDEFs are not the  desired solution
> to this problem.  So I'm interested to hear what you suggest?  The MIPS
> ISA is a simple fix.  We just need to change the prototypes to empty
> definitions.
> 
> Brad
> 
> 
> -----Original Message-----
> From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On
> Behalf Of Beckmann, Brad
> Sent: Thursday, October 15, 2009 3:14 PM
> To: M5 Developer List
> Subject: Re: [m5-dev] Possible Bug in MC146818
> 
> Steve and I have solved the bug.  The solution fixes the MC146818
> unserialize function and adds ISA serialize and unserialize function
> calls to simple_thread.cc.
> 
> I'll push the patch momentarily.
> 
> Brad
> 
> 
> -----Original Message-----
> From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On
> Behalf Of nathan binkert
> Sent: Wednesday, October 14, 2009 8:02 PM
> To: M5 Developer List
> Subject: Re: [m5-dev] Possible Bug in MC146818
> 
>> The logic there isn't really needed, but you'll need to either assign
>> txEvent.when() to a local variable for the SERIALIZE_SCALAR() macro to
>> work right. You can use paramOut/In manually.
>>
>> Was there some reason that we just don't serialize the event directly?
>> Event has serialize/unserialize methods. However if you have more than
>> one event in an object there is probably a name issue. We kinda want a
>> SERIALIZE_SUBOBJECT() method which swizzles the naming.
> It's the name thing.  If you look at the EtherPacket and PacketFifo, I
> do a subobject hack.  What would actually be a lot better would be to
> have a SerializationContext object and pass that in instead of just
> the raw stream.  Then we could provide some virtual functions in
> there.
> 
> I hate to say it, but having hierarchy a la XML would be another way
> to make life better.  There's no way to serialize a sub object without
> prefixing its variable names with something.  If there were a way to
> nest, it would work better.
> 
> Actually, come to think of it, life would be way better if we just
> used a dict of dicts and then wrote it out instead of just directly
> writing to the stream.
> 
> Some of these things would actually be pretty easy to do.
> 
>   Nate
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
> 
> 
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
> 
> 
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to