Interesting....
The default "ultrasparc-iii-plus" cpu class uses cheetah-plus-mmu. so I changed 
the cpu class to "ultrasparc-iii" in serengeti-6800-system.include since that 
board uses cheetah-mmu. After that I recreated the checkpoint.
There is no SIGSEGV in flexus-3.0 so I am very happy at this point :)
But another SIGSEGV occurs in another location:

69 <ComponentManager.cpp:128> {0}- Loading state: sys-net-mapper
70 <ComponentManager.cpp:132> {0}-  Done loading.
70 <ComponentManager.cpp:132> {0}-  Done loading.
71 <WhiteBoxImpl.cpp:178> {5}- initializing idle_thread_t's, num procs=1  sys 
width=1
71 <WhiteBoxImpl.cpp:178> {5}- initializing idle_thread_t's, num procs=1  sys 
width=1
72 <WhiteBoxImpl.cpp:195> {5}- CPU[0] idle_thread_t point at paddr: p:000000000
72 <WhiteBoxImpl.cpp:195> {5}- CPU[0] idle_thread_t point at paddr: p:000000000
73 <mai_api.cpp:93> {5}- CPU[0] Registering for interrupts 
73 <mai_api.cpp:93> {5}- CPU[0] Registering for interrupts 
74 <ValueTracker.hpp:199> {5}- Registering DMA tracker
74 <ValueTracker.hpp:199> {5}- Registering DMA tracker
75 <ValueTracker.hpp:205> {5}- Creating DMA map object
75 <ValueTracker.hpp:205> {5}- Creating DMA map object
76 <ValueTracker.hpp:212> {5}- <undefined> Assertion failed: ((!(cpu0_mem))) : 
Unable to connect DMA because there is no cpu0_mem

the backtrace for that is:
(gdb) backtrace 
#0  0x00b71422 in __kernel_vsyscall ()
#1  0x0057a4d1 in *__GI_raise (sig=6) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x0057d932 in *__GI_abort () at abort.c:92
#3  0x08b9f767 in Flexus::Dbg::AbortAction::process (this=0xa470470, 
anEntry=...) at debug/action.cpp:177
#4  0x08ba0cec in for_each<__gnu_cxx::__normal_iterator<Flexus::Dbg::Action**, 
std::vector<Flexus::Dbg::Action*, std::allocator<Flexus::Dbg::Action*> > >, 
boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<3,
 boost::lambda::function_action<3, boost::lambda::detail::unspecified> >, 
boost::tuples::tuple<void (Flexus::Dbg::Action::* const)(Flexus::Dbg::Entry 
const&), boost::lambda::lambda_functor<boost::lambda::placeholder<1> > const, 
Flexus::Dbg::Entry const, boost::tuples::null_type, boost::tuples::null_type, 
boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, 
boost::tuples::null_type, boost::tuples::null_type> > > > (this=0xa0ca768, 
anEntry=...)
    at /home/mahmood/boost_1_33_1/boost/lambda/detail/function_adaptors.hpp:246
#5  Flexus::Dbg::CompoundAction::process (this=0xa0ca768, anEntry=...) at 
debug/action.cpp:94
#6  0x08bf5b03 in Flexus::Dbg::Target::process (this=0x9bcd7e0, anEntry=...) at 
debug/target.cpp:56
#7  0x08ba478c in for_each<__gnu_cxx::__normal_iterator<Flexus::Dbg::Target**, 
std::vector<Flexus::Dbg::Target*, std::allocator<Flexus::Dbg::Target*> > >, 
boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<3,
 boost::lambda::function_action<3, boost::lambda::detail::unspecified> >, 
boost::tuples::tuple<void (Flexus::Dbg::Target::* const)(Flexus::Dbg::Entry 
const&), boost::lambda::lambda_functor<boost::lambda::placeholder<1> > const, 
Flexus::Dbg::Entry const, boost::tuples::null_type, boost::tuples::null_type, 
boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, 
boost::tuples::null_type, boost::tuples::null_type> > > > (this=0xa1a8fc0, 
anEntry=...)
    at /home/mahmood/boost_1_33_1/boost/lambda/detail/function_adaptors.hpp:246
#8  Flexus::Dbg::Debugger::process (this=0xa1a8fc0, anEntry=...) at 
debug/debugger.cpp:72

Thanks, 
// Naderan *Mahmood;




________________________________
From: Lotfi Kamran Pejman <[email protected]>
To: Mahmood Naderan <[email protected]>; simflex <[email protected]>
Sent: Tue, July 13, 2010 12:19:45 PM
Subject: RE: SIGSEGV in mm_free()

You should change "cheetah-plus" to "cheetah-mmu".

Pejman
________________________________________
From: Mahmood Naderan [[email protected]]
Sent: Tuesday, July 13, 2010 9:47 AM
To: simflex
Subject: Re: SIGSEGV in mm_free()

>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]<mailto:[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]<mailto:[email protected]>>
To: Mahmood Naderan <[email protected]<mailto:[email protected]>>; 
simflex 
<[email protected]<mailto:[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]><mailto:[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]><mailto:[email protected]<mailto:[email protected]>>>

To: Mahmood Naderan 
<[email protected]<mailto:[email protected]><mailto:[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


      

Reply via email to