Hi Korey,

Thanks for your fast response!

I did recompile the model and I think I discovered a first place where things go wrong: the fetchprioritylist doesn't get properly initialized. The functionality to do this is written in the function FirstStage::setCPU of first_stage.cc. However this function never gets called. The reason for this is that in pipeline_stage.cc the function setCPU is not declared as "virtual". Adding this keyword in front of the function resolves the Segmentation fault but unfortunately the simulator aborts a little bit later:

gem5.opt: build/ALPHA/cpu/inorder/resources/fetch_unit.cc:588: virtual void FetchUnit::trap(Fault, ThreadID, ThePipeline::DynInstPtr): Assertion `pendingFetch.size() == 0' failed.
Program aborted at cycle 56500

Does SMT on an InOrderCPU works for you, Korey?

Thank you,

Max

On 09/26/2012 05:27 PM, Korey Sewell wrote:
Hi Max,
Did you recompile the model after changing MaxThreads?
In terms of debugging,
Can you locate the code that populates the fetchprioritylist? Can you double check that a change in MaxThreads is setting up that list correctly?
-Korey

On Wed, Sep 26, 2012 at 7:51 AM, Maximilien Breughe <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    I would like to run multiple programs on an inorder core which
    supports SMT.
    For this I needed to replace MaxThreads = 1 by (e.g.) MaxThreads =
    2 in src/cpu/inorder/pipeline_traits.hh.
    However, running the simulator with smt enabled for an inorder
    core results into a Segmentation fault.
    Does anyone have an idea?

    To run two instances of "hello world" on an inorder core I use:
    build/ALPHA/gem5.opt configs/example/se.py
    
--cmd=tests/test-progs/hello/bin/alpha/linux/hello;tests/test-progs/hello/bin/alpha/linux/hello
    --cpu-type=inorder --caches --smt

    The same command on a "detailed" cpu works fine, but running this
    command for an inorder cpu results into a segmentation fault. Gdb
    told me that there is a problem on this line:
    FirstStage::roundRobin (this=0x27670d0) at
    build/ALPHA/cpu/inorder/first_stage.cc:255.
    This is the line of code causing the problem:
    list<ThreadID>::iterator pri_iter = fetchPriorityList->begin();


    Kind regards,

    Max

    _______________________________________________
    gem5-users mailing list
    [email protected] <mailto:[email protected]>
    http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users




--
- Korey


_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to