As it turns out, even if TraceFlex compiles, it doens't necessarily mean
it will work. So, I took the dive and compiled gcc-4.0.0. Naturally,
this is still causing problems. When I tried to load it, I get the
following:

simics> load-module flexus-TraceFlex-v9-iface-gcc

*** Internal error #101
Error loading module 'flexus-TraceFlex-v9-iface-gcc': Unexpected error
when loading module 'flexus-TraceFlex-v9-iface-gcc'

Is this caused by a compiler as well?

Andy

----- Original Message Follows -----
> Hello,
> 
> When I do a 
> 
> simics> load-module flexus-TraceFlex-v9-iface-gcc
> 
> I get the the following error:
> 
> Flexus (C) 2006 The SimFlex Project
> Eric Chung, Brian Gold, Nikos Hardavellas, Jangwook Kim, Ippokratis
> Pandis,
> Minglong Shao, Jared Smolens, Stephen Somogyi, Thomas Wenisch, Roland
> Wunderlich
> Anastassia Ailamaki, Babak Falsafi and James C. Hoe.
> 
> Flexus Simics simulator - Built as (*** Simics ***) Simics getting
> shaky, switching to 'safe' mode.
> Simics (main thread) received a segmentation fault. Will try to
> recuperate.
> 
> I've read on some other threads that sometimes it's ok to continue
> despite the segfaults. Is it ok, in this case, to continue despite
> this error? If I continue, it runs, but the go.sh is broken by this. 
> For now, if it's ok to continue then I will manually run go.sh.
> 
> 
> Thanks,
> ayu
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
From twenisch at ece.cmu.edu  Tue Aug  1 15:19:51 2006
From: twenisch at ece.cmu.edu (Thomas Wenisch)
List-Post: [email protected]
Date: Tue Aug  1 15:19:58 2006
Subject: [Simflex] possible load module problem?
In-Reply-To: <[email protected]>
References: <[email protected]>
Message-ID: <[email protected]>

Hi Ayu,

Usually, when Flexus seg-faults immediately after being loaded, this 
indicates that the libstdc++.so.6 library in the Simics distribution does 
not match the one that Flexus was built with.

Simics includes a fairly ancient version of libstdc++.so (from the ancient 
version of GCC they use to build Simics) in the directory 
simics/x86-linux/sys/lib.  Flexus requires a newer libstdc++.  So, when 
you run 'make install', Flexus copies the libstdc++ from the GCC that 
Flexus is built with and overwrites Simics' libstdc++.  If you poke around 
the list archives, you will see that we've had considerable trouble 
getting this scheme to work on various Linux distributions.  It is 
possible that your extremely new version of Debian may not like this 
workaround.

I suggest you try the following steps to see if these library issues are 
the problem:

1) Remove Flexus and Simics completely from your system.
2) Re-install Simics and unpack a pristine version of Flexus.
3) Pick the GCC you want to use.  We are using gcc 4.1.0 here, and I would
    bet this is the pre-installed GCC on your version of Debian, so you can
    probably start by trying the system's gcc.
4) run 'make install'.  Check simics/x86-linux/sys/lib to make sure that
    the install procedure has actually copied the correct version of
    libstdc++ (matching the one in the lib subdirectory of your gcc
    installation).
5) Build Flexus.
6) Try starting Flexus and see if you get a seg-fault.

If you want to try a different GCC, repeat this procedure (i.e., wipe your 
Flexus and Simics installations and reinstall) to ensure that there aren't 
any stale .o files or libraries lying around.

Let me know if the above still leads to problems.  If it does, we may be 
stuck - at that point, I would recommend switching Linux distributions if 
that is an option for you (e.g., to the latest Fedora Core; we tested 
Fedora Core 5 prior to the last Flexus release).

Regards,
-Tom Wenisch
Computer Architecture Lab
Carnegie Mellon University

On Tue, 1 Aug 2006, ayu wrote:

>
> As it turns out, even if TraceFlex compiles, it doens't necessarily mean
> it will work. So, I took the dive and compiled gcc-4.0.0. Naturally,
> this is still causing problems. When I tried to load it, I get the
> following:
>
> simics> load-module flexus-TraceFlex-v9-iface-gcc
>
> *** Internal error #101
> Error loading module 'flexus-TraceFlex-v9-iface-gcc': Unexpected error
> when loading module 'flexus-TraceFlex-v9-iface-gcc'
>
> Is this caused by a compiler as well?
>
> Andy
>
> ----- Original Message Follows -----
>> Hello,
>>
>> When I do a
>>
>> simics> load-module flexus-TraceFlex-v9-iface-gcc
>>
>> I get the the following error:
>>
>> Flexus (C) 2006 The SimFlex Project
>> Eric Chung, Brian Gold, Nikos Hardavellas, Jangwook Kim, Ippokratis
>> Pandis,
>> Minglong Shao, Jared Smolens, Stephen Somogyi, Thomas Wenisch, Roland
>> Wunderlich
>> Anastassia Ailamaki, Babak Falsafi and James C. Hoe.
>>
>> Flexus Simics simulator - Built as (*** Simics ***) Simics getting
>> shaky, switching to 'safe' mode.
>> Simics (main thread) received a segmentation fault. Will try to
>> recuperate.
>>
>> I've read on some other threads that sometimes it's ok to continue
>> despite the segfaults. Is it ok, in this case, to continue despite
>> this error? If I continue, it runs, but the go.sh is broken by this.
>> For now, if it's ok to continue then I will manually run go.sh.
>>
>>
>> Thanks,
>> ayu
>> _______________________________________________
>> SimFlex mailing list
>> [email protected]
>> https://sos.ece.cmu.edu/mailman/listinfo/simflex
>> SimFlex web page: http://www.ece.cmu.edu/~simflex
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
>
From ayu at ic.sunysb.edu  Tue Aug  1 16:40:22 2006
From: ayu at ic.sunysb.edu (ayu)
List-Post: [email protected]
Date: Tue Aug  1 16:40:33 2006
Subject: [Simflex] possible load module problem?
Message-ID: <[email protected]>


Tom,

Thanks for the reply. It turns out that after compiling gcc-4.0.0, I
needed to do a completely new recompile. Previously, I was just
recompling it whenever I switched to a different compilier. It's hard to
believe that a slightly different version of the complier (4.0.0 and
4.0.4) can cause so much headache. Thanks for the help.

ayu

----- Original Message Follows -----
> Hi Ayu,
> 
> Usually, when Flexus seg-faults immediately after being loaded, this 
> indicates that the libstdc++.so.6 library in the Simics distribution
> does  not match the one that Flexus was built with.
> 
> Simics includes a fairly ancient version of libstdc++.so (from the
> ancient  version of GCC they use to build Simics) in the directory 
> simics/x86-linux/sys/lib.  Flexus requires a newer libstdc++.  So,
> when  you run 'make install', Flexus copies the libstdc++ from the GCC
> that  Flexus is built with and overwrites Simics' libstdc++.  If you
> poke around  the list archives, you will see that we've had
> considerable trouble  getting this scheme to work on various Linux
> distributions.  It is  possible that your extremely new version of
> Debian may not like this  workaround.
> 
> I suggest you try the following steps to see if these library issues
> are  the problem:
> 
> 1) Remove Flexus and Simics completely from your system.
> 2) Re-install Simics and unpack a pristine version of Flexus.
> 3) Pick the GCC you want to use.  We are using gcc 4.1.0 here, and I
> would
>     bet this is the pre-installed GCC on your version of Debian, so
> you can
>     probably start by trying the system's gcc.
> 4) run 'make install'.  Check simics/x86-linux/sys/lib to make sure
> that
>     the install procedure has actually copied the correct version of
>     libstdc++ (matching the one in the lib subdirectory of your gcc
>     installation).
> 5) Build Flexus.
> 6) Try starting Flexus and see if you get a seg-fault.
> 
> If you want to try a different GCC, repeat this procedure (i.e., wipe
> your  Flexus and Simics installations and reinstall) to ensure that
> there aren't  any stale .o files or libraries lying around.
> 
> Let me know if the above still leads to problems.  If it does, we may
> be  stuck - at that point, I would recommend switching Linux
> distributions if  that is an option for you (e.g., to the latest
> Fedora Core; we tested  Fedora Core 5 prior to the last Flexus
> release).
> 
> Regards,
> -Tom Wenisch
> Computer Architecture Lab
> Carnegie Mellon University
> 
> On Tue, 1 Aug 2006, ayu wrote:
> 
> >
> > As it turns out, even if TraceFlex compiles, it doens't necessarily
> > mean it will work. So, I took the dive and compiled gcc-4.0.0.
> > Naturally, this is still causing problems. When I tried to load it,
> > I get the following:
> >
> > simics> load-module flexus-TraceFlex-v9-iface-gcc
> >
> > *** Internal error #101
> > Error loading module 'flexus-TraceFlex-v9-iface-gcc': Unexpected
> > error when loading module 'flexus-TraceFlex-v9-iface-gcc'
> >
> > Is this caused by a compiler as well?
> >
> > Andy
> >
> > ----- Original Message Follows -----
> >> Hello,
> >>
> >> When I do a
> >>
> >> simics> load-module flexus-TraceFlex-v9-iface-gcc
> >>
> >> I get the the following error:
> >>
> >> Flexus (C) 2006 The SimFlex Project
> >> Eric Chung, Brian Gold, Nikos Hardavellas, Jangwook Kim, Ippokratis
> >> Pandis,
> >> Minglong Shao, Jared Smolens, Stephen Somogyi, Thomas Wenisch,
> Roland >> Wunderlich
> >> Anastassia Ailamaki, Babak Falsafi and James C. Hoe.
> >>
> >> Flexus Simics simulator - Built as (*** Simics ***) Simics getting
> >> shaky, switching to 'safe' mode.
> >> Simics (main thread) received a segmentation fault. Will try to
> >> recuperate.
> >>
> >> I've read on some other threads that sometimes it's ok to continue
> >> despite the segfaults. Is it ok, in this case, to continue despite
> >> this error? If I continue, it runs, but the go.sh is broken by
> this. >> For now, if it's ok to continue then I will manually run
> go.sh. >>
> >>
> >> Thanks,
> >> ayu
> >> _______________________________________________
> >> SimFlex mailing list
> >> [email protected]
> >> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> >> SimFlex web page: http://www.ece.cmu.edu/~simflex
> > _______________________________________________
> > SimFlex mailing list
> > [email protected]
> > https://sos.ece.cmu.edu/mailman/listinfo/simflex
> > SimFlex web page: http://www.ece.cmu.edu/~simflex
> >
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
From ayu at ic.sunysb.edu  Wed Aug  2 22:50:56 2006
From: ayu at ic.sunysb.edu (ayu)
List-Post: [email protected]
Date: Wed Aug  2 22:51:08 2006
Subject: [Simflex] >16 nodes possible?
Message-ID: <[email protected]>


Hello,

When I try to run a multiprocessor system that's greater than 16, I get
the following (in TraceFlex):

419 <FastBusImpl.cpp:451> (<undefined>[<undefined>]) {0}- Assertion
failed:
((!(Flexus::Core::ComponentManager::getComponentManager().systemWidth()
<= 16))) : This implementation only supports 16 nodes
(*** Simics ***) Simics getting shaky, switching to 'safe' mode.

Is this an inherent limitation of SimFlex? Can I go in and increase this
number?

Thanks,
ayu
From twenisch at ece.cmu.edu  Thu Aug  3 13:29:22 2006
From: twenisch at ece.cmu.edu (Thomas Wenisch)
List-Post: [email protected]
Date: Thu Aug  3 13:29:26 2006
Subject: [Simflex] >16 nodes possible?
In-Reply-To: <[email protected]>
References: <[email protected]>
Message-ID: <[email protected]>

Hi Ayu,

The 16-node limit is not inherent in Flexus, but it is a limitation of the 
FastBus component.  The FastBus component uses a bit vector 
(coherence_state_t) to store the set of nodes that are sharing a cache 
block.  This bit vector is currently written to record at most 16 nodes. 
It should be relatively straight-forward to increase this limit to a 
little under 64 nodes, by modifying coherence_state_t and all the 
functions that use it (to unsigned long long) in FastBusImpl.cpp.

Regards,
-Tom Wenisch
Computer Architecture Lab
Carnegie Mellon University


On Wed, 2 Aug 2006, ayu wrote:

>
> Hello,
>
> When I try to run a multiprocessor system that's greater than 16, I get
> the following (in TraceFlex):
>
> 419 <FastBusImpl.cpp:451> (<undefined>[<undefined>]) {0}- Assertion
> failed:
> ((!(Flexus::Core::ComponentManager::getComponentManager().systemWidth()
> <= 16))) : This implementation only supports 16 nodes
> (*** Simics ***) Simics getting shaky, switching to 'safe' mode.
>
> Is this an inherent limitation of SimFlex? Can I go in and increase this
> number?
>
> Thanks,
> ayu
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
>
From ayu at ic.sunysb.edu  Thu Aug  3 22:50:50 2006
From: ayu at ic.sunysb.edu (ayu)
List-Post: [email protected]
Date: Thu Aug  3 22:51:12 2006
Subject: [Simflex] setting memory delay
Message-ID: <[email protected]>


Hello,

If I set the memory delay using 

flexus.set "-memory:delay" "200"

does that override Simics' memory delay as well? Or do I need to set
Simics' delay to match Simflex's delay?

Thanks,
ayu
From twenisch at ece.cmu.edu  Mon Aug  7 11:40:16 2006
From: twenisch at ece.cmu.edu (Thomas Wenisch)
List-Post: [email protected]
Date: Mon Aug  7 11:40:21 2006
Subject: [Simflex] setting memory delay
In-Reply-To: <[email protected]>
References: <[email protected]>
Message-ID: <[email protected]>

Hello Ayu,

In UniFlex[.OoO] and CMPFlex[.OoO], "-memory:delay" sets the memory 
delay, and Flexus controls Simics memory delay (i.e., memory operations in 
Simics complete when Flexus tells them to).

In DSMFlex[.OoO], the memory delay is controlled by the Directory 
component, and the correct setting is "-directory:latency".

In TraceFlex and TraceCMPFlex, there are no memory delays (timing is 
exactly the same as in straight Simics w/o Flexus).

Regards,
-Tom Wenisch

On Thu, 3 Aug 2006, ayu wrote:

>
> Hello,
>
> If I set the memory delay using
>
> flexus.set "-memory:delay" "200"
>
> does that override Simics' memory delay as well? Or do I need to set
> Simics' delay to match Simflex's delay?
>
> Thanks,
> ayu
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
>
From mrinal at ece.umn.edu  Thu Aug 17 00:58:04 2006
From: mrinal at ece.umn.edu (Mrinal Nath)
List-Post: [email protected]
Date: Thu Aug 17 00:58:14 2006
Subject: [Simflex] Some questions
Message-ID: <[email protected]>

Hi,

I have a few questions about the Flexus implementation:

1. In IFetchImpl.cpp, in function "memoryResponse", the reply for a
"Probe" is always "ProbedNotPresent". Can you please clarify the reason
for this. (I think that since this is the IFetch component, it does not
cache anything, and so no probe will hit. However, then why does this
component even get Invalidate or Downgrade requests?)

In fact, can you please clarify the communication that goes on between
the L1-L2 caches, and the L1i-IFetch and the L1d-Execute ?

2. In ExecuteImpl.cpp, in class ExecuteStateImpl, what is the exact
meaning of 'theIsIssued', 'theIsInitiated', 'theIsPerformed' and
'theIsComplete'. To me, the first two seem similar to each other. Whats
the difference between them? The last two also seem similar to each other.


Thanks,
- Mrinal

Reply via email to