Hi Malek, I did just that and it works. Here is my output;
Cache Stats: system.ruby.l2_cntrl0.L2cacheMemory system.ruby.l2_cntrl0.L2cacheMemory_total_accesses: 189860 system.ruby.l2_cntrl0.L2cacheMemory_total_demand_accesses: 189860 system.ruby.l2_cntrl0.L2cacheMemory_total_hits: 0 system.ruby.l2_cntrl0.L2cacheMemory_total_demand_hits: 0 system.ruby.l2_cntrl0.L2cacheMemory_total_misses: 189860 system.ruby.l2_cntrl0.L2cacheMemory_total_demand_misses: 189860 system.ruby.l2_cntrl0.L2cacheMemory_total_prefetches: 0 system.ruby.l2_cntrl0.L2cacheMemory_total_sw_prefetches: 0 system.ruby.l2_cntrl0.L2cacheMemory_total_hw_prefetches: 0 system.ruby.l2_cntrl0.L2cacheMemory_miss_rate: 100% system.ruby.l2_cntrl0.L2cacheMemory_demand_miss_rate: 100% system.ruby.l2_cntrl0.L2cacheMemory_request_type_GETS: 24.4054% system.ruby.l2_cntrl0.L2cacheMemory_request_type_GET_INSTR: 8.69535% system.ruby.l2_cntrl0.L2cacheMemory_request_type_GETX: 66.8993% system.ruby.l2_cntrl0.L2cacheMemory_access_mode_type_Supervisor: 189860 100% Thanks a lot. Mehmet 2013/2/27 mehmet basaran <[email protected]> > Hi Malek, > > Thanks for the lightning fast response. So using my command line as it is, > I cannot test with ruby. > > First way (Incorrect - Not working) > -------------------------------------------------------------------- > > I tried to change protocol from build/variables/X86 file > > from => PROTOCOL = 'MI_example' > to => PROTOCOL = 'MESI_CMP_directory' > > and it didn't work out > > > Second way (correct ... I suppose) > -------------------------------------------------------------------- > and I checked out the command you specified in the review-board > > ./util/regress --builds=ALPHA_MESI_CMP_directory,ALPHA_MOESI_CMP_directory > --modes=se,fs --compile-variants=opt > > > this basically does the same thing right? Instead of tweaking with one > build, you create 2 seperate builds and each have its own variable file > configured accordingly. And these configurations are also predefined under > build_opts. I think I can specify add extra files under built_opts and > create different builds. > > *build_opts/X86_MESI_CMP_directory* > > TARGET_ISA = 'x86' > CPU_MODELS = 'TimingSimpleCPU,O3CPU' > PROTOCOL = 'MESI_CMP_directory' > > *build_opts/X86_MOESI_CMP_directory* > > TARGET_ISA = 'x86' > CPU_MODELS = 'TimingSimpleCPU,O3CPU' > PROTOCOL = 'MOESI_CMP_directory' > > Then use your command; > > ./util/regress --builds=X86_MESI_CMP_directory,X86_MOESI_CMP_directory > --modes=se,fs --compile-variants=opt > > > and finally; > > build/X86_MESI_CMP_directory/gem5.opt configs/example/ruby_fs.py > --kernel="x86_64-vmlinux-2.6.22.9" --script="boot/queens.rcS" --caches > --l2cache > > --------------------------------------------------------------------------- > > In conclusion, gem5 needs to build from scratch to enable these cache > coherence protocols. Simply changing build/variables/X86 like the first > method will not do any difference, since this file is just a mere copy > after first compilation. And if I compile second time using the same > command, gem5 will check this folder and use build/variables/X86 (not sure > about it tough). > > I think this is it, right? I will also come back to confirm if it works. > > Sources; > http://www.mail-archive.com/[email protected]/msg02950.html > http://www.mail-archive.com/[email protected]/msg00352.html > > > 2013/2/27 Malek Musleh <[email protected]> > >> Hi mehmet, >> >> You shouldn't need to do anything to do anything additional from the >> command line, although looking at your command line, there is a >> mistake: >> >> You are running the classic memory model (the patch is for the ruby >> memory model). You need to run ./builld/X86_MOESI_CMP_directory, or >> ./build/X86_MESI_CMP_directory. If you look at the telnet output >> (m5term 3456) I'm betting that the simulation did not actually run >> (since your mixing ruby_fs.py with classic memory model). >> >> Look at the timestamp of the stats file also. >> >> Malek >> >> On Tue, Feb 26, 2013 at 5:25 PM, mehmet basaran >> <[email protected]> wrote: >> > Hi Malek >> > >> > It does apply cleanly on dev repo. However, I don't know how to get it >> work. >> > Can you write an example command for MESI protocol? And how do we >> decide on >> > using particular protocol in the first place? Do I have to state it >> > explicitly in command, or it is decided in some code file? The command >> line >> > I used is; >> > >> > build/X86/gem5.opt configs/example/ruby_fs.py >> > --kernel="x86_64-vmlinux-2.6.22.9" --script="boot/queens.rcS" --caches >> > --l2cache >> > >> > this gives the same output in ruby.stats when I hadn't applied your >> patch. >> > How should I change it? >> > >> > By the way, I checked out the changes you made in the code and it really >> > helped me get more into it. So thanks a lot. >> > >> > Mehmet >> > >> > >> > 2013/2/15 Malek Musleh <[email protected]> >> >> >> >> Hi mehmet, >> >> >> >> I have posted a patch on the review board that does this: >> >> >> >> http://reviews.gem5.org/r/1467/diff/ >> >> >> >> If I recall, I only apply it to the MOESI_CMP, MESI protocols. You can >> >> take a look, or apply the diff (not sure if it will apply cleanly on >> >> the dev repo). >> >> >> >> Malek >> >> >> >> On Fri, Feb 15, 2013 at 9:26 AM, mehmet basaran >> >> <[email protected]> wrote: >> >> > Hi all, >> >> > >> >> > I am trying to get the cache miss & hit ratio counts. I started in se >> >> > mode, >> >> > and observed that by using normal caches in config files, I always >> get >> >> > miss_rate="1" >> >> > >> >> > So I decided to use ruby_fs mode instead. But ruby.stats file doesn't >> >> > give >> >> > me a miss ratio or hit count. It seems to me that I cannot get miss >> & >> >> > hit >> >> > counts correct whether I use ruby or not. Is this the case? Does gem5 >> >> > has >> >> > built in mechanism for getting cache miss&hit rates? (without >> modifying >> >> > the >> >> > code) >> >> > >> >> > In addition I have couple of concepts I need to know in ruby.stats >> file; >> >> > 1. All Non-Zero Cycle Demand Cache Accesses >> >> > 2. ruby_cycles_executed: [ 10904501813 ] >> >> > 3. "miss_latency_Locked_RMW_Write_L1Cache: [binsize: 1 max: 3 count: >> >> > 1374 >> >> > average: 3 | standard deviation: 0 | 0 0 0 1374 ]" >> >> > what is binsize here ? >> >> > >> >> > Do we have any documentation about the content of ruby.stats file? >> >> > >> >> > My commands; >> >> > >> >> > For se: >> >> > ./build/X86/gem5.opt --debug-flags=Cache --trace-file=my_trace.out >> >> > configs/example/se.py --caches --l2cache --cpu-type=timing -c >> >> > tests/test-progs/queens/bin/x86/linux/queens --options="-c 8" >> >> > >> >> > For fs: >> >> > ./build/X86/gem5.fast configs/example/ruby_fs.py --num-cpus="8" >> >> > --kernel="x86_64-vmlinux-2.6.22.9" --l1i_size="32kB" >> --l1d_size="32kB" >> >> > --l2_size="8MB" --num-l2caches="8" --topology="Crossbar" >> >> > --cpu-type="timing" >> >> > --script="boot/my_script.rcS" >> >> > >> >> > Thanks in advance. >> >> > >> >> > _______________________________________________ >> >> > 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 >> > >> > >> > >> > _______________________________________________ >> > 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 >> > >
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
