[gem5-users] Re: Why it has to specify one more CPU for gem5 to run a multi-thread program in SE mode when using RUBY caches?

2021-05-07 Thread Taiyu Zhou via gem5-users
The program from 
“https://www.gem5.org/documentation/learning_gem5/part3/running/“ saying that 
“(note: as of this writing there is a bug in gem5 preventing this code from 
executing).”

Is this bug exists in every multi-thread program running in gem5 with Ruby? 
Does anyone know what the bug is? And how to fix it?___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Why it has to specify one more CPU for gem5 to run a multi-thread program in SE mode when using RUBY caches?

2021-05-07 Thread Taiyu Zhou via gem5-users
Hi guys,

My gem5 version is the newest v21.0.
I build gem5 with command “scons build/X86_MSI/gem5.debug --default=X86 
PROTOCOL=MESI_Three_Level SLICC_HTML=True”

And I write a simple multi-thread program.
#define THREAD 16
uint64_t sharei[8*THREAD]; //1 cachelines each thread

void work(void* arg){
int id = *(int*)arg;
int i=1;
int status=0;
if(status==0){
sharei[0]=id;
while(i-->0){
;
}
}else{
printf("transaction conflict go to fallback path\n");
}
printf("id=%d sharei=%ld status:%d\n",id,sharei[0],status);
}
int main(int argc, char *argv[]){
pthread_t t[THREAD];
int tid[THREAD];
for(int i=0;ihttps://www.gem5.org/documentation/learning_gem5/part3/running/“. But the  
trick that add one more cpu does not work in this program. The gem5 reports 
that “fatal: Ruby functional read failed for address 0x160928
Memory Usage: 954460 KBytes"

Anyone know what is going on? Could give me some advice to debug?

Thanks!

___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] does KVMCPU be supported on aarch64 in SE mode?

2021-05-07 Thread Liyichao via gem5-users
Hi All:
 I would like to use KVMCPU in SE mode on aarch64 so that I can use 
-fast-forward more quickly to fastforward non-interested instrutions, but I 
have seen that "fatal("KvmCPU can only be used in SE mode with x86")" in se.py, 
so any plans to support it on aarch64?


___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] ruby_mem_test

2021-05-07 Thread Santhosh Srinath via gem5-users
I am trying to run the example ruby_mem_test config and I am hitting the
following panic:
panic: system.cpu: read of 40fac0 (blk 40fac0) @ cycle 11 returns b9,
expected 0
Memory Usage: 672492 KBytes
Program aborted at tick 11

cmd: ./build/NULL/gem5.debug  configs/example/ruby_mem_test.py -m
100

Any ideas? mem_test runs fine.

Thanks,
Santhosh
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: When using clwb “panic: Tried to write unmapped address” in Gem5 X86

2021-05-07 Thread Jason Lowe-Power via gem5-users
Hi Arun,

Two quick ideas...

1. The address 0x56318e53ed40 looks suspect. That's not on the stack, in
the OS, on the heap... I think it's probably a bad address. Most likely
some other instruction before this one is causing a bad address to be
emitted.

2. CLWB/CLFLUSH/CLFLUSHOPT may or may not be implemented in the core model
and in the memory system you're using.  I'd take a look at the Exec trace
to see exactly what microops are executing and then also trace the
cache/memory system to make sure the effects are what you expect.

Cheers,
Jason

On Mon, May 3, 2021 at 8:16 AM Arun Kavumkal via gem5-users <
gem5-users@gem5.org> wrote:

> Hi,
>
> I am running a linked list with each node having *512Bytes* allocated
> using malloc. I am then flushing cache line aligned addresses (using
> *clwb*) from this 512Bytes to measure the flush overhead. The benchmark
> works fine in Linux X86 system. But while running in gem5, I am getting the
> following error. Can someone please point me to possible issue. The gem5  I
> am using is an earlier version.
>
> Gem5 command :
>
> *gem5/build/X86/gem5.opt gem5/configs/example/se.py --cmd=$command
> --options="$options" --l1d-hwp-type=StridePrefetcher
> --l2-hwp-type=BOPPrefetcher --cpu-type=DerivO3CPU --mem-type=DDR4_2400_16x4
> --caches --l2cache --mem-size=10GB*
>
> $command and $options takes benchmark values
>
> The benchmark works fine with other flush variants, ie *clflush* and
> *clflushopt*
>
> Thanks a lot, I am trying to figure out the issue from couple of days, but
> could not yet
>
> panic: Tried to write unmapped address 0x56318e53ed40.
> PC: 0x20ee, Instr:   CLWB_M : clwb   %ctrl155, DS:[rcx]
> Memory Usage: 10697132 KBytes
> Program aborted at tick 225239086116
> --- BEGIN LIBC BACKTRACE ---
> gem5/build/X86/gem5.opt(_Z15print_backtracev+0x2c)[0x563187fada8c]
> gem5/build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x563187fbfb2a]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x128a0)[0x7f8ba9c998a0]
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f8ba8275f47]
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f8ba82778b1]
> gem5/build/X86/gem5.opt(+0x51809f)[0x5631875da09f]
> gem5/build/X86/gem5.opt(_ZN6X86ISA9PageFault6invokeEP13ThreadContextRK14RefCountingPtrI10StaticInstE+0x57d)[0x56318780562d]
> gem5/build/X86/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE10commitHeadERK14RefCountingPtrI13BaseO3DynInstIS0_EEj+0x8ec)[0x563187daafac]
> gem5/build/X86/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE11commitInstsEv+0x529)[0x563187dabac9]
> gem5/build/X86/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE6commitEv+0xaf0)[0x563187dad180]
> gem5/build/X86/gem5.opt(_ZN13DefaultCommitI9O3CPUImplE4tickEv+0xd8)[0x563187dade48]
> gem5/build/X86/gem5.opt(_ZN9FullO3CPUI9O3CPUImplE4tickEv+0x150)[0x563187dbdef0]
> gem5/build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0xd9)[0x563187fb5c59]
> gem5/build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x87)[0x563187fd6097]
> gem5/build/X86/gem5.opt(_Z8simulatem+0xcba)[0x563187fd70ea]
> gem5/build/X86/gem5.opt(+0xdb6e71)[0x563187e78e71]
> gem5/build/X86/gem5.opt(+0x6226ce)[0x5631876e46ce]
>
>
>
> https://stackoverflow.com/questions/67371156/when-using-clwb-panic-tried-to-write-unmapped-address-in-gem5-x86
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Statistics for TBE Table in Ruby

2021-05-07 Thread VEDIKA JITENDRA KULKARNI via gem5-users
Hello,

I wanted to get the Avg TBE Size as a statistic for each of L1, L2, Dir and DMA 
for all cores.
Please help me with some pointers as to where I should add code for TBE related 
statistics,

I tried to get hints by looking at the L1Cache_Controller.cc file generated by 
build.

I also tried adding public variables to TBE class like cntl1cache for counter 
and totall1cache to
sum up TBE size each time TBE gets allocated, so that  totall1cache / 
cntl1cache gives the
average, but the build gives error saying "trying to increment read-only 
variables".

Regards,
Vedika.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Peak Bandwidth in Garnet

2021-05-07 Thread Arash Azizi via gem5-users
I am simulating a 4x4 Mesh_XY (16 nodes) with neighbor traffic pattern and 
following parameters:

--cacheline_size=512 --sim-cycles=100  --sys-clock=1GHz --injectionrate=1.0 
--ruby-clock=1GHz --inj-vnet=2 --routing-algorithm=1 --link-width-bits=256 
--link-latency=1 --router-latency=1 --vcs-per-vnet=4 --buffers-per-data-vc=3 

Also, I set the clock domain of links and routers to 1 GHz. With neighbor 
traffic pattern and 1.0 as injection rate, I assume each node is sending a flit 
to its neighbor in each cycle. Thus, in a steady-state where the network 
pipeline is filled, each node should receive a flit from its neighbor. 
Therefore, we should have an aggregate bandwidth around this number 16x256x10^9 
bit per second(#nodes*link-width*clock)=119.2GB/s. However, the total received 
flits reported by Garnet is 1984 flits for 10^6 simulation cycles(10^-6 
seconds) which lead to 1984x256x10^6 bit per second=59.12 GB/s bandwidth. Does 
someone have an idea why there is a large gap between the peak bandwidth and 
reported bandwidth in Garnet?
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] no committedInsts in stats.txt with fastforward option in SE mode

2021-05-07 Thread Liyichao via gem5-users
Hi All:
   When I simulate with the fastforward and maxinsts parameters in SE mod, I 
only see sim_insts=my fastforward instructions in stats.txt after the maximum 
number of instructions exits. The value of committedInsts is not always 0 in 
switch_cpu.committedInsts, but if fastforward is removed, the value of 
committedInsts is equal to the value of maxinsts.Why?

 My cmd is : ./build/ARM/gem5.opt configs/example/se.py 
--cpu-type=O3_ARM_1620 --cpu-clock=2.6GHz --sys-clock=2.6GHz --caches 
--l1d_size=64kB --l1i_size=64kB --l2cache --l2_size=32MB --mem-size=32GB 
--l3cache --nvmain-config=./nvmain_public/Config/DRAM_2933_64GB_2CH.config 
--num-cpus=2 --fast-forward=1000 -I 500 -c "./lat_mem_rd;./lat_mem_rd" 
-o "-t 16 4096;-t 16 4096"



gem5 version 20.0.0.3
gem5 compiled May  7 2021 20:22:39
gem5 started May  7 2021 20:45:45
gem5 executing on ubuntu-kunpeng920-4, pid 393218
command line: ./build/ARM/gem5.opt configs/example/se.py --cpu-type=O3_ARM_1620 
--cpu-clock=2.6GHz --sys-clock=2.6GHz --caches --l1d_size=64kB --l1i_size=64kB 
--l2cache --l2_size=32MB --mem-size=32GB --l3cache 
--nvmain-config=./nvmain_public/Config/DRAM_2933_64GB_2CH.config --num-cpus=2 
--fast-forward=1000 -I 500 -c './lat_mem_rd;./lat_mem_rd' -o '-t 16 
4096;-t 16 4096'

Global frequency set at 1 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (32768 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
0: system.remote_gdb: listening for remote gdb on port 7001
Switch at instruction count:1000
info: Entering event queue @ 0.  Starting simulation...
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
"stride=4096
"stride=4096
Switched CPUS @ tick 3850626395
switching cpus
warn: PowerState: Already in the requested power state, request ignored
warn: User mode does not have SPSR
warn: User mode does not have SPSR
warn: User mode does not have SPSR
warn: User mode does not have SPSR
 REAL SIMULATION 
info: Entering event queue @ 3850626395.  Starting simulation...
Exiting @ tick 3850626395 because a thread reached the max instruction count
gem5 End May  7 2021 20:46:12



final_tick 3850626395   # 
Number of ticks from beginning of simulation (restored from checkpoints and 
never reset)
host_inst_rate  761286818   # 
Simulator instruction rate (inst/s)
host_mem_usage   34016560   # 
Number of bytes of host memory used
host_op_rate757203868   # 
Simulator op (including micro ops) rate (op/s)
host_seconds 0.03   # 
Real time elapsed on the host
host_tick_rate  0   # 
Simulator tick rate (ticks/s)
sim_freq 1   # 
Frequency of simulated ticks
sim_insts2002   # 
Number of instructions simulated
sim_ops  20003100   # 
Number of ops (including micro ops) simulated
sim_seconds 0   # 
Number of seconds simulated
sim_ticks   0

system.cpu0.committedInsts  0   # 
Number of instructions committed
system.cpu0.committedOps0   # 
Number of ops (including micro ops) committed

system.cpu1.committedInsts  0   # 
Number of instructions committed
system.cpu1.committedOps0   # 
Number of ops (including micro ops) committed

system.switch_cpus0.commit.committedInsts0   # 
Number of instructions committed
system.switch_cpus0.commit.committedOps 0   # 
Number of ops (including micro ops) committed

system.switch_cpus1.commit.committedInsts0   # 
Number of instructions committed
system.switch_cpus1.commit.committedOps 0   # 
Number of ops (including micro ops) committed



___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Ruby in Arm?

2021-05-07 Thread Giacomo Travaglini via gem5-users
Hi Adrian,

> -Original Message-
> From: adrian via gem5-users 
> Sent: 07 May 2021 09:36
> To: gem5-users@gem5.org
> Cc: adrian.barre...@gmail.com
> Subject: [gem5-users] Ruby in Arm?
>
> Hi guys,
>
> I've always used the classic memory model when running timing simulations
> using Arm, but I'd like to run some experiments using Ruby.
> I've seen some people using it and asking questions about it,  but my current
> version of gem5 shows this warning when enabling it:
>
> "warn: You are trying to use Ruby on ARM, which is not working properly
> yet."

That is a legacy warning from fs.py which has been removed in develop branch by:

https://gem5-review.googlesource.com/c/public/gem5/+/44509

And will be part of gem5 21.1

>
> Can anybody confirm me I can use it or how to properly use it?
>
> I'm employing this command:
>
> "./build/ARM/gem5.opt -d m5out/foo configs/example/fs.py --cpu-
> type=DerivO3CPU --ruby --num-cpus=4 --caches --l2cache --kernel
> binaries/vmlinux.arm64 --restore-with-cpu=DerivO3CPU --dtb
> binaries/armv8_gem5_v1_4cpu.dtb --mem-size=2GB --disk-image
> disks/gem5-ubuntu16.04-aarch64.img -r 1"

That seems a valid command line.
FYI I have added a simpler ARM ruby script in develop to use in lieu of fs.py:

configs/example/arm/ruby_fs.py

That will be also part of 21.1

Kind Regards

Giacomo

>
> Thanks a lot,
> Adrián
> ___
> gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an
> email to gem5-users-
> le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
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
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Ruby in Arm?

2021-05-07 Thread adrian via gem5-users
Hi guys,

I've always used the classic memory model when running timing simulations using 
Arm, but I'd like to run some experiments using Ruby.
I've seen some people using it and asking questions about it,  but my current 
version of gem5 shows this warning when enabling it:

"warn: You are trying to use Ruby on ARM, which is not working properly yet."

Can anybody confirm me I can use it or how to properly use it?

I'm employing this command:

"./build/ARM/gem5.opt -d m5out/foo configs/example/fs.py --cpu-type=DerivO3CPU 
--ruby --num-cpus=4 --caches --l2cache --kernel binaries/vmlinux.arm64 
--restore-with-cpu=DerivO3CPU --dtb binaries/armv8_gem5_v1_4cpu.dtb 
--mem-size=2GB --disk-image disks/gem5-ubuntu16.04-aarch64.img -r 1"

Thanks a lot,
Adrián
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s