[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?
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?
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?
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
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
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
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
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
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?
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?
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