>It should be possible to fix this by modifying the simics file before booting >simics Which file should I modify?
// Naderan *Mahmood; ________________________________ From: Lotfi Kamran Pejman <[email protected]> To: Mahmood Naderan <[email protected]>; simflex <[email protected]> Sent: Tue, July 13, 2010 12:05:47 PM Subject: RE: SIGSEGV in mm_free() Mahmood, I think the problem is the MMU type in the simics checkpoint. Probably you are using "cheetah-plus" instead of the "cheetah-mmu". It should be possible to fix this by modifying the simics file before booting simics. Pejman ________________________________________ From: Mahmood Naderan [[email protected]] Sent: Monday, July 12, 2010 7:38 PM To: simflex Subject: Re: SIGSEGV in mm_free() Hi, I get SIGSEGV in flexus-4.0 either, but I think the problematic function is different from the previous version. (gdb) backtrace #0 *__GI___libc_free (mem=0x4011) at malloc.c:3687 #1 0x01eb9ce5 in Flexus::Simics::MMU::fm_init_mmu_from_simics (mmu=0xa5d3020, chmmu=0xa368410) at simics/sparcmmu.cpp:1461 #2 0x01ebb822 in Flexus::Simics::v9ProcessorImpl::initializeMMUs (this=0xa563c20) at simics/sparcmmu.cpp:91 #3 0x01988684 in microArchImpl (this=0xa563c10, options=..., _squash=..., _redirect=..., _changeState=..., _feedback=..., _signalStoreForwardingHit=...) at microArch.cpp:185 #4 0x0197908b in nuArch::microArch::construct(nuArch::uArchOptions_t, boost::function<void ()(Flexus::SharedTypes::eSquashCause), std::allocator<void> >, boost::function<void ()(Flexus::Core::MemoryAddress_<long long, true>, Flexus::Core::MemoryAddress_<long long, true>), std::allocator<void> >, boost::function<void ()(int, int), std::allocator<void> >, boost::function<void ()(boost::intrusive_ptr<Flexus::SharedTypes::BranchFeedback>), std::allocator<void> >, boost::function<void ()(bool), std::allocator<void> >) (options=..., squash=..., redirect=..., changeState=..., feedback=..., signalStoreForwardingHit=...) at microArch.cpp:834 #5 0x01996f96 in nuArch::uArchComponent::initialize (this=0xa30d250) at uArchImpl.cpp:303 #6 0x01d7609c in Flexus::Core::aux_::ComponentManagerImpl::initComponents (this=0xa2ec950) at components/ComponentManager.cpp:100 #7 0x01e803f3 in Flexus::Core::FlexusImpl::initializeComponents (this=0xa0f0290) at flexus.cpp:246 #8 0x01e8cbca in Flexus::Core::FlexusImpl::doLoad (this=0xa0f0290, aDirName=...) at flexus.cpp:538 #9 0x01e8cf8c in Flexus::Core::FlexusImpl::loadState (this=0xa0f0290, aDirName=...) at flexus.cpp:528 // Naderan *Mahmood; ________________________________ From: Lotfi Kamran Pejman <[email protected]> To: Mahmood Naderan <[email protected]>; simflex <[email protected]> Sent: Mon, July 12, 2010 5:05:00 PM Subject: RE: SIGSEGV in mm_free() Mahmood, We need to reproduce this problem in Flexus 4. Please redo the same experiment with Flexus 4 and send us steps to reproduce the problem. Pejman ________________________________________ From: Mahmood Naderan [[email protected]<mailto:[email protected]>] Sent: Saturday, July 10, 2010 4:22 PM To: simflex Subject: SIGSEGV in mm_free() Hi all, There is no problem with the image processing example (flexpoint+timing), however when I want to do a timing simulation for my own workload (no problem with flexpoint phase), I recevie SIGSEGV just before the simulation (I mean it is not my code). Flexus Simics simulator - Built as UniFlex.OoO v3.0 2 <ComponentManager.cpp:81> {0}- Instantiating system with a width factor of: 1 3 <uFetch.hpp:76> {0}- ufetch port FetchSnoopOut is not wired 4 <Cache.hpp:82> {0}- L1d port BackSideOut_Prefetch is not wired 5 <Cache.hpp:82> {0}- L2 port BackSideOut_Snoop is not wired 6 <Cache.hpp:82> {0}- L2 port BackSideOut_Prefetch is not wired 7 <wiring.cpp:89> {0}- initializing Parameters... Warning: The 'flexus-UniFlex.OoO-v9-verb-gcc' module unexpectedly defined the 'Flexus' class Warning: The 'flexus-UniFlex.OoO-v9-verb-gcc' module unexpectedly defined the 'SimicsInterface' class 8 <flexus.cpp:377> {0}- Set stat interval to : 50000 9 <flexus.cpp:382> {0}- Set region interval to : 50000 Opening debug output file: trace.out Successfully parsed debug configurations from iteration.trace.cfg 10 <flexus.cpp:599> {0}- Switched to VVerb debugging. 11 <simics_command_manager.cpp:72> {0}- Call Gate: object flexus 12 <simics_command_manager.cpp:80> {0}- Call Gate: Parameter 1 13 <simics_command_manager.cpp:92> {0}- Call Gate: Parameter 2 14 <simics_command_manager.cpp:57> {0}- Call Gate: invoke 36 15 <simics_command_manager.cpp:188> {0}- Invoke: 36 WARNING: There is no parameter named "-L2:allow_offchip_stream_fetch" 16 <simics_command_manager.cpp:72> {0}- Call Gate: object flexus 17 <simics_command_manager.cpp:80> {0}- Call Gate: Parameter 1 18 <simics_command_manager.cpp:92> {0}- Call Gate: Parameter 2 19 <simics_command_manager.cpp:57> {0}- Call Gate: invoke 36 20 <simics_command_manager.cpp:188> {0}- Invoke: 36 WARNING: There is no parameter named "-L2:bypass_bus" 21 <simics_command_manager.cpp:72> {0}- Call Gate: object flexus 22 <simics_command_manager.cpp:80> {0}- Call Gate: Parameter 1 23 <simics_command_manager.cpp:57> {0}- Call Gate: invoke 26 24 <simics_command_manager.cpp:188> {0}- Invoke: 26 25 <flexus.cpp:521> {0}- Loading Flexus state from subdirectory flex_state_in 26 <ComponentManager.cpp:96> {0}- Initalizing components... 27 <FetchAddressGenerateImpl.cpp:92> {0}- Thread[0.0] connected to cpu0 Initial PC: v:00001153c Segmentation fault (SIGSEGV) in main thread The simulation state has been corrupted. Simulation cannot continue. the call stack is: Program received signal SIGSEGV, Segmentation fault. 0x0021b8da in mm_free () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/bin/libsimics-common.so (gdb) backtrace #0 0x0021b8da in mm_free () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/bin/libsimics-common.so #1 0x028efda5 in Flexus::Simics::MMU::fm_init_mmu_from_simics(Flexus::Simics::MMU::mmu*, Flexus::Simics::API::conf_object*) () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #2 0x028f0c00 in Flexus::Simics::v9ProcessorImpl::initializeMMUs() () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #3 0x025eb103 in nuArch::microArchImpl::microArchImpl(nuArch::uArchOptions_t, boost::function<void ()(Flexus::SharedTypes::eSquashCause), std::allocator<void> >, boost::function<void ()(Flexus::Core::MemoryAddress_<long long, true>, Flexus::Core::MemoryAddress_<long long, true>), std::allocator<void> >, boost::function<void ()(int, int), std::allocator<void> >, boost::function<void ()(boost::intrusive_ptr<Flexus::SharedTypes::BranchFeedback>), std::allocator<void> >) () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #4 0x025d958a in nuArch::microArch::construct(nuArch::uArchOptions_t, boost::function<void ()(Flexus::SharedTypes::eSquashCause), std::allocator<void> >, boost::function<void ()(Flexus::Core::MemoryAddress_<long long, true>, Flexus::Core::MemoryAddress_<long long, true>), std::allocator<void> >, boost::function<void ()(int, int), std::allocator<void> >, boost::function<void ()(boost::intrusive_ptr<Flexus::SharedTypes::BranchFeedback>), std::allocator<void> >) () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/si---Type <return> to continue, or q <return> to quit--- mics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #5 0x025f9cbf in nuArch::uArchComponent::initialize() () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #6 0x027bb78f in Flexus::Core::aux_::ComponentManagerImpl::initComponents() () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #7 0x028c92c3 in Flexus::Core::FlexusImpl::initializeComponents() () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #8 0x028d2479 in Flexus::Core::FlexusImpl::doLoad(std::string const&) () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so #9 0x028d27b5 in Flexus::Core::FlexusImpl::loadState(std::string const&) () from /home/mahmood/flexus-3.0.0/flexus-test-app/runs/mahmood-timing-09Jul10-171358/flexpoint_000/simics/x86-linux/lib/libflexus_UniFlex.OoO_v9_verb_gcc.so Is it related to simics or flexus? Thanks, // Naderan *Mahmood; ________________________________ From: Jason Zebchuk <[email protected]<mailto:[email protected]>> To: Mahmood Naderan <[email protected]<mailto:[email protected]>> Sent: Fri, July 9, 2010 2:31:57 PM Subject: Re: gdb option in flexus 3.0 On 10-07-09 9:10 AM, Mahmood Naderan wrote: Hi Jason, -gdb is not a valid option for run-job in flexus3.0. So how can I attach run-timing-jobs to gdb? What should I do inorder to get simics pid? // Naderan *Mahmood; Hi Mahmood, You have two options: 1. Use ps to determine the pid of simics (You can use ctrl-z to put the process into the background shortly after it starts so you can attach early enough) 2. Modify or duplicate the <simics dir>/scripts/start-simics script so that the last few lines look like: #exec "$TARGETBIN" ${1+"$@"} echo "$TARGETBIN" ${1+"$@"} exec gdb "$TARGETBIN" Jason
