[gem5-users] Debugging std::bad_alloc memory errors in gem5

2020-03-24 Thread Subhankar Pal
Hi,

I am trying to run simulations in SE mode with a 1000+ (simple) cores. I
get the following error once m5.instantiate() is called.
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/subh/gem5/src/python/m5/main.py", line 436, in main
exec filecode in scope
  File “configs/se_mod.py", line 1586, in 
m5.instantiate()
  File "/home/subh/gem5/src/python/m5/simulate.py", line 139, in instantiate
stats.enable()
  File "/home/subh/gem5/src/python/m5/stats/__init__.py", line 180, in
enable
stat.enable()
MemoryError: std::bad_alloc

My system is a heavily modified se.py and I have multiple custom
memObjects, some of which allocate memory, i.e. using functions similar to
createBackingStore() in src/mem/physical.cc.

Is there an easy way to track down which memObject class allocates the most
memory, or at least which memObject the allocation fails for? I have tried
invoking gem5.opt with gdb, but I don’t get a backtrace, presumably because
the failure happens in a Python function call.

Thank for any help.

Subhankar Pal  |  PhD Candidate, CSE  |  University of Michigan
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Run APK on Gem5

2020-03-24 Thread ABD ALRHMAN ABO ALKHEEL
Hi All,

I wanna run the apk binary files on ARM gem5 in se mode. Any help would be 
appreciated.

Best Regards
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Using the REX prefix in one byte opcodes to modify the instruction to decode

2020-03-24 Thread Gabe Black
The "leg" field of the ExtMachInst is of type LegacyPrefixVector which is a
bit vector which says whether a legacy prefix was present for a given
instruction, and is not the actual prefix itself. Decoding based on
LEGACY_DECODEVAL switches based on the top 4 bits of that value, bits 7-4.
The top bit is for repne, so 0x08 selects repne and not rep, lock, or the
operand size override prefixes.

Note that none of those has anything to do with REX, since REX is not a
legacy prefix. The REX value is stored in the rex part of the ExtMachInst
instruction. You can check for the presence, entire value, or bits of the
REX prefix using the REX bitfield.

Gabe

On Tue, Mar 24, 2020 at 4:14 PM Muhammad Aamir 
wrote:

> Hi everyone,
>
> I am trying to add my own custom MOV instruction, and with respect to this
> post on stackoverflow:
>
> https://stackoverflow.com/questions/60745735/which-mov-instructions-in-the-x86-are-not-used-or-the-least-used-and-can-be-use
>
> According to the post one way to add a custom instruction which is not
> recognizable by GCC, is to use prefix infront of that instruction.
>
> I did follow through and modified the one_byte_opcodes.isa  file and made
> it to accept a REX prefix,
>
> The modification is as follows in the  one_byte_opcodes.isa  file from
> line 272:
>
> 0x11:decode LEGACY_DECODEVAL {
>
> // no prefix
>
> 0x00: decode OPCODE_OP_BOTTOM3 {
>
> 0x0: MOV(Eb,Gb);
>
> 0x1: MOV(Ev,Gv);
>
> 0x2: MOV(Gb,Eb);
>
> 0x3: MOV(Gv,Ev);
>
> 0x4: decode MODRM_REG {
>
> 0x0, 0x1, 0x2,
>
> 0x3, 0x4, 0x5: MOV(Ev,Sv);
>
> }
>
> 0x5: LEA(Gv,M);
>
> 0x6: decode MODE_SUBMODE {
>
> 0x3, 0x4: MOV_REAL(Sv,Ev);
>
> default: decode MODRM_REG {
>
> 0x1: UD2(); // Moving to the CS selector is illegal.
>
> 0x2: MOVSS(Sv,Ev);
>
> 0x0, 0x3,
>
> 0x4, 0x5: MOV(Sv,Ev);
>
> default: UD2();
>
> }
>
> }
>
> //0x7: group10_Ev();
>
> 0x7: decode MODRM_REG {
>
> 0x0: POP(Ev);
>
> default: UD2();
>
> }
>
> }
>
> // repne (0xF2)
>
> 0x8: decode OPCODE_OP_BOTTOM3 {
>
> 0x0: SPMNBL(Eb,Gb);
>
> 0x1: SPMNBL(Ev,Gv);
>
> 0x2: SPMNBL(Gb,Eb);
>
> 0x3: SPMNBL(Gv,Ev);
>
> }
>
> }
>
> my modification includes adding decode LEGACY_DECODEVAL{} which is not in
> the orignal file
>
> I added my custom instruction SPMNBL to be used with the repne prefix and
> left the other instruction as they were:
>
> Is this the correct way to make GEM5 to use a REX prefix? or am I doing it
> wrongly
> GEM5 builds properly but when I try to run any workload that has a MOV
> instructions (not using my custom instructions) I get the following error:
>
> panic: Unrecognized/invalid instruction executed:
>
> {
> leg = 0x10,
> rex = 0,
> vex/xop = 0,
> op = {
> type = one byte,
> op = 0x89,
> },
> modRM = 0x5c,
> sib = 0x24,
> immediate = 0,
> displacement = 0x4
> dispSize = 1}
>
>
> Which basically translated that the MOV instruction is not being
> recognized, why is this so?
>
> Also why is 0X08 used to decode 0xF2  repne, any reason behind that?
>
> Any help or clarification would be of great help
>
> Thanks
>
>
>
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Using the REX prefix in one byte opcodes to modify the instruction to decode

2020-03-24 Thread Muhammad Aamir
Hi everyone,

I am trying to add my own custom MOV instruction, and with respect to this
post on stackoverflow:
https://stackoverflow.com/questions/60745735/which-mov-instructions-in-the-x86-are-not-used-or-the-least-used-and-can-be-use

According to the post one way to add a custom instruction which is not
recognizable by GCC, is to use prefix infront of that instruction.

I did follow through and modified the one_byte_opcodes.isa  file and made
it to accept a REX prefix,

The modification is as follows in the  one_byte_opcodes.isa  file from line
272:

0x11:decode LEGACY_DECODEVAL {

// no prefix

0x00: decode OPCODE_OP_BOTTOM3 {

0x0: MOV(Eb,Gb);

0x1: MOV(Ev,Gv);

0x2: MOV(Gb,Eb);

0x3: MOV(Gv,Ev);

0x4: decode MODRM_REG {

0x0, 0x1, 0x2,

0x3, 0x4, 0x5: MOV(Ev,Sv);

}

0x5: LEA(Gv,M);

0x6: decode MODE_SUBMODE {

0x3, 0x4: MOV_REAL(Sv,Ev);

default: decode MODRM_REG {

0x1: UD2(); // Moving to the CS selector is illegal.

0x2: MOVSS(Sv,Ev);

0x0, 0x3,

0x4, 0x5: MOV(Sv,Ev);

default: UD2();

}

}

//0x7: group10_Ev();

0x7: decode MODRM_REG {

0x0: POP(Ev);

default: UD2();

}

}

// repne (0xF2)

0x8: decode OPCODE_OP_BOTTOM3 {

0x0: SPMNBL(Eb,Gb);

0x1: SPMNBL(Ev,Gv);

0x2: SPMNBL(Gb,Eb);

0x3: SPMNBL(Gv,Ev);

}

}

my modification includes adding decode LEGACY_DECODEVAL{} which is not in
the orignal file

I added my custom instruction SPMNBL to be used with the repne prefix and
left the other instruction as they were:

Is this the correct way to make GEM5 to use a REX prefix? or am I doing it
wrongly
GEM5 builds properly but when I try to run any workload that has a MOV
instructions (not using my custom instructions) I get the following error:

panic: Unrecognized/invalid instruction executed:

{
leg = 0x10,
rex = 0,
vex/xop = 0,
op = {
type = one byte,
op = 0x89,
},
modRM = 0x5c,
sib = 0x24,
immediate = 0,
displacement = 0x4
dispSize = 1}


Which basically translated that the MOV instruction is not being
recognized, why is this so?

Also why is 0X08 used to decode 0xF2  repne, any reason behind that?

Any help or clarification would be of great help

Thanks
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Simulation OpenMP Applications with se.py

2020-03-24 Thread Abhishek Singh
Hi,

Before it was required to use m5 threads but now you are not required to
use m5thread library

On Tue, Mar 24, 2020 at 5:47 PM Muhammet Abdullah Soytürk <
muhammetabdullahsoyt...@gmail.com> wrote:

> Hi all,
>
> I am trying to simulate an openmp application with 4 cores in SE mode. It
> seems to be working fine when I run it with this command:
>
> build/RISCV/gem5.opt configs/example/se.py -c  --caches
> --l2cache --cpu-type=DerivO3CPU -n 4
>
>
> but while I was searching I have seen that there was something called
> m5threads that was used to simulate a multithreaded program in SE mode or
> is it still in use? I am a bit confused because I did not use m5threads.
>
> Best,
> Muhammet
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Simulation OpenMP Applications with se.py

2020-03-24 Thread Muhammet Abdullah Soytürk
Hi all,

I am trying to simulate an openmp application with 4 cores in SE mode. It
seems to be working fine when I run it with this command:

build/RISCV/gem5.opt configs/example/se.py -c  --caches --l2cache
--cpu-type=DerivO3CPU -n 4


but while I was searching I have seen that there was something called
m5threads that was used to simulate a multithreaded program in SE mode or
is it still in use? I am a bit confused because I did not use m5threads.

Best,
Muhammet
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Correct Way to Fast-Forward

2020-03-24 Thread Muhammet Abdullah Soytürk
Hi all,

I want to fast forward my benchmark during its input graph initialization
phase and then switch to O3 cpu. I have a couple questions about that.

- My system is a multicore system (let's say 4 cores). Should I fast
forward with 4 atomic cpus and restore with 4 O3 cpus or one cpu for
fast-forwarding is enough?

- In my system each core has its own l1 cache and a unified l2cache. Should
I do the fast-forwarding part with the caches or not?

Best,
Muhammet
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Giacomo Travaglini
Put a pdb breakpoint:

import pdb
pdb.set_trace()

at the beginning of the do_dot helper in

src/python/m5/util/dot_writer.py

The run and debug. You can see what is going on.

Giacomo

From: gem5-users  On Behalf Of Md Rubel Ahmed
Sent: 24 March 2020 18:29
To: gem5 users mailing list 
Subject: Re: [gem5-users] How to get the high-level architectural view of the 
system I am simulating?

Hi Giacomo,
The following commands I executed till now but find no m5out/config.dot.svg.
pip install pydot

scons build/X86/gem5.opt -j9
build/X86/gem5.opt configs/example/se.py 
--cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU 
--l1d_size=64kB --l1i_size=16kB --l2_size=128kB --num-cpus=1 --caches

Can you tell me if I am missing something? I followed: 
https://pypi.org/project/pydot/#files
Is the python version causing any problem? I did not find anything on how to 
work with pydot + python 2.7

Thanks,
Rubel Ahmed
USF-CSE
Tampa, FL


On Tue, Mar 24, 2020 at 2:02 PM Giacomo Travaglini 
mailto:giacomo.travagl...@arm.com>> wrote:
You should just run your simulation.
Gem5 will automatically detect pydot at runtime (by not failing the import) and 
will generate the file for you
Together with the classical config.ini

Giacomo

From: gem5-users 
mailto:gem5-users-boun...@gem5.org>> On Behalf Of 
Md Rubel Ahmed
Sent: 24 March 2020 17:59
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] How to get the high-level architectural view of the 
system I am simulating?

Hi Giacomo,
I have installed pydot, can you elaborate a bit on how to get config.dot.pdf?

Thanks,
Rubel Ahmed
USF-CSE
Tampa, FL


On Tue, Mar 24, 2020 at 1:41 PM Giacomo Travaglini 
mailto:giacomo.travagl...@arm.com>> wrote:
Hi Rubel,

You could use config.ini, but you can generate a better visual representation 
by installing pydot.
Then when you run your simulation, you would generate a representation of your 
system in:

m5out/config.dot.pdf

or

m5out/config.dot.svg

This is definitely the option you are looking for

Giacomo


From: gem5-users 
mailto:gem5-users-boun...@gem5.org>> On Behalf Of 
Md Rubel Ahmed
Sent: 24 March 2020 17:13
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Subject: [gem5-users] How to get the high-level architectural view of the 
system I am simulating?

Hi all,
Lets say I am using the following command to simulate a system on gem5:

build/X86/gem5.opt configs/example/se.py 
--cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU 
--l1d_size=64kB --l1i_size=16kB --caches

How can I get a high-level view/diagram of the system that is being simulated 
here? I am interested in knowing the architecture of the system on which the 
binary is being executed as sys-calls. For example, I assume this command runs 
the hello binary on a system that looks like the following:
[Image removed by sender.]

My assumption is L2 bus is implicit here, same as membus and mem_ctrl. Please 
advise me on how to interpret the command line architecture arguments to get 
the high-level view of the system, if possible with example.

Thank you,
Rubel Ahmed
USF-CSE
Tampa, FL
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Md Rubel Ahmed
Hi Giacomo,
The following commands I executed till now but find no m5out/config.dot.svg.
pip install pydot

scons build/X86/gem5.opt -j9

build/X86/gem5.opt configs/example/se.py
--cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU
--l1d_size=64kB --l1i_size=16kB --l2_size=128kB --num-cpus=1 --caches

Can you tell me if I am missing something? I followed:
https://pypi.org/project/pydot/#files
Is the python version causing any problem? I did not find anything on how
to work with pydot + python 2.7

Thanks,
*Rubel Ahmed*
*USF-CSE*
*Tampa, FL*


On Tue, Mar 24, 2020 at 2:02 PM Giacomo Travaglini <
giacomo.travagl...@arm.com> wrote:

> You should just run your simulation.
>
> Gem5 will automatically detect pydot at runtime (by not failing the
> import) and will generate the file for you
>
> Together with the classical config.ini
>
>
>
> Giacomo
>
>
>
> *From:* gem5-users  *On Behalf Of *Md Rubel
> Ahmed
> *Sent:* 24 March 2020 17:59
> *To:* gem5 users mailing list 
> *Subject:* Re: [gem5-users] How to get the high-level architectural view
> of the system I am simulating?
>
>
>
> Hi Giacomo,
>
> I have installed pydot, can you elaborate a bit on how to get
> config.dot.pdf?
>
>
>
> Thanks,
>
> *Rubel Ahmed*
>
> *USF-CSE*
>
> *Tampa, FL*
>
>
>
>
>
> On Tue, Mar 24, 2020 at 1:41 PM Giacomo Travaglini <
> giacomo.travagl...@arm.com> wrote:
>
> Hi Rubel,
>
>
>
> You could use config.ini, but you can generate a better *visual*
> representation by installing *pydot*.
>
> Then when you run your simulation, you would generate a representation of
> your system in:
>
>
>
> m5out/config.dot.pdf
>
>
>
> or
>
>
>
> m5out/config.dot.svg
>
>
>
> This is definitely the option you are looking for
>
>
>
> Giacomo
>
>
>
>
>
> *From:* gem5-users  *On Behalf Of *Md Rubel
> Ahmed
> *Sent:* 24 March 2020 17:13
> *To:* gem5 users mailing list 
> *Subject:* [gem5-users] How to get the high-level architectural view of
> the system I am simulating?
>
>
>
> Hi all,
>
> Lets say I am using the following command to simulate a system on gem5:
>
>
>
> build/X86/gem5.opt configs/example/se.py 
> --cmd=tests/test-progs/hello/bin/x86/linux/hello
> --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches
>
>
>
> How can I get a high-level view/diagram of the system that is being
> simulated here? *I am interested in knowing the architecture of the
> system on which the binary is being executed as sys-calls.* For example,
> I assume this command runs the hello binary on a system that looks like the
> following:
>
> [image: Image removed by sender.]
>
>
>
> My assumption is L2 bus is implicit here, same as membus and mem_ctrl.
> Please advise me on how to interpret the command line *architecture
> arguments* to get the high-level view of the system, if possible with
> example.
>
>
>
> Thank you,
>
> *Rubel Ahmed*
>
> *USF-CSE*
>
> *Tampa, FL*
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
>
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Giacomo Travaglini
You should just run your simulation.
Gem5 will automatically detect pydot at runtime (by not failing the import) and 
will generate the file for you
Together with the classical config.ini

Giacomo

From: gem5-users  On Behalf Of Md Rubel Ahmed
Sent: 24 March 2020 17:59
To: gem5 users mailing list 
Subject: Re: [gem5-users] How to get the high-level architectural view of the 
system I am simulating?

Hi Giacomo,
I have installed pydot, can you elaborate a bit on how to get config.dot.pdf?

Thanks,
Rubel Ahmed
USF-CSE
Tampa, FL


On Tue, Mar 24, 2020 at 1:41 PM Giacomo Travaglini 
mailto:giacomo.travagl...@arm.com>> wrote:
Hi Rubel,

You could use config.ini, but you can generate a better visual representation 
by installing pydot.
Then when you run your simulation, you would generate a representation of your 
system in:

m5out/config.dot.pdf

or

m5out/config.dot.svg

This is definitely the option you are looking for

Giacomo


From: gem5-users 
mailto:gem5-users-boun...@gem5.org>> On Behalf Of 
Md Rubel Ahmed
Sent: 24 March 2020 17:13
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Subject: [gem5-users] How to get the high-level architectural view of the 
system I am simulating?

Hi all,
Lets say I am using the following command to simulate a system on gem5:

build/X86/gem5.opt configs/example/se.py 
--cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU 
--l1d_size=64kB --l1i_size=16kB --caches

How can I get a high-level view/diagram of the system that is being simulated 
here? I am interested in knowing the architecture of the system on which the 
binary is being executed as sys-calls. For example, I assume this command runs 
the hello binary on a system that looks like the following:
[Image removed by sender.]

My assumption is L2 bus is implicit here, same as membus and mem_ctrl. Please 
advise me on how to interpret the command line architecture arguments to get 
the high-level view of the system, if possible with example.

Thank you,
Rubel Ahmed
USF-CSE
Tampa, FL
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Md Rubel Ahmed
Hi Giacomo,
I have installed pydot, can you elaborate a bit on how to get
config.dot.pdf?

Thanks,
*Rubel Ahmed*
*USF-CSE*
*Tampa, FL*


On Tue, Mar 24, 2020 at 1:41 PM Giacomo Travaglini <
giacomo.travagl...@arm.com> wrote:

> Hi Rubel,
>
>
>
> You could use config.ini, but you can generate a better *visual*
> representation by installing *pydot*.
>
> Then when you run your simulation, you would generate a representation of
> your system in:
>
>
>
> m5out/config.dot.pdf
>
>
>
> or
>
>
>
> m5out/config.dot.svg
>
>
>
> This is definitely the option you are looking for
>
>
>
> Giacomo
>
>
>
>
>
> *From:* gem5-users  *On Behalf Of *Md Rubel
> Ahmed
> *Sent:* 24 March 2020 17:13
> *To:* gem5 users mailing list 
> *Subject:* [gem5-users] How to get the high-level architectural view of
> the system I am simulating?
>
>
>
> Hi all,
>
> Lets say I am using the following command to simulate a system on gem5:
>
>
>
> build/X86/gem5.opt configs/example/se.py 
> --cmd=tests/test-progs/hello/bin/x86/linux/hello
> --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches
>
>
>
> How can I get a high-level view/diagram of the system that is being
> simulated here? *I am interested in knowing the architecture of the
> system on which the binary is being executed as sys-calls.* For example,
> I assume this command runs the hello binary on a system that looks like the
> following:
>
>
>
>
>
> My assumption is L2 bus is implicit here, same as membus and mem_ctrl.
> Please advise me on how to interpret the command line *architecture
> arguments* to get the high-level view of the system, if possible with
> example.
>
>
>
> Thank you,
>
> *Rubel Ahmed*
>
> *USF-CSE*
>
> *Tampa, FL*
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Giacomo Travaglini
Hi Rubel,

You could use config.ini, but you can generate a better visual representation 
by installing pydot.
Then when you run your simulation, you would generate a representation of your 
system in:

m5out/config.dot.pdf

or

m5out/config.dot.svg

This is definitely the option you are looking for

Giacomo


From: gem5-users  On Behalf Of Md Rubel Ahmed
Sent: 24 March 2020 17:13
To: gem5 users mailing list 
Subject: [gem5-users] How to get the high-level architectural view of the 
system I am simulating?

Hi all,
Lets say I am using the following command to simulate a system on gem5:

build/X86/gem5.opt configs/example/se.py 
--cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU 
--l1d_size=64kB --l1i_size=16kB --caches

How can I get a high-level view/diagram of the system that is being simulated 
here? I am interested in knowing the architecture of the system on which the 
binary is being executed as sys-calls. For example, I assume this command runs 
the hello binary on a system that looks like the following:
[https://lh4.googleusercontent.com/fhWNRX3SDBb9eT5k4Fj7_WOknHmEIeRm_kE1C4AfQuqIdTzUWKEoGSNaiqOzCSo9Wz6pLOAcCNk2ixiDV78pJYqJjutGH90Y8LtkHBzJk8aw7dfWtDUiF3bGhF-2YE_HBk9x6aAx3lc]

My assumption is L2 bus is implicit here, same as membus and mem_ctrl. Please 
advise me on how to interpret the command line architecture arguments to get 
the high-level view of the system, if possible with example.

Thank you,
Rubel Ahmed
USF-CSE
Tampa, FL
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Muhammet Abdullah Soytürk
Hi Rubel,

The command you execute does not simulate the system that you put in the
image. There is no l2 bus and l2 cache in the system that you simulate. If
you want to have l2 cache you need to add --l2cache as an argument to the
script.

In order to see what's on the system you execute, you should check m5out/
*config.ini* after you make the simulation.

To see all the options you have, you can run build/X86/gem5.opt
configs/example/se.py --help

Cheers,
Muhammet

--

Md Rubel Ahmed , 24 Mar 2020 Sal, 20:13
tarihinde şunu yazdı:

> Hi all,
> Lets say I am using the following command to simulate a system on gem5:
>
> build/X86/gem5.opt configs/example/se.py 
> --cmd=tests/test-progs/hello/bin/x86/linux/hello
> --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches
>
> How can I get a high-level view/diagram of the system that is being
> simulated here? *I am interested in knowing the architecture of the
> system on which the binary is being executed as sys-calls.* For example,
> I assume this command runs the hello binary on a system that looks like the
> following:
>
>
> My assumption is L2 bus is implicit here, same as membus and mem_ctrl.
> Please advise me on how to interpret the command line *architecture
> arguments* to get the high-level view of the system, if possible with
> example.
>
> Thank you,
> *Rubel Ahmed*
> *USF-CSE*
> *Tampa, FL*
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Abhishek Singh
Hi,
Most accurate way is to read the code.
O3CPU does have http://www.m5sim.org/Visualization but it will not give the
diagram below.

Also, learning gem5 tutorial is a great starting point to make your own
architecture or the architecture shown below

On Tue, Mar 24, 2020 at 1:13 PM Md Rubel Ahmed 
wrote:

> Hi all,
> Lets say I am using the following command to simulate a system on gem5:
>
> build/X86/gem5.opt configs/example/se.py 
> --cmd=tests/test-progs/hello/bin/x86/linux/hello
> --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches
>
> How can I get a high-level view/diagram of the system that is being
> simulated here? *I am interested in knowing the architecture of the
> system on which the binary is being executed as sys-calls.* For example,
> I assume this command runs the hello binary on a system that looks like the
> following:
>
>
> My assumption is L2 bus is implicit here, same as membus and mem_ctrl.
> Please advise me on how to interpret the command line *architecture
> arguments* to get the high-level view of the system, if possible with
> example.
>
> Thank you,
> *Rubel Ahmed*
> *USF-CSE*
> *Tampa, FL*
> ___
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] How to get the high-level architectural view of the system I am simulating?

2020-03-24 Thread Md Rubel Ahmed
Hi all,
Lets say I am using the following command to simulate a system on gem5:

build/X86/gem5.opt configs/example/se.py
--cmd=tests/test-progs/hello/bin/x86/linux/hello
--cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches

How can I get a high-level view/diagram of the system that is being
simulated here? *I am interested in knowing the architecture of the system
on which the binary is being executed as sys-calls.* For example, I assume
this command runs the hello binary on a system that looks like the
following:


My assumption is L2 bus is implicit here, same as membus and mem_ctrl.
Please advise me on how to interpret the command line *architecture
arguments* to get the high-level view of the system, if possible with
example.

Thank you,
*Rubel Ahmed*
*USF-CSE*
*Tampa, FL*
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Problem passing a SimObject as Parameter

2020-03-24 Thread Francisco Carlos
Thank you for your reply, Gabe.

Your answer solves my problem. The error was in the import statement, where I 
used the object name instead of the python file name.

Thanks a lot. I was stuck in this problem.

--
Francisco Carlos Silva Junior
Phd Student


De: gem5-users  em nome de Gabe Black 

Enviado: segunda-feira, 23 de março de 2020 18:05
Para: gem5 users mailing list 
Assunto: Re: [gem5-users] Problem passing a SimObject as Parameter

Gabe

On Mon, Mar 23, 2020 at 2:05 PM Gabe Black 
mailto:gabebl...@google.com>> wrote:
Hi Fransisco. When creating a parameter, you use Param.{object type name}, when 
creating an instance of an object to fill a parameter, you use 
m5.objects.{etc}. Assuming you're doing that part right, then you need to make 
sure the name you're using in m5.objects.{etc} is correct. The first part 
should be the name of the file you passed to scons's SimObject(). For instance, 
if you have an object of type Bar in a file called Foo.py, you would import 
m5.objects.Foo.Bar. Frequently the name of the file and the name of the object 
are the same since it may be the primary or only object defined in that file, 
but it doesn't have to be.

Gane

On Mon, Mar 23, 2020 at 1:58 PM Muhammet Abdullah Soytürk 
mailto:muhammetabdullahsoyt...@gmail.com>> 
wrote:
Hi Francisco,

Apparently gem5 cannot register your object to object list. With the 
information you gave, I can only guess.

- Did you register your object in the SConscript file?
- Did you recompile gem5.opt after you created your SimObject? While you 
compiling the gem5 binary with scons build/RISCV/gem5.opt, you should be able 
to see your object's name in the list of compiled objects.

Best,
Muhammet

Francisco Carlos mailto:juninho.u...@hotmail.com>>, 
23 Mar 2020 Pzt, 23:47 tarihinde şunu yazdı:
I am facing a problem in passing a simObject as Parameter to DerivO3Cpu 
simObject . I create a simObject named DtmObject and it appears when I run the 
command for listing the simObjects:
./build/RISCV/gem5.opt --list-sim-objects.

However, when I try to import (from m5.objects.DtmObject import *) to use it as 
a parameter in other SimObject, in the O3CPU.py file to be more specific, I get 
the following error: ImportError: No module named DtmObject.

Am I missing something? I followed the tutorial in the gem5 page 
(http://www.gem5.org/documentation/learning_gem5/part2/parameters/) and still, 
I can't figure out what is going on.

Thanks in advance.

--
Francisco Carlos Silva Junior
Phd Student at University of Brasilia
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users