Re: [gem5-users] Latency_input ARM FS

2012-08-27 Thread Ali chaker
Thank you Ali.

Regards,
Ali C.
2012/8/25 Ali Saidi 

> **
>
> Hi Ali,
>
>
>
> Yes, the hit latency is used for both. I'm going to post a patch soon that
> provides a the ability to confider a different latency for the response
> path.
>
>
>
> Thanks,
>
> Ali
>
>
>
> On 24.08.2012 04:47, Ali chaker wrote:
>
> Hi,
>
>
>
> I'm running bbench in gem5 with this configuration:
>
>
>
> Dcache latency: 2.5 ns
>
> L2 latency: 15.8 ns
>
> Mem Latency: 100 ns
>
>
>
> and I've the following statistics:
>
>
>
> *system.l2.overall_avg_mshr_miss_latency::cpu.data 116713.648032*
>
> *system.l2.overall_avg_miss_latency::cpu.data 136045.358298*
>
> *
> *
>
> It seems like hit latency is used in access and response. So *
> avg_miss_latency*= 15.8**2*+2.5+2(buses latency) +100=136.1? Is it right?
>
>
>
>
>
> Thanks in advance
>
>
>
> Regards,
>
> Ali Chaker
>
>
>
>
>
>
> ___
> 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] Cycles Statistics ARM FS

2012-08-27 Thread Ali chaker
Hi,
I'm running bbench in gem5 with 2 cores and I've the following statistics:

*system.cpu1.numCycles* 5735434319

*system.cpu1.idleCycles*   1841336037

*system.cpu1.quiesceCycles*5027490762


Why the idleCycles + quiesceCycles > numCycles ?


Regards,

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

[gem5-users] FS + SMT still not possible?

2012-08-27 Thread Stijn Eyerman

Hi all,

Some time ago, I found out that it is not possible to simulate a core 
supporting SMT in FS mode using gem5 (m5 at that time). Is this still 
the case in the current version? If so, is this something that is taken 
care of? And if not, can someone give a clue how to enable SMT in FS 
mode, and an estimate how much work/time/experience this requires?


Alternatively, has someone been able to run the PARSEC benchmarks in SE 
mode? If so, how is OS scheduling modeled? Is there also something 
similar to 'quiesce' in FS mode (i.e., scheduling out threads)?


Thanks in advance,
Stijn

--
dr. ir. Stijn Eyerman
Ghent University
ELIS department
Sint-Pietersnieuwstraat 41
9000 Gent
Belgium
+32 9 264 3456
http://www.elis.ugent.be/~seyerman

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


Re: [gem5-users] Implementation of producer consumer problem

2012-08-27 Thread Nilay Vaish

On Mon, 27 Aug 2012, vishal rawtiya wrote:


Hello!
  I am sorry for spamming similar mail at both lists.

Of course  I know about the threads but here at
http://gem5.org/Multiprogrammed_workloads I found that SE mode has no
thread scheduling.
So will it be okay to use pthreads in SE mode to create my application.
I can not use FS mode because it invloves Operating System.



You can use pthreads in SE mode, but you would need to link your 
application with m5threads library.


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


Re: [gem5-users] segmentation fault when creating checkpoints for X86_FS+ruby

2012-08-27 Thread Cookie
Hi Nilay,

I used "$scons build/X86/gem5.fast RUBY=True PROTOCOL=MOESI_hammer " to
compile gem5 and ran it with "$build/X86/m5.debug -d ruby-output
configs/example/ruby_fs.py --kernel=x86_64-vmlinux-2.6.22.9.smp
--script=configs/boot/mcf.rcS --cpu-type=detailed --ruby
--checkpoint-dir=checkpoint-dir --take-checkpoints 1000,10"

I noticed that when I set cpu-type as detailed, it incurred segmentation
fault. But if it was timing, it looked fine. But I am still testing it. Can
you please tell me if  x86+ruby supports detailed cpu-type? I will let you
know if I make any progress.


Thanks,
Yingying

On Sat, Aug 25, 2012 at 6:29 PM, Nilay Vaish  wrote:

> On Fri, 24 Aug 2012, Cookie wrote:
>
>  Hi Nilay,
>>
>> Thank you for your reply. I did debug it with gdb and it reported the
>> assertion "assert(**isDeadlockEventScheduled() == false)" in
>> mem/ruby/system/RubyPort.cc was failed. I've no idea how to fix it but
>> just
>> commented this statement and compiled and ran again. It reported
>> segmentation fault again because "build/X86/python/swig/**pyevent.cc:84:
>> void
>> cleanupCountedDrain(Event*): Assertion `event->getCount() == 0' failed."
>>
>
> I would not be able to debug unless I can reproduce the situation. Just
> reading the code did made feel that something is incorrect.
>
>
>
>> I also tried to restore the checkpoints (they seemed to be created, at
>> least there were checkpoint files in the directory) using the following
>> command: build/X86/m5.debug -d ruby-output configs/example/ruby_fs.py
>> --kernel=x86_64-vmlinux-2.6.**22.9.smp --script=configs/boot/mcf.rcS
>> --cpu-type=detailed --caches --ruby -r 4.
>> But it failed and reported as:
>> --
>> File "/home/ytian/Documents/Gem5/**configs/common/Simulation.py", line
>> 70,
>> in setCPUClass
>>class TmpClass(AtomicSimpleCPU): pass
>> NameError: global name 'AtomicSimpleCPU' is not defined
>> 
>> So I removed the option "--cpu-type" and used
>> "--restore-with-cpu=detailed"
>> to restore the checkpoint again. It reported as:
>> ---
>>  File "/home/ytian/Documents/Gem5/**configs/common/Simulation.py", line
>> 45,
>> in setCPUClass
>>class TmpClass(TimingSimpleCPU): pass
>> NameError: global name 'TimingSimpleCPU' is not defined
>> 
>>
>> I think both of the objects are defined. So I wonder if there is something
>> wrong with the steps/options which I used to compile/run the gem5 since I
>> didn't make any changes to the source code. Could you please help me fix
>> this problem? Thank you for your help.
>>
>>
>>
> What command and configuration file did you use for compilation?
>
> --
> Nilay
>
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Question about running the Gem5

2012-08-27 Thread Grace Lee
Hi,

 

This is my first time to use the GEM5.

I want to run the Aplash-2 Benchmarks on gem5 on Ubuntu in full system mode.

I downloaded files from gem5 website and installed on Ubuntu(12.04 Precise).

i)Gem5-stable.tar.bz2

ii)   M5_system_2.0b3.tar.bz2

 

Also downloaded and installed required software shown as below:

i) Python: 2.4+, it may need to install “python-dev” 

ii)   Scons: 0.98.1+, you can update it with apt-get (2.0.1)


iii)  SWIG: 1.3.31+, you can update it with apt-get (1.3.40)


 

To build gem5, I used below command:

Ø  scons build/ALPHA_FS/gem5.opt

(or)

Ø  scons build/ALPHA_SE/m5.opt

 

but both didn’t’ work. There was an error message that says that 

“ cannot find variables files
/pgks/gem5/gem5-stable/build/variables/ALPHA_SE or default file(s) /
pgks/gem5/gem5-stable/build/variables/ALPHA_SE”

 

I was able to build gem5 with ALPHA.

(> scons build/ALPHA/gem5.opt)

 

However, if I want to run ALPHA_FS, what are the things I have to do to make
it work?

What is different between ‘ALPAH’ and ‘ALPHA_FS’ ?

Does the ‘ALPHA’ includes both ‘FS’ and ‘SE’ mode?

 

Thanks,

GL

 

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

Re: [gem5-users] FS + SMT still not possible?

2012-08-27 Thread Nilay Vaish

On Mon, 27 Aug 2012, Stijn Eyerman wrote:


Hi all,

Some time ago, I found out that it is not possible to simulate a core 
supporting SMT in FS mode using gem5 (m5 at that time). Is this still the 
case in the current version? If so, is this something that is taken care of?


This patch from Andrea Pellegrini supposedly fixes some problems with SMT
for x86 architecture, but it is yet to be checked in.

http://reviews.gem5.org/r/1281/

Certainly the mainline does not work correctly in SMT mode, and as far as 
I know, no one is working on it.



And if not, can someone give a clue how to enable SMT in FS mode, and an 
estimate how much work/time/experience this requires?


It might be that the above patch fixes everything that needs to be. I 
suggest that you try out the patch and then raise any issues on the 
mailing list.




Alternatively, has someone been able to run the PARSEC benchmarks in SE mode? 
If so, how is OS scheduling modeled? Is there also something similar to 
'quiesce' in FS mode (i.e., scheduling out threads)?




I think there are many users who are running PARSEC benchmarks in SE mode. 
There is no scheduling in SE mode. My understanding is that you need at 
least as many hardware contexts as the number of threads the application 
creates.


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


[gem5-users] 答复: 答复: ruby request latency and L1 miss rate

2012-08-27 Thread Xi Chen
Hi Nilay,

Thanks for the reply. 
I double checked ruby.stats file and there are statistics about number of
L1, L2 misses. But I went through ruby.stats several times and did not find
any number about cache accesses number or cache hit number, so I still
cannot get miss rate of the cache. Could you give me some clues? 

Thanks,
Xi  

-邮件原件-
发件人: Nilay Vaish [mailto:ni...@cs.wisc.edu] 
发送时间: Saturday, August 25, 2012 6:19 PM
收件人: Xi Chen
抄送: gem5-users@gem5.org
主题: Re: 答复: [gem5-users] ruby request latency and L1 miss rate

On Fri, 24 Aug 2012, Xi Chen wrote:

> Hi Nilay,
>
> Thanks for the explanation. I got the network latency. But I still have
> problem of getting L1 miss rate of each core. Could you give me some
clues?
>

Checkout ruby.stats file.

--
Nilay

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

[gem5-users] Are there some benchmarks that can run on gem5 with the X86 ISA in full system mode?

2012-08-27 Thread Weixing Ji
hi all,
  It seems all the benchmarks provided on the webpage run on gem5 with
the ALPHA ISA. Are there some benchmarks targeting x86-linux?
We have tried to compile and run SPLASH2 on gem5 with X86 ISA in full
system mode, but some benchmarks do not terminate correctly. I downloaded
the SPLASH2 for Alpha from the download page of gem5 and found it is
patched for Alpha ISA. What should we do if we want to run SPLASH2 on gem5
with x86?
Does any one have experience with SPLASH2 for X86-linux?

Thanks a lot!

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

[gem5-users] Running Android on Gem5 - Creating custom Android image file

2012-08-27 Thread Abhinav Kannan
Hi,

I am trying to run Android on Gem5 for my project and I needed help in
getting the system to run.

I am running the gem5-stable release and am using the ARM architecture.
I have set M5_PATH to point to the gem5-stable/system directory

Here are the different approaches I tried:

1. I am trying to create a custom Android image file by following the
instructions given on the website.

I downloaded the Android source code and patched it with Arm specific files
as given in http://www.linux-arm.org/LinuxKernel/LinuxAndroidPlatform
for kernel version 2.6.35

I successfully compiled the patched Android ICS source code and created an
image file using the gem5 image creation utility and transfered the Android
file system on it. I am using the pre-built kernel image given on the site.

When I try to run the simulation I get kernel panic message and the system
does not boot:

VFS: Mounted root (ext2 filesystem) on device 8:1.
[2.254005] VFS: Mounted root (ext2 filesystem) on device 8:1.
<6>Freeing init memory: 148K
[2.254019] Freeing init memory: 148K
/bin/sh: earlyprintk: No such file or directory
<0>Kernel panic - not syncing: Attempted to kill init!
[2.268655] Kernel panic - not syncing: Attempted to kill init!
[] (unwind_backtrace+0x0/0xe4) from [] (panic+0x50/0xd0)
[2.268666] [] (unwind_backtrace+0x0/0xe4) from []
(panic+0x50/0xd0)
[] (panic+0x50/0xd0) from [] (do_exit+0x68/0x620)
[2.268679] [] (panic+0x50/0xd0) from []
(do_exit+0x68/0x620)
[] (do_exit+0x68/0x620) from []
(do_group_exit+0xa4/0xd4)
[2.268691] [] (do_exit+0x68/0x620) from []
(do_group_exit+0xa4/0xd4)
[] (do_group_exit+0xa4/0xd4) from []
(sys_exit_group+0x10/0x18)
[2.268704] [] (do_group_exit+0xa4/0xd4) from []
(sys_exit_group+0x10/0x18)
[] (sys_exit_group+0x10/0x18) from []
(ret_fast_syscall+0x0/0x30)
[2.268718] [] (sys_exit_group+0x10/0x18) from []
(ret_fast_syscall+0x0/0x30)

Am I missing something in the build process? I compared my init.rc file
with the one from the clean ICS image file and there were no differences.

2. I tried to run the simulation using the pre-built images and I was able
to boot the Gingerbread bbench, gingerbread clean and Ics bbench images
using the pre-compiled kernel image.

This does not solve the purpose as I want to use my own Android image file.

3. I downloaded and compiled the armdroid kernel source code and tried to
run the simulation. After compilation, I get the file "uImage" in
arch/arm/boot folder. I renamed uImage to vmlinux.arm.custom and used it in
the simulation. The simulation exits immediately with the message "Could
not load kernel file". I have placed the kernel image in
gem5-stable/system/binaries. Am I using the correct kernel image file?

It would be really helpful if someone could point me in the correct
direction so that I can get the system to run.
Kindly let me know in case any additional information is required.

Thanks and Regards,
Abhinav Kannan
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Running Android on Gem5 - Creating custom Android image file

2012-08-27 Thread Anthony Gutierrez
<0>Kernel panic - not syncing: Attempted to kill init!
[2.268655] Kernel panic - not syncing: Attempted to kill init!

That is you problem. You need to specify init in your boot flags. In
configs/common/FSConfig.py it checks if the image name contains "android".
If so it adds init to the boot flags:

boot_flags += " init/init "

Try adding "android" as part of the file name. Or just add " init/init " to
be part of the boot flags always.

-Tony

On Mon, Aug 27, 2012 at 7:43 PM, Abhinav Kannan <
abhinavkannan2...@u.northwestern.edu> wrote:

> Hi,
>
> I am trying to run Android on Gem5 for my project and I needed help in
> getting the system to run.
>
> I am running the gem5-stable release and am using the ARM architecture.
> I have set M5_PATH to point to the gem5-stable/system directory
>
> Here are the different approaches I tried:
>
> 1. I am trying to create a custom Android image file by following the
> instructions given on the website.
>
> I downloaded the Android source code and patched it with Arm specific
> files as given in
> http://www.linux-arm.org/LinuxKernel/LinuxAndroidPlatform
> for kernel version 2.6.35
>
> I successfully compiled the patched Android ICS source code and created an
> image file using the gem5 image creation utility and transfered the Android
> file system on it. I am using the pre-built kernel image given on the site.
>
> When I try to run the simulation I get kernel panic message and the system
> does not boot:
>
> VFS: Mounted root (ext2 filesystem) on device 8:1.
> [2.254005] VFS: Mounted root (ext2 filesystem) on device 8:1.
> <6>Freeing init memory: 148K
> [2.254019] Freeing init memory: 148K
> /bin/sh: earlyprintk: No such file or directory
> <0>Kernel panic - not syncing: Attempted to kill init!
> [2.268655] Kernel panic - not syncing: Attempted to kill init!
> [] (unwind_backtrace+0x0/0xe4) from []
> (panic+0x50/0xd0)
> [2.268666] [] (unwind_backtrace+0x0/0xe4) from []
> (panic+0x50/0xd0)
> [] (panic+0x50/0xd0) from [] (do_exit+0x68/0x620)
> [2.268679] [] (panic+0x50/0xd0) from []
> (do_exit+0x68/0x620)
> [] (do_exit+0x68/0x620) from []
> (do_group_exit+0xa4/0xd4)
> [2.268691] [] (do_exit+0x68/0x620) from []
> (do_group_exit+0xa4/0xd4)
> [] (do_group_exit+0xa4/0xd4) from []
> (sys_exit_group+0x10/0x18)
> [2.268704] [] (do_group_exit+0xa4/0xd4) from []
> (sys_exit_group+0x10/0x18)
> [] (sys_exit_group+0x10/0x18) from []
> (ret_fast_syscall+0x0/0x30)
> [2.268718] [] (sys_exit_group+0x10/0x18) from []
> (ret_fast_syscall+0x0/0x30)
>
> Am I missing something in the build process? I compared my init.rc file
> with the one from the clean ICS image file and there were no differences.
>
> 2. I tried to run the simulation using the pre-built images and I was able
> to boot the Gingerbread bbench, gingerbread clean and Ics bbench images
> using the pre-compiled kernel image.
>
> This does not solve the purpose as I want to use my own Android image file.
>
> 3. I downloaded and compiled the armdroid kernel source code and tried to
> run the simulation. After compilation, I get the file "uImage" in
> arch/arm/boot folder. I renamed uImage to vmlinux.arm.custom and used it in
> the simulation. The simulation exits immediately with the message "Could
> not load kernel file". I have placed the kernel image in
> gem5-stable/system/binaries. Am I using the correct kernel image file?
>
> It would be really helpful if someone could point me in the correct
> direction so that I can get the system to run.
> Kindly let me know in case any additional information is required.
>
> Thanks and Regards,
> Abhinav Kannan
>
> ___
> 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 define Memory specification in Gem5?

2012-08-27 Thread Victor Ling
Is there a way to specify a memory subsystem in Gem5? I plan to specify:

- # of channel,  #Dimm/Channel, #of  rank/Dimm, #of bank/Rank

- Mega transfers /second, 

- Precharge time, row access time, column access time

Thanks.

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

Re: [gem5-users] Set total order among multiple logic buses

2012-08-27 Thread gem5 gem5
Hi Tushar,

I wonder if all the nodes(controllers) need to have a router before them.
This is what I have seen for all the topologies created in GEM5. I have
tried topology like the one I attach here. If I run it with
ruby_network_tester for simple network with Hammer protocol for 10
sim-cycles. I will have deadlock. But if I run the same for Pt2Pt in GEM5
for example, then there is no deadlock. Do you think because controllers do
not know how to handle multiple input links well? or there are some other
reasons. Please help me figure it out. Thank you very much!

Best,

Jinzhu
On Thu, Aug 23, 2012 at 10:07 PM, gem5 gem5  wrote:

> Thank you very much, Tushar:)
>
> Best,
>
> Jinzhu
>
>
> On Wed, Aug 22, 2012 at 12:24 AM, Tushar Krishna wrote:
>
>> Hi Jinzhu,
>> Do the orange routers guarantee that the message is delivered out of all
>> output links simultaneously?
>> I think something like the following could be the problem:
>> Suppose Core B and Core C are sharing a line.
>> Core A does a broadcast for GETX. At the orange routers, suppose it
>> reaches Core B and Core C, but not Core D since that output link is busy
>> and/or no free buffer at Core D.
>> Now Core B looks at this message and invalidates its copy. Now it sends
>> out a GETX.
>> Suppose Core D receives this GETX (via Core B's orange router) before the
>> older GETX from Core A (still stuck in Core A's router for some reason).
>> This will violate ordering (because other cores saw Core A's broadcast
>> before Core B's).
>>
>> (1) since the orange routers are modeling a "bus", any message being
>> broadcast should wait till ALL output links are free and then  be sent out
>> of all output links simultaneously.
>> (2) after that the blue routers should guarantee a FIFO ordering (to
>> ensure that messages received from two different "buses" don't get
>> reordered) when delivering messages to the core.
>>
>> I *think* (though you should check) that (2) is guaranteed automatically
>> in the code since the input queues are implemented as MessageBuffers which
>> order messages according to time of receipt, but I know (1) is not
>> guaranteed by default in the simple router.
>> See if that solves your issue.
>> While a stronger condition of latency between two nodes always being the
>> same will definitely solve your problem, I think a weaker condition of
>> ensuring that ALL the blue routers receive messages from different buses in
>> the same order should be the constraint.
>>
>> - Tushar
>>
>>
>> On Aug 21, 2012, at 5:30 PM, gem5 gem5 wrote:
>>
>> Tushar,
>>
>> All the links used in my topology are single directional. The connection
>> is as the attached image. It's Single writer multiple reader and  I think
>> this topology should be able to guarantee that certain messages only go on
>> certain buses.
>>
>> I am thinking the problem is that the total order is achieved only when
>> the latency between any two nodes is always the same, but the throttle link
>> creates lots of delays(some messages got sent much later) so latency is not
>> always the same.And maybe I should also create one MessageBuffer/queue
>> for every bus in the controller instead of just one MessageBuffer for one
>> vnet. Then I can read messages from all the messagebuffer round robin. Is
>> the simple network modeled cycle accurate? Any suggestions? Thank you very
>> much!
>>
>> Best,
>> Jinzhu
>>
>> On Mon, Aug 20, 2012 at 1:14 AM, Tushar Krishna wrote:
>>
>>> Hi Jinzhu,
>>> While it is true that the a garnet router is more accurate than the
>>> PerfectSwitch as it models contention in a detailed manner, I don't think
>>> your problem has anything to do with that.
>>> I think you should track messages through each router and see why/where
>>> 2 messages from the same source get re-ordered.
>>>
>>> I am wondering if the problem could with the topology itself…
>>> Are you modeling multiple buses as multiple links between routers?
>>> How does a router guarantee that certain messages only go on certain
>>> links (buses), and certain others go on other links? By default both
>>> simple/garnet networks try to route using the shortest path, and here all
>>> buses will be on the shortest path.
>>>
>>> - Tushar
>>>
>>>
>>> On Aug 19, 2012, at 11:41 PM, gem5 gem5 wrote:
>>>
>>> Hi Tushar,
>>>
>>> I have tried to modify the PerfectSwitch to schedule messages according
>>> to a fixed round robin order. And then I also did the same to the throttle
>>> link by changing the wakeup order. However, I still cannot see the total
>>> order in multiple logic buses. I wonder if that is because the
>>> implementation of PerfectSwtich does not reflect the timing characteristic
>>> of a real router. It just simply copies everything from the inport to the
>>> outport. Although I scheduled according to a predefined order, but actually
>>> it's still done right away. Maybe a more detailed model such as Garnet
>>> router can solve the problem? I wonder if that's the issue or there is
>>> somet