I found the source of the messages about the decoder, and it was fairly harmless although worth fixing.
http://reviews.gem5.org/r/1248/ The only other messages that have popped up for me after that (below) are related to the memory system and caches, so maybe something's not right with how packets are being handled. It looks like a use after free, and when packets all came from the same pool (they were FastAlloc-ed, right?) they may have ended up over something inert and relatively valid, where as now they can end up pointing at anything. Gabe ==29119== Invalid read of size 4 ==29119== at 0x617387: MSHR::markInService(Packet*) (bitset:406) ==29119== by 0x61B643: MSHRQueue::markInService(MSHR*, Packet*) (mshr_queue.cc:202) ==29119== by 0x5E5CA0: Cache<LRU>::markInService(MSHR*, Packet*) (base.hh:242) ==29119== by 0x5FA221: Cache<LRU>::MemSidePacketQueue::sendDeferredPacket() (cache_impl.hh:1704) ==29119== by 0x45E491: PacketQueue::retry() (packet_queue.cc:64) ==29119== by 0x433A39: EventWrapper<BaseBus, &(BaseBus::releaseBus())>::process() (port.hh:137) ==29119== by 0x10234E3: EventQueue::serviceOne() (eventq.cc:204) ==29119== by 0x10644E1: simulate(long) (simulate.cc:73) ==29119== by 0x10BE378: _wrap_simulate (event_wrap.cc:4489) ==29119== by 0x552955E: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529983: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5545F30: run_mod (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x554612B: PyRun_StringFlags (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x102CA0E: m5Main(int, char**) (init.cc:256) ==29119== by 0x40A380: main (main.cc:57) ==29119== Address 0x904edbc is 12 bytes inside a block of size 88 free'd ==29119== at 0x4C2568F: operator delete(void*) (vg_replace_malloc.c:387) ==29119== by 0x5FD869: Cache<LRU>::timingAccess(Packet*) (cache_impl.hh:493) ==29119== by 0x5FE312: Cache<LRU>::CpuSidePort::recvTimingReq(Packet*) (cache_impl.hh:1594) ==29119== by 0x43FF15: CoherentBus::recvTimingReq(Packet*, short) (coherent_bus.cc:154) ==29119== by 0x5F9EB3: Cache<LRU>::MemSidePacketQueue::sendDeferredPacket() (cache_impl.hh:1688) ==29119== by 0x45E491: PacketQueue::retry() (packet_queue.cc:64) ==29119== by 0x433A39: EventWrapper<BaseBus, &(BaseBus::releaseBus())>::process() (port.hh:137) ==29119== by 0x10234E3: EventQueue::serviceOne() (eventq.cc:204) ==29119== by 0x10644E1: simulate(long) (simulate.cc:73) ==29119== by 0x10BE378: _wrap_simulate (event_wrap.cc:4489) ==29119== by 0x552955E: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529983: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5545F30: run_mod (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x554612B: PyRun_StringFlags (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x102CA0E: m5Main(int, char**) (init.cc:256) ==29119== by 0x40A380: main (main.cc:57) ==29119== ==29119== Invalid read of size 4 ==29119== at 0x617358: MSHR::markInService(Packet*) (mshr.cc:463) ==29119== by 0x61B643: MSHRQueue::markInService(MSHR*, Packet*) (mshr_queue.cc:202) ==29119== by 0x5E5CA0: Cache<LRU>::markInService(MSHR*, Packet*) (base.hh:242) ==29119== by 0x5FA221: Cache<LRU>::MemSidePacketQueue::sendDeferredPacket() (cache_impl.hh:1704) ==29119== by 0x10234E3: EventQueue::serviceOne() (eventq.cc:204) ==29119== by 0x10644E1: simulate(long) (simulate.cc:73) ==29119== by 0x10BE378: _wrap_simulate (event_wrap.cc:4489) ==29119== by 0x552955E: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529983: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5545F30: run_mod (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x554612B: PyRun_StringFlags (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x102CA0E: m5Main(int, char**) (init.cc:256) ==29119== by 0x40A380: main (main.cc:57) ==29119== Address 0x90605f8 is 8 bytes inside a block of size 88 free'd ==29119== at 0x4C2568F: operator delete(void*) (vg_replace_malloc.c:387) ==29119== by 0x5FD288: Cache<LRU>::timingAccess(Packet*) (cache_impl.hh:425) ==29119== by 0x5FE312: Cache<LRU>::CpuSidePort::recvTimingReq(Packet*) (cache_impl.hh:1594) ==29119== by 0x43FF15: CoherentBus::recvTimingReq(Packet*, short) (coherent_bus.cc:154) ==29119== by 0x5F9EB3: Cache<LRU>::MemSidePacketQueue::sendDeferredPacket() (cache_impl.hh:1688) ==29119== by 0x10234E3: EventQueue::serviceOne() (eventq.cc:204) ==29119== by 0x10644E1: simulate(long) (simulate.cc:73) ==29119== by 0x10BE378: _wrap_simulate (event_wrap.cc:4489) ==29119== by 0x552955E: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529983: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5529D52: PyEval_EvalFrameEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B788: PyEval_EvalCodeEx (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x552B901: PyEval_EvalCode (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x5545F30: run_mod (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x554612B: PyRun_StringFlags (in /usr/lib64/libpython2.6.so.1.0) ==29119== by 0x102CA0E: m5Main(int, char**) (init.cc:256) ==29119== by 0x40A380: main (main.cc:57) On 06/02/12 09:22, Ali Saidi wrote: > I was running regressions after removing FastAlloc and getting some very odd > behavior. It seems as though FastAlloc was either masking some use of > uninitialized values and the x86 decoder seems to have some issues. I don't > know if this is related to Gabe's recent restructuring, but I'm not seeing > the same issue on other architectures. > > Gabe, could you take a look? > > Thanks, > Ali > > > ==24715== Use of uninitialised value of size 8 > ==24715== at 0x600738: X86ISA::Decoder::decode(X86ISA::ExtMachInst, > unsigned long) (hashtable.h:695) > ==24715== by 0x462555: BaseSimpleCPU::preExecute() (decoder.hh:240) > ==24715== by 0x456C0C: TimingSimpleCPU::completeIfetch(Packet*) > (timing.cc:661) > ==24715== by 0x45A49B: > TimingSimpleCPU::IcachePort::recvTimingResp(Packet*) (timing.cc:726) > ==24715== by 0xF307DC: PacketQueue::trySendTiming() (packet_queue.cc:147) > ==24715== by 0xF308CA: PacketQueue::sendDeferredPacket() > (packet_queue.cc:183) > ==24715== by 0xC24CE3: EventQueue::serviceOne() (eventq.cc:204) > ==24715== by 0xC66301: simulate(long) (simulate.cc:73) > ==24715== by 0xD35C88: _wrap_simulate (event_wrap.cc:4491) > ==24715== by 0x55540B0: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24715== by 0x555627C: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0) > ==24715== by 0x555428C: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24715== > ==24715== Use of uninitialised value of size 8 > ==24715== at 0x601B4C: std::tr1::__detail::_Map_base<X86ISA::ExtMachInst, > std::pair<X86ISA::ExtMachInst const, RefCountingPtr<StaticInst> >, > std::_Select1st<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, true, > std::tr1::_Hashtable<X86ISA::ExtMachInst, std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> >, > std::allocator<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, std::_Select1st<std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> > >, std::equal_to<X86ISA::ExtMachInst>, > std::tr1::hash<X86ISA::ExtMachInst>, std::tr1::__detail::_Mod_range_hashing, > std::tr1::__detail::_Default_ranged_hash, > std::tr1::__detail::_Prime_rehash_policy, false, false, true> > >::operator[](X86ISA::ExtMachInst const&) (hashtable_policy.h:525) > ==24715== by 0x600AA0: X86ISA::Decoder::decode(X86ISA::ExtMachInst, > unsigned long) (decoder.cc:428) > ==24715== by 0x462555: BaseSimpleCPU::preExecute() (decoder.hh:240) > ==24715== by 0x456C0C: TimingSimpleCPU::completeIfetch(Packet*) > (timing.cc:661) > ==24715== by 0x45A49B: > TimingSimpleCPU::IcachePort::recvTimingResp(Packet*) (timing.cc:726) > ==24715== by 0xF307DC: PacketQueue::trySendTiming() (packet_queue.cc:147) > ==24715== by 0xF308CA: PacketQueue::sendDeferredPacket() > (packet_queue.cc:183) > ==24715== by 0xC24CE3: EventQueue::serviceOne() (eventq.cc:204) > ==24715== by 0xC66301: simulate(long) (simulate.cc:73) > ==24715== by 0xD35C88: _wrap_simulate (event_wrap.cc:4491) > ==24715== by 0x55540B0: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24715== by 0x555627C: PyEval_EvalCodeEx (in /usr/lib/libpython2.7.so.1.0) > ==24715== > ==24715== Use of uninitialised value of size 8 > ==24715== at 0x60191E: std::tr1::_Hashtable<X86ISA::ExtMachInst, > std::pair<X86ISA::ExtMachInst const, RefCountingPtr<StaticInst> >, > std::allocator<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, std::_Select1st<std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> > >, std::equal_to<X86ISA::ExtMachInst>, > std::tr1::hash<X86ISA::ExtMachInst>, std::tr1::__detail::_Mod_range_hashing, > std::tr1::__detail::_Default_ranged_hash, > std::tr1::__detail::_Prime_rehash_policy, false, false, > true>::_M_insert_bucket(std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > const&, unsigned long, unsigned long) > (hashtable.h:862) > ==24715== by 0x601C26: std::tr1::__detail::_Map_base<X86ISA::ExtMachInst, > std::pair<X86ISA::ExtMachInst const, RefCountingPtr<StaticInst> >, > std::_Select1st<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, true, > std::tr1::_Hashtable<X86ISA::ExtMachInst, std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> >, > std::allocator<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, std::_Select1st<std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> > >, std::equal_to<X86ISA::ExtMachInst>, > std::tr1::hash<X86ISA::ExtMachInst>, std::tr1::__detail::_Mod_range_hashing, > std::tr1::__detail::_Default_ranged_hash, > std::tr1::__detail::_Prime_rehash_policy, false, false, true> > >::operator[](X86ISA::ExtMachInst const&) (hashtable_policy.h:528) > ==24715== by 0x600AA0: X86ISA::Decoder::decode(X86ISA::ExtMachInst, > unsigned long) (decoder.cc:428) > ==24715== by 0x462555: BaseSimpleCPU::preExecute() (decoder.hh:240) > ==24715== by 0x456C0C: TimingSimpleCPU::completeIfetch(Packet*) > (timing.cc:661) > ==24715== by 0x45A49B: > TimingSimpleCPU::IcachePort::recvTimingResp(Packet*) (timing.cc:726) > ==24715== by 0xF307DC: PacketQueue::trySendTiming() (packet_queue.cc:147) > ==24715== by 0xF308CA: PacketQueue::sendDeferredPacket() > (packet_queue.cc:183) > ==24715== by 0xC24CE3: EventQueue::serviceOne() (eventq.cc:204) > ==24715== by 0xC66301: simulate(long) (simulate.cc:73) > ==24715== by 0xD35C88: _wrap_simulate (event_wrap.cc:4491) > ==24715== by 0x55540B0: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24715== > ==24715== Use of uninitialised value of size 8 > ==24715== at 0x60192A: std::tr1::_Hashtable<X86ISA::ExtMachInst, > std::pair<X86ISA::ExtMachInst const, RefCountingPtr<StaticInst> >, > std::allocator<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, std::_Select1st<std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> > >, std::equal_to<X86ISA::ExtMachInst>, > std::tr1::hash<X86ISA::ExtMachInst>, std::tr1::__detail::_Mod_range_hashing, > std::tr1::__detail::_Default_ranged_hash, > std::tr1::__detail::_Prime_rehash_policy, false, false, > true>::_M_insert_bucket(std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > const&, unsigned long, unsigned long) > (hashtable.h:864) > ==24715== by 0x601C26: std::tr1::__detail::_Map_base<X86ISA::ExtMachInst, > std::pair<X86ISA::ExtMachInst const, RefCountingPtr<StaticInst> >, > std::_Select1st<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, true, > std::tr1::_Hashtable<X86ISA::ExtMachInst, std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> >, > std::allocator<std::pair<X86ISA::ExtMachInst const, > RefCountingPtr<StaticInst> > >, std::_Select1st<std::pair<X86ISA::ExtMachInst > const, RefCountingPtr<StaticInst> > >, std::equal_to<X86ISA::ExtMachInst>, > std::tr1::hash<X86ISA::ExtMachInst>, std::tr1::__detail::_Mod_range_hashing, > std::tr1::__detail::_Default_ranged_hash, > std::tr1::__detail::_Prime_rehash_policy, false, false, true> > >::operator[](X86ISA::ExtMachInst const&) (hashtable_policy.h:528) > ==24715== by 0x600AA0: X86ISA::Decoder::decode(X86ISA::ExtMachInst, > unsigned long) (decoder.cc:428) > ==24715== by 0x462555: BaseSimpleCPU::preExecute() (decoder.hh:240) > ==24715== by 0x456C0C: TimingSimpleCPU::completeIfetch(Packet*) > (timing.cc:661) > ==24715== by 0x45A49B: > TimingSimpleCPU::IcachePort::recvTimingResp(Packet*) (timing.cc:726) > ==24715== by 0xF307DC: PacketQueue::trySendTiming() (packet_queue.cc:147) > ==24715== by 0xF308CA: PacketQueue::sendDeferredPacket() > (packet_queue.cc:183) > ==24715== by 0xC24CE3: EventQueue::serviceOne() (eventq.cc:204) > ==24715== by 0xC66301: simulate(long) (simulate.cc:73) > ==24715== by 0xD35C88: _wrap_simulate (event_wrap.cc:4491) > ==24715== by 0x55540B0: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24715== > > > > _______________________________________________ > gem5-dev mailing list > [email protected] > http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
