Hi,

I'm trying to use Flexus 2.0 on Fedora Core 4.  I've managed to compile
everything, but I'm having problems with the flexus-test-app example.

I was able to generate the checkpoints without any problems, however I'm
having problems doing simulations with the flexus modules.

I can run './interactive TraceFlex' without any problems.  Everything
appears to work fine and I don't get any errors or warnings that aren't
expected.  However, when I try to use UniFlex or CMPFlex, I get an error
and the simulation seems to freeze.

For example, when I run './interactive UniFlex' I get the following output:

[zebc...@aenao-01 flexus-test-app]$ ./interactive UniFlex
Starting interactive run of flexus_test with UniFlex in
/localhome/zebchuk/work/flexus_2.0/flexus-test-app/runs/zebchuk-UniFlex-21Feb06-113452
Launching job
Initializing Flexus::Debugger...Opening debug output file: debug.out
DEBUG added target debug-comp
DEBUG added target debug-feeder
DEBUG added target debug-noncomp
Opening debug output file: stats.out
DEBUG added target stats
DEBUG added target assertions
Successfully parsed debug configurations from debug.cfg
done
Initializing Flexus::ConfigurationManager...done
Initializing Flexus::ComponentManager...done
1 <startup.cpp:109> {0}- Initializing Flexus.

Flexus (C) 2005 The SimFlex Project
Kun Gao, Brian Gold, Nikos Hardavellas, Jangwoo Kim,
Ippokratis Pandis, Minglong Shao, Jared Smolens, Stephen Somogyi,
Tom Wenisch, Anastassia Ailamaki, Babak Falsafi, and James C. Hoe.
Flexus Release 2.0 11/9/2005 managed by Tom Wenisch.
Flexus-Simics simulator - Built as UniFlex v2.0

2 <ComponentManager.cpp:81> {0}- Instantiating system with a width
factor of: 8
3 <InorderSimicsFeederImpl.cpp:289> (feeder[<undefined>]) {0}-
Initializing InorderSimicsFeeder.
4 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu0
5 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu1
6 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu2
7 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu3
8 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu4
9 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu5
10 <InorderSimicsFeederImpl.cpp:337> (feeder[<undefined>]) {0}-
Connecting: cpu611 <InorderSimicsFeederImpl.cpp:337>
(feeder[<undefined>]) {0}- Connecting: cpu712 <Cache.hpp:74> {0}- L1i
port BackSideOut_Snoop is not wired
13 <Cache.hpp:74> {0}- L2 port BackSideOut_Snoop is not wired
14 <wiring.cpp:89> {0}-  initializing Parameters...
Warning: The 'flexus-UniFlex-v9-iface-gcc' module was supposed to
register the 'DecoupledFeeder' class, but did not
Warning: The 'flexus-UniFlex-v9-iface-gcc' module unexpectedly defined
the 'InOrderFeeder' class
Opening debug output file: trace.out
DEBUG added target iterationtrace
Successfully parsed debug configurations from iteration.trace.cfg
type run to start simulation
simics> run
15 <ComponentManager.cpp:96> {0}- Initalizing components...
16 <InorderSimicsFeederImpl.cpp:276> (feeder[<undefined>]) {0}- Using
new scheduling mechanism.
17 <IFetchImpl.cpp:95> {0}- StallInstructions: 1
18 <ExecuteImpl.cpp:286> {0}- EX initalized
19 <MemoryMapImpl.cpp:333> {0}- Page map file page_map.out was not found.


After that the simulation just seems to do nothing.  The last thing
printed on the console is:

"Running 8 threads for 10 iterations each."

Do you have any advice for what might be wrong?

I compiled the modules with gcc-3.4.4 and I'm using the corresponding
glibc libraries.  When I ran the initial simulation to create the
checkpoints, I used the glibc libraries that came with simics to avoid
the 'CXX_ABI_1.2' error.


Also, is there an updated version of the "Flexus Getting Started Guide"
that includes an example of using live-points as described in the
tutorial slides?

One last note, I originally compiled gcc-3.4.4 with the
'--disable-threads' option as described in the getting started guide.
However, this lead to compilation errors when the boost libraries
included pthread.h.  Recompiling gcc-3.4.4 without this option removed
that compilation error.



Thanks,


Jason Zebchuk

MASc Candidate
Department of Electrical and Computer Engineering
University of Toronto
From twenisch at ece.cmu.edu  Tue Feb 21 14:17:15 2006
From: twenisch at ece.cmu.edu (Thomas Wenisch)
List-Post: [email protected]
Date: Tue Feb 21 14:16:59 2006
Subject: [Simflex] "page_map.out" not found error
In-Reply-To: <[email protected]>
References: <[email protected]>
Message-ID: <pine.lnx.4.53l-ece.cmu.edu.0602211407270.18...@dalmore.ece.cmu.edu>

Hi Jason,

On Tue, 21 Feb 2006, Jason Zebchuk wrote:

> Hi,
>
> I can run './interactive TraceFlex' without any problems.  Everything
> appears to work fine and I don't get any errors or warnings that aren't
> expected.  However, when I try to use UniFlex or CMPFlex, I get an error
> and the simulation seems to freeze.
>
> For example, when I run './interactive UniFlex' I get the following output:
>
> [zebc...@aenao-01 flexus-test-app]$ ./interactive UniFlex
> Starting interactive run of flexus_test with UniFlex in
> /localhome/zebchuk/work/flexus_2.0/flexus-test-app/runs/zebchuk-UniFlex-21Feb06-113452
> Launching job

< snip output >

> simics> run
> 15 <ComponentManager.cpp:96> {0}- Initalizing components...
> 16 <InorderSimicsFeederImpl.cpp:276> (feeder[<undefined>]) {0}- Using
> new scheduling mechanism.
> 17 <IFetchImpl.cpp:95> {0}- StallInstructions: 1
> 18 <ExecuteImpl.cpp:286> {0}- EX initalized
> 19 <MemoryMapImpl.cpp:333> {0}- Page map file page_map.out was not found.

None of the output above indicates an error.  The "page_map.out" file is
used to assign memory pages to nodes in distributed shared memory
simulations.  If the file is missing, pages are assigned in round-robin
fashion.  However, in CMPFlex, this assignment is moot (there is only one
"node").

First, I would suggest you test with CMPFlex.  I would not expect UniFlex
to behave sanely with a multiprocessor Simics checkpoint (it will run, but
the caches will not maintain coherence).

Second, if you hit CTRL-C after running for a while, has any time
advanced?  If you issue the command 'flexus.print-measurement "all"', do
you get any non-zero statistics?

>
> I compiled the modules with gcc-3.4.4 and I'm using the corresponding
> glibc libraries.  When I ran the initial simulation to create the
> checkpoints, I used the glibc libraries that came with simics to avoid
> the 'CXX_ABI_1.2' error.
>

Can you elaborate a bit more on how you worked around this problem?  I
know that there are others reading the mailing list who are having similar
problems with Fedora Core linux.

>
> Also, is there an updated version of the "Flexus Getting Started Guide"
> that includes an example of using live-points as described in the
> tutorial slides?

We do not have a newer version of the getting started guide.

>
> One last note, I originally compiled gcc-3.4.4 with the
> '--disable-threads' option as described in the getting started guide.
> However, this lead to compilation errors when the boost libraries
> included pthread.h.  Recompiling gcc-3.4.4 without this option removed
> that compilation error.
>

You may be able to resolve this problem by defining the symbol
BOOST_DISABLE_THREADS on the compilation command line, which will prevent
Boost from using (or including) pthreads.  I thought we had already done
this, but apparently we did not in version 2.0.  Add
"-DBOOST_DISABLE_THREADS" to the GCC_CFLAGS variable in makefile.defs.

Regards,
-Tom Wenisch
Computer Architecture Lab
Carnegie Mellon University
From zebchuk at eecg.toronto.edu  Wed Feb 22 15:33:41 2006
From: zebchuk at eecg.toronto.edu (Jason Zebchuk)
List-Post: [email protected]
Date: Wed Feb 22 15:33:55 2006
Subject: [Simflex] "page_map.out" not found error
In-Reply-To: 
<pine.lnx.4.53l-ece.cmu.edu.0602211407270.18...@dalmore.ece.cmu.edu>
References: <[email protected]>
        <pine.lnx.4.53l-ece.cmu.edu.0602211407270.18...@dalmore.ece.cmu.edu>
Message-ID: <[email protected]>

Thomas Wenisch wrote:
> Hi Jason,
> 
> On Tue, 21 Feb 2006, Jason Zebchuk wrote:
> 
> 
>>Hi,
>>
>>I can run './interactive TraceFlex' without any problems.  Everything
>>appears to work fine and I don't get any errors or warnings that aren't
>>expected.  However, when I try to use UniFlex or CMPFlex, I get an error
>>and the simulation seems to freeze.
>>
> < snip output >
> 
> 
> First, I would suggest you test with CMPFlex.  I would not expect UniFlex
> to behave sanely with a multiprocessor Simics checkpoint (it will run, but
> the caches will not maintain coherence).
> 

Using CMPFlex used to produce a similar result.  I tried playing around
with a few things, and it's no longer behaving the same.

I tried recompiling the flexus modules with gcc-3.4.4 compiled with
'--disable-threads' and by adding -DBOOST_DISABLE_THREADS to GCC_CFLAGS
and surprisingly I had the same error caused when boost tried to include
pthread.h at one point.  It also had a number of warnings about
redifining BOOST_DISABLE_THREADS.  I think is the only thing I played
with when recompiling the flexus modules, so I'm not sure if something's
in an inconsistent state right now (ie. built with 2 versions of gcc)
and might be causing the current behaviour.

Right now it's giving the following output:

[zebc...@aenao-01 flexus-test-app]$ ./interactive CMPFlex
Starting interactive run of flexus_test with CMPFlex in
/localhome/zebchuk/work/flexus_2.0/flexus-test-app/runs/zebchuk-CMPFlex-22Feb06-151623
Launching job
Initializing Flexus::Debugger...Opening debug output file: debug.out
DEBUG added target debug-comp
DEBUG added target debug-feeder
DEBUG added target debug-noncomp
Opening debug output file: stats.out
DEBUG added target stats
DEBUG added target assertions
Successfully parsed debug configurations from debug.cfg
done
Initializing Flexus::ConfigurationManager...done
Initializing Flexus::ComponentManager...done
1 <startup.cpp:109> {0}- Initializing Flexus.
(*** Simics ***) Simics getting shaky, switching to 'safe' mode.
Simics (main thread) received a segmentation fault. Will try to recuperate.
simics>

I have no idea what change caused this behaviour, but I'm going to try
to see if I can fix it so it goes back to what it was doing before.  If
you have any advice I'd appreciate it.  Running './interactive UniFlex'
is now causing similar behaviour.

> Second, if you hit CTRL-C after running for a while, has any time
> advanced?  If you issue the command 'flexus.print-measurement "all"', do
> you get any non-zero statistics?
> 

Before it's behaviour changed, I had to press CTRL-C 3 times before it
will bring up the simics prompt.  At that point there were non-zero
statistics, so it looks like it might have been doing something.

>>I compiled the modules with gcc-3.4.4 and I'm using the corresponding
>>glibc libraries.  When I ran the initial simulation to create the
>>checkpoints, I used the glibc libraries that came with simics to avoid
>>the 'CXX_ABI_1.2' error.
>>
> 
> 
> Can you elaborate a bit more on how you worked around this problem?  I
> know that there are others reading the mailing list who are having similar
> problems with Fedora Core linux.
> 

The error in question is:

Failed to load module 'sparc-u3-turbo'
('/localhome/apps/install/simics-2.2.19/x86-linux/lib/sparc-u3-turbo.so'):
"/localhome/zebchuk/work/simics-2.2.19/x86-linux/sys/lib/libstdc++.so.5:
version `CXXABI_1.2' not found (required by
/localhome/apps/install/simics-2.2.19/x86-linux/lib/sparc-u3-turbo.so)"

When running simics without any flexus modules, the links to the glibc
c++ libraries in $(SIMICS)/x86-linux/sys/lib point to the original glibc
libraries that came with simics.  When I want to use the flexus modules,
I change these links to point to the glibc binaries for gcc-3.4.4 which
were built when I compiled gcc-3.4.4.  Right now, I'm just manually
changing the links as required.

A similar problem might happen when trying to run stat-manager.  I
solved that problem by compiling stat-manager with the '-static' option.
 It might be possible to use this approach to statically include the
necessary parts of glibc inside the flexus modules, but I haven't tried
this yet, and I'm not sure of precisely how to do it.



Jason
From zebchuk at eecg.toronto.edu  Wed Feb 22 17:58:29 2006
From: zebchuk at eecg.toronto.edu (Jason Zebchuk)
List-Post: [email protected]
Date: Wed Feb 22 17:58:38 2006
Subject: [Simflex] "page_map.out" not found error - Fixed
In-Reply-To: <[email protected]>
References: <[email protected]> 
<pine.lnx.4.53l-ece.cmu.edu.0602211407270.18...@dalmore.ece.cmu.edu>
        <[email protected]>
Message-ID: <[email protected]>

Thomas,

I seem to have solved my own problem.  I re-installed the glibc
libraries and now everything is working fine.  My most recent problem
was a result of 'make install' copy over my glibc libraries with
different versions.  I'm not sure what the original problem was, but it
seems to have gone away.

I wasn't aware of this, but 'cp' has interesting behaviour if the
destination file name is a symbolic link.  In that case it actually
copies over the original file.  When I was playing around with the glibc
libraries, I had replced the copied versions with links.  Running 'make
install' after I had done this resulted in overwriting the glibc
libraries.  Then, when I tried to switch back to those libraries, they
weren't the right ones.

I think makefile.install should be changed to remove the glibc libraries
from $(SIMICS)/x86-linux/sys/lib before copying new ones there.  This
would have prevented at least one of the problems I had.

Thanks for your help Thomas.


Jason



Jason Zebchuk wrote:
> Thomas Wenisch wrote:
> 
>>Hi Jason,
>>
>>On Tue, 21 Feb 2006, Jason Zebchuk wrote:
>>
>>
>>
>>>Hi,
>>>
>>>I can run './interactive TraceFlex' without any problems.  Everything
>>>appears to work fine and I don't get any errors or warnings that aren't
>>>expected.  However, when I try to use UniFlex or CMPFlex, I get an error
>>>and the simulation seems to freeze.
>>>
>>
>>< snip output >
>>
>>
>>First, I would suggest you test with CMPFlex.  I would not expect UniFlex
>>to behave sanely with a multiprocessor Simics checkpoint (it will run, but
>>the caches will not maintain coherence).
>>
> 
> 
> Using CMPFlex used to produce a similar result.  I tried playing around
> with a few things, and it's no longer behaving the same.
> 
> I tried recompiling the flexus modules with gcc-3.4.4 compiled with
> '--disable-threads' and by adding -DBOOST_DISABLE_THREADS to GCC_CFLAGS
> and surprisingly I had the same error caused when boost tried to include
> pthread.h at one point.  It also had a number of warnings about
> redifining BOOST_DISABLE_THREADS.  I think is the only thing I played
> with when recompiling the flexus modules, so I'm not sure if something's
> in an inconsistent state right now (ie. built with 2 versions of gcc)
> and might be causing the current behaviour.
> 
> Right now it's giving the following output:
> 
> [zebc...@aenao-01 flexus-test-app]$ ./interactive CMPFlex
> Starting interactive run of flexus_test with CMPFlex in
> /localhome/zebchuk/work/flexus_2.0/flexus-test-app/runs/zebchuk-CMPFlex-22Feb06-151623
> Launching job
> Initializing Flexus::Debugger...Opening debug output file: debug.out
> DEBUG added target debug-comp
> DEBUG added target debug-feeder
> DEBUG added target debug-noncomp
> Opening debug output file: stats.out
> DEBUG added target stats
> DEBUG added target assertions
> Successfully parsed debug configurations from debug.cfg
> done
> Initializing Flexus::ConfigurationManager...done
> Initializing Flexus::ComponentManager...done
> 1 <startup.cpp:109> {0}- Initializing Flexus.
> (*** Simics ***) Simics getting shaky, switching to 'safe' mode.
> Simics (main thread) received a segmentation fault. Will try to recuperate.
> simics>
> 
> I have no idea what change caused this behaviour, but I'm going to try
> to see if I can fix it so it goes back to what it was doing before.  If
> you have any advice I'd appreciate it.  Running './interactive UniFlex'
> is now causing similar behaviour.
> 
> 
>>Second, if you hit CTRL-C after running for a while, has any time
>>advanced?  If you issue the command 'flexus.print-measurement "all"', do
>>you get any non-zero statistics?
>>
> 
> 
> Before it's behaviour changed, I had to press CTRL-C 3 times before it
> will bring up the simics prompt.  At that point there were non-zero
> statistics, so it looks like it might have been doing something.
> 
> 
>>>I compiled the modules with gcc-3.4.4 and I'm using the corresponding
>>>glibc libraries.  When I ran the initial simulation to create the
>>>checkpoints, I used the glibc libraries that came with simics to avoid
>>>the 'CXX_ABI_1.2' error.
>>>
>>
>>
>>Can you elaborate a bit more on how you worked around this problem?  I
>>know that there are others reading the mailing list who are having similar
>>problems with Fedora Core linux.
>>
> 
> 
> The error in question is:
> 
> Failed to load module 'sparc-u3-turbo'
> ('/localhome/apps/install/simics-2.2.19/x86-linux/lib/sparc-u3-turbo.so'):
> "/localhome/zebchuk/work/simics-2.2.19/x86-linux/sys/lib/libstdc++.so.5:
> version `CXXABI_1.2' not found (required by
> /localhome/apps/install/simics-2.2.19/x86-linux/lib/sparc-u3-turbo.so)"
> 
> When running simics without any flexus modules, the links to the glibc
> c++ libraries in $(SIMICS)/x86-linux/sys/lib point to the original glibc
> libraries that came with simics.  When I want to use the flexus modules,
> I change these links to point to the glibc binaries for gcc-3.4.4 which
> were built when I compiled gcc-3.4.4.  Right now, I'm just manually
> changing the links as required.
> 
> A similar problem might happen when trying to run stat-manager.  I
> solved that problem by compiling stat-manager with the '-static' option.
>  It might be possible to use this approach to statically include the
> necessary parts of glibc inside the flexus modules, but I haven't tried
> this yet, and I'm not sure of precisely how to do it.
> 
> 
> 
> Jason
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex

Reply via email to