Re: [gem5-users] gem5 stable release proposal [PLEASE VOTE!]

2019-12-17 Thread Kleovoulos Kalaitzidis
Hello,
- I think master should be stable.
- I think gem5 should be released three times per year.

Regards,
--
Kleovoulos Kalaitzidis
Doctorant - Équipe PACAP

Centre de recherche INRIA Rennes - Bretagne Atlantique
Bâtiment 12E, Bureau E301, Campus de Beaulieu, 
35042 Rennes Cedex, France

- Original Message -
> From: "Jason Lowe-Power" 
> To: "gem5 Developer List" , "gem5 users mailing list" 
> 
> Sent: Monday, December 16, 2019 8:50:12 PM
> Subject: [gem5-users] gem5 stable release proposal [PLEASE VOTE!]

> Hi all,
> 
> As many of you have seen on gem5-dev, we are going to be adding a
> "stable" version of gem5. Below is the current proposal. There are a
> couple of points below where there has not been general consensus
> reached. We would appreciate feedback *from everyone in the community*
> on the points where a decision hasn't been made below. gem5 is a
> community-driven project, and we need feedback to make sure we're
> making community-focused decisions.
> 
> We will be introducing a new "stable" branch type to gem5. We are
> doing this for the following reasons:
> - Provide a way for developers to communicate major changes to the
> code. We will be providing detailed release notes for each stable
> release.
> - Increase our test coverage. At each stable release, we will test a
> large number of "common" benchmarks and configurations and publicize
> the current state of gem5.
> - Provide a way for researchers to communicate to the rest of the
> community information about their simulation infrastructure (e.g., in
> a paper you can say which version of gem5 you used).
> 
> On the stable version of gem5, we will provide bugfixes  until the
> next release, but we will not make any API changes or add new
> features.
> 
> We would like your feedback on the following two questions:
> 
> **Which branch should be default?**
> 
> We can either have the master branch in git be the "stable" or the
> "development" branch. If master is the stable branch, then it's easier
> for users to get the most recent stable branch. If master is the
> development branch, it's more familiar and easier for most developers.
> Either way, we will be updating all of the documentation to make it
> clear.
> 
> Please let us know which you prefer by replying "I think master should
> be stable" or "I think master should be development".
> 
> **How often should we create a new gem5 release?**
> 
> We can have a gem5 release once per year (likely in April) or three
> times per year (April, August, and December). Once per year means that
> if you use the stable branch you will get updates less frequently.
> Three times per year will mean there are more releases to choose from
> (but a newer release should always be better). On the development
> side, I don't think one will be more work than the other. Once per
> year means more backporting, and three times per year means more
> testing and time spent on releases.
> 
> Please let us know which you prefer by replying "I think gem5 should
> be released once per year" or "I think gem5 should be released three
> times per year."
> 
> 
> 
> 
> A couple of notes to everyone who's been following the discussion on
> the gem5-dev mailing list:
> - We have dropped the proposal for major vs minor releases. Note that
> there was some pushback on having only major releases when this was
> proposed on the gem5 roadmap, but it sounded like the consensus was to
> drop minor releases for now.
> - We will still allow feature branches *in rare circumstances*. This
> will be by request only (send mail to gem5-dev if you would like to
> discuss adding a new branch), and the goal will be integration within
> a few months. All code review will still happen in the open on gerrit.
> The benefits will be
> 1) rebases won't be required as you can just make changes to the head
> of the branch
> 2) many features take more than a few months to implement, so if it's
> not ready by a release it can be pushed to the next
> 3) large changes won't be hidden in AMD or Arm-specific repositories
> and *anyone* will be able to request a branch.
> 
> Thanks everyone for the discussions so far! It would be most useful to
> hear back by the end of the week. However, I don't expect any concrete
> actions will be taken until after the holidays.
> 
> Cheers,
> Jason
> ___
> 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] Use checkpoints that have been created from older GEM5 version

2019-07-19 Thread Kleovoulos Kalaitzidis
Hello,
for upgrading checkpoints you can use the "cpt_upgrader.py" in 
util/cpt_upgraders. Normally, this will do, unless some upgrade is not 
implemented already. Then you have to create alone the equivalent upgrader to 
call. 
Hope it helps. 

--
Kleovoulos Kalaitzidis
Doctorant - Équipe PACAP

Centre de recherche INRIA Rennes - Bretagne Atlantique
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France

- Original Message -
> From: "Michail Mavropoulos" 
> To: "gem5 users mailing list" 
> Sent: Friday, July 19, 2019 4:03:06 PM
> Subject: [gem5-users] Use checkpoints that have been created from older GEM5  
> version

> Hello,
> 
> I have created checkpoints, for SPEC2006 benchmarks, from older GEM5
> version (mercurial head id  10500:5e0a421e2031) and I need to import
> them into the final GEM5 version (git head
> 4d4c38c7c02aca9922d7f30f2f399bbe94c034eb59).
> 
> Unforunately, when I try to run a full system simulation I get the
> following:
> fatal: Can't unserialize 'system.apicbridge:currPwrState'
> 
> Is it a checkpoint issue or a configuration issue?
> Should I re-create the checkpoints from the latest GEM5 version?
> 
> I run the following command:
> ./build/X86/gem5.opt -i configs/example/fs.py --kernel=kernel_path
> --disk-image=disk_path --warmup-insts=20 --maxinsts=100
> --checkpoint-dir=spec_checkpoints/astar/lakes/ -r 1 --bench=astar_lakes
> --cpu-type=AtomicSimpleCPU --mem-size=2048MB
> --restore-with-cpu=DerivO3CPU
> 
> Thank you,
> mmavrop
> ___
> 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] questions about template policies in O3CPU

2019-07-17 Thread Kleovoulos Kalaitzidis
Hello, 
the lsq_unit, as long as other basic parts in the pipeline (i.e., fetch, decode 
etc) are generally defined as template classes as you said. The equivalent *.c 
files instantiate the object by calling with a specific argument, in this case 
with the "O3CPUImpl" argument. These .c files are the ones that include the 
necessary header files and are given as source for compilation in the 
SConscript file, for instance in the one in the o3 folder, when it comes to the 
o3 model. 
Hope it helps. 

Regards, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "yuan" 
> To: "gem5 users mailing list" 
> Sent: Tuesday, July 16, 2019 10:59:46 PM
> Subject: [gem5-users] questions about template policies in O3CPU

> Hi, all,

> I am trying to understand the O3CPU code. But I find that the template policy 
> is
> heavily used in O3CPU and I am quiet confused about this part. Like the load
> store queue, the lsq_unit.hh file has all the class declaration of lsq_unit,
> but in the lsq_unit.cc file, there is only one statement “template class
> LSQUnit;”. My understanding is that all the functions in
> lsq_unint.hh are actually defined/implemented in lsq_unit_impl.hh files. The
> O3CPUImpl is actually defined in impl.hh file. But what the lsq_unit.cc file 
> is
> actually doing? And what is the design model behind this template usage? Does
> anyone know about this part. Thanks so much.

> Best regards.

> Yuan

> Sent from [ https://go.microsoft.com/fwlink/?LinkId=550986 | Mail ] for 
> Windows
> 10

> ___
> 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] SPECCPU 2006 application crashes on x86 gem5

2019-06-30 Thread Kleovoulos Kalaitzidis
Hello, 
it is normal to get these warnings for unimplemented instructions. However, in 
my experience, these warnings are not the case for aborting. Normally some 
panic message follows, but maybe not related to this "warn". For instance, 
there is the case of avx instructions that are not implemented and will abort 
the execution : [ 
https://gem5-users.gem5.narkive.com/jO22f7kV/spec2017-on-gem5-se-mode | 
https://gem5-users.gem5.narkive.com/jO22f7kV/spec2017-on-gem5-se-mode ] 

Regards, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Shyam Murthy" 
> To: "gem5 users mailing list" 
> Sent: Sunday, June 30, 2019 7:02:37 PM
> Subject: [gem5-users] SPECCPU 2006 application crashes on x86 gem5

> Hi All,
> I am trying to run some of the FP applications from SPECCPU 2006. However, for
> some of these applications (like povray, tonto), I get an error that says:

> warn: instruction 'movntdq_Mo_Vo' unimplemented.

> I am compiling these applications on my machine, and then running them on x86
> gem5. My machine uses gcc version 7.4.0. I tried using gcc version 5.5 
> (already
> installed on my machine), but the problem persists.

> Any suggestions as to what I can do to fix this?

> Thanks,

> Shyam

> ___
> 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] On checkpointing while using custom config file

2019-04-30 Thread Kleovoulos Kalaitzidis
Hello, 
I have done something similar, taking a checkpoint after booting the image. 
However, I use only the "m5 exit" command instead of the "m5 checkpoint" and I 
take checkpoints using AtomicSimple and the fs.py. You can replace "checkpoint" 
with "exit" to see if it works for your configuration. In order this to work, 
you HAVE to use the option "--checkpoint-at-end" in your gem5 command. You can 
also specify a path for the checkpoint output to have a clear result by using 
"--checkpoint-dir=PATH_TO_DIR". This way, after booting, gem5 exits and with 
the above option a checkpoint is triggered. 

Example .rcS script : 
. 
/sbin/m5 exit 
runspec --config=myconfig.cfg --size=test --noreportable --tune=base 
--iterations=1 mcf 
echo "mcf done!" 
/sbin/m5 exit 

After you can restore your checkpoint and continue execution using the same 
.rcS script, it will actually continue after the first m5 exit, which is just 
after booting. 

Hope it helps, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Sethu Jose" 
> To: "gem5 users mailing list" 
> Sent: Sunday, April 28, 2019 3:03:52 AM
> Subject: [gem5-users] On checkpointing while using custom config file

> Hi,

> I'm trying out X86 full system simulation in GEM5 as explained in the tutorial
> found in this link:
> [ http://learning.gem5.org/book/part5/fs_config.html |
> http://learning.gem5.org/book/part5/fs_config.html ]

> I'm doing full system simulation using TimingSimpleCPU with X86. I would like 
> to
> take checkpoint once the system has booted up. The command I use to run the
> simulation is as follows:

> build/X86/gem5.opt configs/full_system/run.py --script=path/to/script

> With this, the system boots up and executes the script.

> I plan to take checkpoint right after booting up the system. Hence, I have 
> added
> the following line to the script:
> 
> echo "Creating checkpoint..."
> /sbin/m5 checkpoint
> echo "Checkpoint created!"
> echo "Started mcf ..."
> runspec --config=myconfig.cfg --size=test --noreportable --tune=base
> --iterations=1 mcf
> echo "mcf done!"
> /sbin/m5 exit
> 

> With this, the simulation exits when running /sbin/m5 stating the exit cause 
> as
> checkpoint. However, no checkpoint folders are created in the working
> directory. Neither does the restore command work. I have tried take checkpoint
> by running /sbin/m5 exit in the booted up system terminal. This also causes 
> the
> simulation to exit without creating any checkpoint folders.

> As I'm new to GEM5, could you please provide any insights on this issue? Is
> there any specific code that I need to add to my config file to make it take
> checkpoint?

> Thanks in advance for any help.

> Regards,
> Sethu

> ___
> 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] Switching off AVX-512 for running SPEC 2017 in SE mode

2019-03-25 Thread Kleovoulos Kalaitzidis
Hello, 
I want to run the SPEC 2017 workloads in SE mode(X86), but when I do many of 
them run into an error about an unrecognised instruction. After some search I 
found this thread in the list : 
https://gem5-users.gem5.narkive.com/jO22f7kV/spec2017-on-gem5-se-mode where 
there was described exactly the same problem. The unrecognised instruction 
seems to be an AVX-512 one. I actually dumbed the assembly code of the binaries 
and I see some of them, so as instructed I compile benchmarks with "-mno-avx 
-mno-avx512f .." and many other flags to switch off these AVX instructions, but 
still the problem is the same. Maybe the question is not that gem5-relevant, 
but if somebody has successfully disabled these instructions and run in SE 
(X86) the SPEC 2017 benchmarks, would be of great help. 

Thank you in advance, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Problem on restoring checkpoint while using O3CPU in Full System mode

2018-12-20 Thread Kleovoulos Kalaitzidis
Hello Taeklim, 

your problem sounds to me the same as the one I keep having. In my case, I 
searches a bit more and then I found that as you said instruction count does 
not increase because execution falls into an infinite loop of the same page 
fault (Microcode_ROM related.) I give you here the link to the thread of my 
emails when I first asked about the problem : [ 
https://www.mail-archive.com/gem5-users@gem5.org/msg16145.html | 
https://www.mail-archive.com/gem5-users@gem5.org/msg16145.html ] Unfortunately, 
I do not have the solution , but it would be very nice if you could also just 
use the flags I mention (--debug-flags=Exec,LocalApic,Faults) to see if the 
problem is related with the same issue. Looking forward for any feedback. 

Regards, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Taeklim Kim" 
> To: "gem5 users mailing list" 
> Sent: Thursday, December 20, 2018 1:12:38 AM
> Subject: [gem5-users] Problem on restoring checkpoint while using O3CPU in 
> Full
> System mode

> Hi all,
> I'm currently using X86 Full system mode.

> Firstly, I tried to make a checkpoint while running SPEC CPU by 
> AtomicSimpleCPU,
> and I got it. After that, I did restoring checkpoint by adding an option
> '--cpu-type=DerivO3CPU', and also added the cache option.

> However, if I run(restoring) by O3CPU, the simulation didn't keep running, it
> just hanged and nothing changed. I also added some 'printf()' at
> 'src/cpu/o3/cpu.cc', 'FullO3CPU::instDone()' to check the count of
> instruction, nothing changed.

> I'm also tried just restoring to Atomic, not O3, but in this case, the
> simulation works fine. I'm not sure why this is hanging when I restore O3.
> Below is the command line that I used for restoring O3.

> /home/workspace/gem5_fs/build/X86/gem5.opt
> /home/workspace/gem5_fs/configs/example/fs.py -n 1
> --disk-image=/home/workspace/fs_image/disks/ubuntu-16.04-v3.6.img
> --kernel=/home/taeklim/workspace/fs_image/binaries/vmlinux-4.14.53-prof
> --sys-clock=1GHz --cpu-clock=4GHz --mem-size=4096MB --mem-type=DDR3_1600_8x8
> --restore-with-cpu=DerivO3CPU --cpu-type=DerivO3CPU --caches
> --checkpoint-dir=/home/workspace/gem5_fs/m5out/ --at-instruction -r
> 977530554357000

> Your help will be appreciated.

> Best,

> Taeklim

> ᐧ

> ___
> 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] Microcode_ROM page fault not handled

2018-11-13 Thread Kleovoulos Kalaitzidis
Hello, 
I find it relevant to inform also, that this problem has been encountered with 
a fresh pull of gem5 commit: 2045a5c199c7c7597684c5d7501d5fb55aff9608 with no 
extra modifications. The same repo I used it to take the checkpoints uniformly 
for SPEC CPU 2017. The process I follow is that I use the "AtomicSimpleCPU" 
cpu-type to sequentially take the checkpoints. That is, a checkpoint is created 
at instruction "N" , then gem5 exits and then I restore the checkpoint N to 
continue the process and take the next checkpoint at instruction "N+period". 
Hence, this way each checkpoint is tested to be restored and normally work with 
AtomicSimpleCPU. 

Here is the gem5 command for taking the checkpoints : ./build/X86/gem5.opt 
--redirect-stdout --redirect-stderr --outdir=outdir /configs/example/fs.py 
--cpu-type=AtomicSimpleCPU -n 1 --mem-type=DDR4_2400_16x4 --mem-size=8GB 
--fastmem --sys-clock=4GHz --cpu-clock=4GHz 
--kernel=/path_to_kernel/vmlinux-4-15 
--disk-image=/path_to_image/ubuntu-min-16-04.img --checkpoint-dir=/chpts_dir 
--checkpoint-restore=N --at-instruction --take-checkpoints=N+period 
--checkpoint-at-end 

The same process I have done it both for ARM and for x86 using fs.py . However, 
this stack-related problem does not show up for ARM but it does in many of the 
checkpoints taken for the different benchmarks. I can only see the problem 
maybe in the way that I created the equivalent Ubuntu image for x86 ( just 
following Jason's tutorial 
http://www.lowepower.com/jason/setting-up-gem5-full-system.html ) or there 
could be a problem with the way a checkpoint saves the current state when it is 
taken for x86. 

How is the stack saved and restored between the checkpoints (and I assume it is 
used/simulated when restoring with AtomicSimpleCPU)? 

I mention here again the gem5 command I use to restore the checkpoints with 
DerivO3CPU : ./build/X86/gem5.opt -r -e -d /path_to_outdir 
configs/example/fs.py --cpu-type= DerivO3CPU -n 1 --caches --l2cache --l3cache 
--mem-type=DDR4_2400_16x4 --mem-size=8GB --sys-clock=4GHz --cpu-clock=4GHz 
--maxinsts=15000 --kernel=/path_to_kernel/vmlinux-4-15 
--disk-image=/path_to_image/ubuntu-min-16-04.img 
--checkpoint-dir=/path_to_cpt_dir/ -r N --at-instruction 

As everything has been done with the official gem5 code, even if it is a 
problem of my configuration(image, kernel) or of the SPEC benchmarks, I think 
there should had been a way to detect and stop/exit gem5 when a page fault goes 
into an infinite loop. I would appreciate any feedback regarding this point. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Kleovoulos Kalaitzidis" 
> To: "gem5 users mailing list" 
> Sent: Tuesday, November 13, 2018 2:31:30 AM
> Subject: Re: [gem5-users] Microcode_ROM page fault not handled

> Hello,
> thank you a lot for your answer Gabe. I see what you mean that the stack seems
> to be bad and I was trying to investigate why.
> In order to have a quick try (and affected by the kernel-related problem of 
> this
> thread I had mentioned :
> https://www.mail-archive.com/gem5-users@gem5.org/msg13058.html )
> I built another kernel version, the 4.8.13 and I restored my checkpoints with
> that one. You can find a part of the output attached here. I see again that 
> the
> Microcode_ROM
> keeps repeating for a page fault at the same address as before :
> 0xfe001fd0. Though this time it seems to be more specific to me, since
> it is related
> with the kernel function "wake_up_new_task" which I found to be called at the
> "do_fork" one. I can not really understand why stack does not play well with
> some of the benchmarks, since I use the same way to take my checkpoints and
> then restore them respectively. If this different output in comparison with 
> the
> previous one can give an idea to someone please let me know. Thank you a lot
> for your help.
> --
> Kleovoulos Kalaitzidis
> Doctorant - Équipe PACAP

> Centre de recherche INRIA Rennes - Bretagne Atlantique
> Bâtiment 12E, Bureau E321, Campus de Beaulieu,
> 35042 Rennes Cedex, France

>> From: "Gabe Black" 
>> To: "gem5 users mailing list" 
>> Sent: Monday, November 12, 2018 10:48:19 PM
>> Subject: Re: [gem5-users] Microcode_ROM page fault not handled

>> The microcode that's executing is in src/arch/x86/isa/insts/romutil.py I 
>> think,
>> and it looks like your stack is bad. That's where the vectoring microcode
>> checks to see that it will be able to write out the interrupt stack frame, 
>> and
>> it apparently can't. That triggers another page fault, and it has the same
>> problem. You'

Re: [gem5-users] Microcode_ROM page fault not handled

2018-11-12 Thread Kleovoulos Kalaitzidis
Hello, 
thank you a lot for your answer Gabe. I see what you mean that the stack seems 
to be bad and I was trying to investigate why. 
In order to have a quick try (and affected by the kernel-related problem of 
this thread I had mentioned : 
https://www.mail-archive.com/gem5-users@gem5.org/msg13058.html ) 
I built another kernel version, the 4.8.13 and I restored my checkpoints with 
that one. You can find a part of the output attached here. I see again that the 
Microcode_ROM 
keeps repeating for a page fault at the same address as before : 
0xfe001fd0. Though this time it seems to be more specific to me, since 
it is related 
with the kernel function "wake_up_new_task" which I found to be called at the 
"do_fork" one. I can not really understand why stack does not play well with 
some of the benchmarks, since I use the same way to take my checkpoints and 
then restore them respectively. If this different output in comparison with the 
previous one can give an idea to someone please let me know. Thank you a lot 
for your help. 
-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Gabe Black" 
> To: "gem5 users mailing list" 
> Sent: Monday, November 12, 2018 10:48:19 PM
> Subject: Re: [gem5-users] Microcode_ROM page fault not handled

> The microcode that's executing is in src/arch/x86/isa/insts/romutil.py I 
> think,
> and it looks like your stack is bad. That's where the vectoring microcode
> checks to see that it will be able to write out the interrupt stack frame, and
> it apparently can't. That triggers another page fault, and it has the same
> problem. You'll need to determine why your stack ends up out of whack, or why
> that code might not be handling the stack in an exactly correct way which 
> makes
> it fault when it shouldn't.
> Gabe

> On Mon, Nov 12, 2018 at 8:25 AM Kleovoulos Kalaitzidis < [
> mailto:kleovoulos.kalaitzi...@inria.fr | kleovoulos.kalaitzi...@inria.fr ] >
> wrote:

>> Hello,
>> just to give more detail, I have attached here a part of the simout file 
>> before
>> the first appearance of the page fault that after keeps
>> executing.

>> --
>> Kleovoulos Kalaitzidis
>> Doctorant - Équipe PACAP

>> Centre de recherche INRIA Rennes - Bretagne Atlantique
>> Bâtiment 12E, Bureau E321, Campus de Beaulieu,
>> 35042 Rennes Cedex, France

>>> From: "Kleovoulos Kalaitzidis" < [ mailto:kleovoulos.kalaitzi...@inria.fr |
>>> kleovoulos.kalaitzi...@inria.fr ] >
>>> To: "gem5 users mailing list" < [ mailto:gem5-users@gem5.org |
>>> gem5-users@gem5.org ] >
>>> Sent: Monday, November 12, 2018 4:09:56 PM
>>> Subject: [gem5-users] Microcode_ROM page fault not handled

>>> Hello everyone,

>>> I am currently using FS mode to simulate and execute SPEC benchmarks. The 
>>> image
>>> I use is an Ubuntu-16.04 and the kernel I built for that is vmlinux-4-15.
>>> To settle up the FS simulation environment, create the image file and build 
>>> the
>>> kernel I have followed Jason's instructions from here: [
>>> http://www.lowepower.com/jason/setting-up-gem5-full-system.html |
>>> http://www.lowepower.com/jason/setting-up-gem5-full-system.html ]
>>> I run my simulations with x86 and I have already taken some checkpoints for 
>>> FS,
>>> so now I use them to restore and execute the benchmarks. However, after some
>>> testing
>>> I found out that most of them after some time following the restore they 
>>> execute
>>> infinite loops of micro ops without proceeding in the total benchmark
>>> execution, because the number of executed instructions
>>> would not change (after some printing within execution)

>>> The gem5 command to restore first checkpoint is here : /build/X86/gem5.opt
>>> --redirect-stdout --redirect-stderr --outdir=/outdir /configs/example/fs.py
>>> --cpu-type=DerivO3CPU -n 1 --caches --l2cache --mem-type=DDR4_2400_16x4
>>> --mem-size=8GB --sys-clock=4GHz --cpu-clock=4GHz
>>> --kernel=/path_to_kernel/vmlinux-4-15
>>> --disk-image=/path_to_image/ubuntu-min-16-04.img
>>> --checkpoint-dir=/path_to_checkpoint_dir/ -r 1

>>> To tackle the problem I found the aforementioned recurring loop of micro 
>>> ops and
>>> I saw that it keeps executing micro ops related with instruction 
>>> Microcode_ROM
>>> After some search I found this older thread where someone else had a quite
>>> similar problem : [
>>> https://www.ma

Re: [gem5-users] Microcode_ROM page fault not handled

2018-11-12 Thread Kleovoulos Kalaitzidis
Hello, 
just to give more detail, I have attached here a part of the simout file before 
the first appearance of the page fault that after keeps 
executing. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Kleovoulos Kalaitzidis" 
> To: "gem5 users mailing list" 
> Sent: Monday, November 12, 2018 4:09:56 PM
> Subject: [gem5-users] Microcode_ROM page fault not handled

> Hello everyone,

> I am currently using FS mode to simulate and execute SPEC benchmarks. The 
> image
> I use is an Ubuntu-16.04 and the kernel I built for that is vmlinux-4-15.
> To settle up the FS simulation environment, create the image file and build 
> the
> kernel I have followed Jason's instructions from here:
> http://www.lowepower.com/jason/setting-up-gem5-full-system.html
> I run my simulations with x86 and I have already taken some checkpoints for 
> FS,
> so now I use them to restore and execute the benchmarks. However, after some
> testing
> I found out that most of them after some time following the restore they 
> execute
> infinite loops of micro ops without proceeding in the total benchmark
> execution, because the number of executed instructions
> would not change (after some printing within execution)

> The gem5 command to restore first checkpoint is here : /build/X86/gem5.opt
> --redirect-stdout --redirect-stderr --outdir=/outdir /configs/example/fs.py
> --cpu-type=DerivO3CPU -n 1 --caches --l2cache --mem-type=DDR4_2400_16x4
> --mem-size=8GB --sys-clock=4GHz --cpu-clock=4GHz
> --kernel=/path_to_kernel/vmlinux-4-15
> --disk-image=/path_to_image/ubuntu-min-16-04.img
> --checkpoint-dir=/path_to_checkpoint_dir/ -r 1

> To tackle the problem I found the aforementioned recurring loop of micro ops 
> and
> I saw that it keeps executing micro ops related with instruction Microcode_ROM
> After some search I found this older thread where someone else had a quite
> similar problem :
> https://www.mail-archive.com/gem5-users@gem5.org/msg13058.html

> So I followed same pattern, I used the --debug-flags=Exec,LocalApic,Faults 
> and I
> get this output :

> 32985546164250: system.switch_cpus T0 : @__do_page_fault+716.32930 :
> Microcode_ROM : ldst t0, HS:[t6] : MemRead : A=0xfe001fd0
> 32985546172500: system.switch_cpus T0 : @__do_page_fault+716.32890 :
> Microcode_ROM : slli t4, t1, 0x4 : IntAlu : D=0x00e0
> 32985546172750: system.switch_cpus T0 : @__do_page_fault+716.32891 :
> Microcode_ROM : ld t2, IDTR:[t4 + 0x8] : MemRead : D=0x
> A=0xfee8
> 32985546173000: system.switch_cpus T0 : @__do_page_fault+716.32892 :
> Microcode_ROM : ld t4, IDTR:[t4] : MemRead : D=0x81a08e1015d0
> A=0xfee0
> 32985546173250: system.switch_cpus T0 : @__do_page_fault+716.32893 :
> Microcode_ROM : chks , t4b, 0x3 : IntAlu :
> 32985546173500: system.switch_cpus T0 : @__do_page_fault+716.32894 :
> Microcode_ROM : srli t10, t4, 0x10 : IntAlu : D=0x81a08e10
> 32985546173750: system.switch_cpus T0 : @__do_page_fault+716.32895 :
> Microcode_ROM : andi t5, t10, 0xf8 : IntAlu : D=0x0010
> 32985546174000: system.switch_cpus T0 : @__do_page_fault+716.32896 :
> Microcode_ROM : andi t0w, t10w, 0x4 : IntAlu : D=0x0020
> 32985546174250: system.switch_cpus T0 : @__do_page_fault+716.32897 :
> Microcode_ROM : br 0x8084 : No_OpClass :
> 32985546176500: system.switch_cpus T0 : @__do_page_fault+716.32900 :
> Microcode_ROM : ld t3, TSG:[t5] : MemRead : D=0x00af9b00
> A=0xfe001010
> 32985546176750: system.switch_cpus T0 : @__do_page_fault+716.32901 :
> Microcode_ROM : chks , t3, 0x7 : IntAlu :
> 32985546177000: system.switch_cpus T0 : @__do_page_fault+716.32902 :
> Microcode_ROM : wrdl %ctrl145, t3, t10 : IntAlu : D=0xabd0
> 32985546177250: system.switch_cpus T0 : @__do_page_fault+716.32903 :
> Microcode_ROM : wrdh t9, t4, t2 : IntAlu : D=0x81a015d0
> 32985546177500: system.switch_cpus T0 : @__do_page_fault+716.32904 :
> Microcode_ROM : rdsel t11b, t11b, %ctrl128 : IntAlu : D=0x
> 32985546177750: system.switch_cpus T0 : @__do_page_fault+716.32905 :
> Microcode_ROM : rdattr t10, %ctrl184, : IntAlu : D=0xabd0
> 32985546178000: system.switch_cpus T0 : @__do_page_fault+716.32906 :
> Microcode_ROM : andi t10, t10, 0x3 : IntAlu : D=0x
> 32985546178250: system.switch_cpus T0 : @__do_page_fault+716.32907 :
> Microcode_ROM : rdattr t5, %ctrl179, : IntAlu : D=0xabd0
> 32985546178500: system.switch_cpus T0 : @__do_page_fault+716.32908 :
> Microcode_ROM : andi t5, t5, 0x3 : IntAlu : D=0x
> 3298

[gem5-users] Microcode_ROM page fault not handled

2018-11-12 Thread Kleovoulos Kalaitzidis
+716.32915 : 
Microcode_ROM : br 0x8098 : No_OpClass : 
32985546217500: system.switch_cpus T0 : @__do_page_fault+716.32916 : 
Microcode_ROM : mov t6, t6, rsp : IntAlu : D=0xfe002000 
32985546217750: system.switch_cpus T0 : @__do_page_fault+716.32917 : 
Microcode_ROM : br 0x8099 : No_OpClass : 
32985546219750: system.switch_cpus T0 : @__do_page_fault+716.32921 : 
Microcode_ROM : andi t6b, t6b, 0xf0 : IntAlu : D=0xfe002000 
3298554622: system.switch_cpus T0 : @__do_page_fault+716.32922 : 
Microcode_ROM : subi t6, t6, 0x30 : IntAlu : D=0xfe001fd0 
32985546220250: system.switch_cpus T0 : @__do_page_fault+716.32923 : 
Microcode_ROM : wrip , t0, t9 : IntAlu : 
3298554650: system.switch_cpus T0 : @__do_page_fault+716.32924 : 
Microcode_ROM : srli t5, t4, 0x10 : IntAlu : D=0x81a08e10 
32985546222500: system.switch_cpus T0 : @__do_page_fault+716.32925 : 
Microcode_ROM : andi t5, t5, 0xff : IntAlu : D=0x0010 
32985546222750: system.switch_cpus T0 : @__do_page_fault+716.32926 : 
Microcode_ROM : wrdl %ctrl140, t3, t5 : IntAlu : D=0xabd0 
32985546226500: system.switch_cpus T0 : @__do_page_fault+716.32927 : 
Microcode_ROM : limm t10, 0 : IntAlu : D=0x 
32985546226750: system.switch_cpus T0 : @__do_page_fault+716.32928 : 
Microcode_ROM : rdsel t10w, t10w, %ctrl127 : IntAlu : D=0x0010 
32985546227000: system.switch_cpus T0 : @__do_page_fault+716.32929 : 
Microcode_ROM : wrsel %ctrl127, t5w, : IntAlu : D=0x0010 
32985546231500: Page-Fault: RIP 0x81057b6c: vector 14: #PF(0x3) at 
0xfe001fd0 

This page fault keeps happening all over again and the execution never 
continues. For some benchmarks it happens not far after restoring the 
checkpoint, 
for others it happens later and for some others it may even never appear. I 
have to also mention that the checkpoint which I restore is taken in a 
reasonable 
time after the benchmark execution start (around 2% of committed instructions) 
using AtomicSimpleCPU. Then I restore with DerivO3CPU or another cpu type 
of mine, always derived from DerivO3CPU. 

I am sorry for the long email, I tried to be as descriptive and comprehensive 
as possible. I would really appreciate your help because my knowledge over gem5 
can not really help me solve this. I am looking forward to hearing from anyone 
having any idea... 
Thank you a lot in advance. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Device Tree Blob(dtb) file to use with aarch64

2018-10-17 Thread Kleovoulos Kalaitzidis
Hello, 
I want to simulate gem5 full-system with armv8 and to do that I have downloaded 
the latest ARM full-system (aarch-system-20180409). 
Since I am heading for armv8, I got to use the image for aarch64-ubuntu and 
then the kernel vmlinux.vexpress_emm64 together wth 
binary boot_emm.arm64. What I am not sure is which dtb file I should combine 
with them in order to have a correct system simulation. 
For machine-type VExpress_EMM64 the FSConfig.py file has as default the 
"vexpress.aarch64.20140821.dtb" so I thought I will find the 
equivalent in the folder of 2018. I do not see something matching exactly and I 
did not find a lot of documentation so I would be grateful 
if somebody can help. 

Thank you in advace, 
Kind regards 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] How to associate a kernel offset to a linux image for full system simulation?

2018-09-11 Thread Kleovoulos Kalaitzidis
Hello, 
this is an older thread and the beginning of my effort to set up FS simulation 
for running SPEC benchmarks on x86 gem5. 

To do that, I totally followed the instructions given by Jason in his site : 
http://www.lowepower.com/jason/setting-up-gem5-full-system.html 
and I created an image of ubuntu-16.04 and the kernel version 4.8.13(using the 
config file provided by Jason). I also installed in the image 
the needed gem5-guest-tools. I can normally boot my image with qemu so then I 
went through to check that gem5 is also booting, before I 
use any .rcS files. 

I run the gem5 cmd: ./build/X86gem5.opt ./configs/example/fs.py 
--kernel=path_to_kernel --disk-image=path_to_ubuntu_image 
--cpu-type=AtomicSimpleCPU -n 1 --mem-size=2GB -fastmem --sys-clock=4GHz 
--cpu-clock=4GHz 
and then I do the telnet connection in another shell : telnet 127.0.0.1 3456 

The connection is normally attached and the boot process starts. In around 10 
min the file system is mounted and also the message 
"Welcome to Ubuntu.16.04" appears. Though, the boot process is not done yet and 
it keeps going for a lot of time. After around 5 hours 
it prints the message : 
Started gem5 init script. 
Starting Set console scheme... 

And then "Connection closed by foreign host" because on the part of the shell 
that gem5 cmd was executed, the command was killed. 
Except from the part that at the end the image did not boot, it even got 5 
hours to reach this point. On my web search, it is mentioned 
that the boot up process normally would take 30 min. Can somebody help me on 
what I miss here please? Taking so long to boot 
(and not booting also after all) does not seem to be normal. Has anybody built 
a linux image and a kernel that they play along together 
and work normally with gem5. I would be grateful if somebody could give me his 
advice. 

Thank you very much in advance, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

> From: "Kleovoulos Kalaitzidis" 
> To: "gem5 users mailing list" 
> Sent: Tuesday, July 31, 2018 4:18:07 PM
> Subject: Re: [gem5-users] How to associate a kernel offset to a linux image 
> for
> full system simulation?

> Hello,
> thank you for your reply. Sorry for not mentioning the gem5 command, I 
> thought I
> could omit it since
> it is the basic/default. So, the command line is :
> build/X86/build.opt configs/example/fs.py --kernel=/path_to_kernel
> --disk-image==/path_to_image

> In the fs.py file the command line option for kernel was already set to :
> root=/dev/hda1 by default,
> and you were right I changed that to the existing partition. But I am still
> facing a segfault .
> Hence, I will try to tackle it in another angle and if i find something 
> specific
> and useful I will reply again.
> Thanks again.

> --
> Kleovoulos Kalaitzidis
> Doctorant - Équipe PACAP

> Centre de recherche INRIA Rennes - Bretagne Atlantique
> Bâtiment 12E, Bureau E321, Campus de Beaulieu,
> 35042 Rennes Cedex, France

>> From: "Ciro Santilli" 
>> To: "gem5 users mailing list" 
>> Sent: Monday, July 30, 2018 5:31:26 PM
>> Subject: Re: [gem5-users] How to associate a kernel offset to a linux image 
>> for
>> full system simulation?

>> Did you try to set the kernel command line option as the kernel suggested?

>> root=/dev/hda2
>> root=/dev/sda2

>> Picking 2 as it is the larger partition.

>> I recommend always giving the full gem5 command line when posting here.

>> On Mon, Jul 30, 2018 at 4:00 PM, Kleovoulos Kalaitzidis < [
>> mailto:kleovoulos.kalaitzi...@inria.fr | kleovoulos.kalaitzi...@inria.fr ] >
>> wrote:

>>> I am trying to setup Gem5 for full system simulation on x86. Following 
>>> Jason's
>>> tutorial, I have generated the image file for ubuntu 18.04.
>>> Then for the kernel I did the following steps (with Jason's config):
>>> make oldconfig
>>> make vmlinux

>>> This creates an executable called vmlinux which I use as the kernel for 
>>> fs.py.
>>> After trying to run it and creating the telnet session, I get the following
>>> errors (extracted the end of the messages):

>>> Using kernel 4.8.13:
>>> List of all partitions:
>>> [ callto:0100%2016384 | 0100   16384 ] ram0 (driver?)
>>> [ callto:0101%2016384 | 0101   16384 ] ram1 (driver?)
>>> [ callto:0102%2016384 | 0102   16384 ] ram2 (driver?)
>>> [ callto:0103%2016384 | 0103   16384 ] ram3 (driver?)
>>> [ callto:0104%2016384 | 0104   16384 ] ram4 (driver?)
>>> [ callto:0105%2016384 |

Re: [gem5-users] How to associate a kernel offset to a linux image for full system simulation?

2018-07-31 Thread Kleovoulos Kalaitzidis
Hello, 
thank you for your reply. Sorry for not mentioning the gem5 command, I thought 
I could omit it since 
it is the basic/default. So, the command line is : 
build/X86/build.opt configs/example/fs.py --kernel=/path_to_kernel 
--disk-image==/path_to_image 

In the fs.py file the command line option for kernel was already set to : 
root=/dev/hda1 by default, 
and you were right I changed that to the existing partition. But I am still 
facing a segfault . 
Hence, I will try to tackle it in another angle and if i find something 
specific and useful I will reply again. 
Thanks again. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 




From: "Ciro Santilli"  
To: "gem5 users mailing list"  
Sent: Monday, July 30, 2018 5:31:26 PM 
Subject: Re: [gem5-users] How to associate a kernel offset to a linux image for 
full system simulation? 




BQ_BEGIN

Did you try to set the kernel command line option as the kernel suggested? 

root=/dev/hda2 
root=/dev/sda2 

Picking 2 as it is the larger partition. 

I recommend always giving the full gem5 command line when posting here. 




On Mon, Jul 30, 2018 at 4:00 PM, Kleovoulos Kalaitzidis < [ 
mailto:kleovoulos.kalaitzi...@inria.fr | kleovoulos.kalaitzi...@inria.fr ] > 
wrote: 

BQ_BEGIN

I am trying to setup Gem5 for full system simulation on x86. Following Jason's 
tutorial, I have generated the image file for ubuntu 18.04. 
Then for the kernel I did the following steps (with Jason's config): 
make oldconfig 
make vmlinux 

This creates an executable called vmlinux which I use as the kernel for fs.py. 
After trying to run it and creating the telnet session, I get the following 
errors (extracted the end of the messages): 

Using kernel 4.8.13: 
List of all partitions: 
[ callto:0100%2016384 | 0100   16384 ] ram0 (driver?) 
[ callto:0101%2016384 | 0101   16384 ] ram1 (driver?) 
[ callto:0102%2016384 | 0102   16384 ] ram2 (driver?) 
[ callto:0103%2016384 | 0103   16384 ] ram3 (driver?) 
[ callto:0104%2016384 | 0104   16384 ] ram4 (driver?) 
[ callto:0105%2016384 | 0105   16384 ] ram5 (driver?) 
[ callto:0106%2016384 | 0106   16384 ] ram6 (driver?) 
[ callto:0107%2016384 | 0107   16384 ] ram7 (driver?) 
[ callto:0108%2016384 | 0108   16384 ] ram8 (driver?) 
[ callto:0109%2016384 | 0109   16384 ] ram9 (driver?) 
010a 16384 ram10 (driver?) 
010b 16384 ram11 (driver?) 
010c 16384 ram12 (driver?) 
010d 16384 ram13 (driver?) 
010e 16384 ram14 (driver?) 
010f 16384 ram15 (driver?) 
[ callto:0300%208192000 | 0300 8192000 ] hda driver: ide-gd 
[ callto:0301%201024 | 0301    1024 ] hda1 
b3e8ba38-c801-461b-a765-d4ccb929b5df 
[ callto:0302%208188928 | 0302 8188928 ] hda2 
b68ea151-df09-44cf-8b99-0875407a5b25 
No filesystem could mount root, tried: ext3 ext4 ext2 fuseblk 
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1) 
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.8.13 #1 
Hardware name: , BIOS 06/08/2008 
0001 811e0a97 88001e5bc000 816ea24b 
810ae1b3 8810 88001ec57ec0 88001ec57e58 
88001ec57eb0 88001ec57ec8 0012  
Call Trace: 
[] ? dump_stack+0x5d/0x79 
[] ? panic+0xd3/0x20b 
[] ? mount_block_root+0x2a4/0x2bb 
[] ? prepare_namespace+0x161/0x197 
[] ? kernel_init_freeable+0x182/0x18b 
[] ? kernel_init+0x5/0xe6 
[] ? ret_from_fork+0x1f/0x40 
[] ? rest_init+0x69/0x69 
Kernel Offset: disabled 
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on 
unknown-block(3,1) 

Using Kernel 4.17.9: 
[ 0.413939] VFS: Cannot open root device "hda1" or unknown-block(0,0): error -6 
[ 0.413951] Please append a correct "root=" boot option; here are the available 
partitions: 
[ 0.413966] [ callto:0800%208192000 | 0800 8192000 ] sda 
[ 0.413967] driver: sd 
[ 0.413982] [ callto:0801%201024 | 0801    1024 ] sda1 
b3e8ba38-c801-461b-a765-d4ccb929b5df 
[ 0.413983] 
[ 0.414000] [ callto:0802%208188928 | 0802 8188928 ] sda2 
b68ea151-df09-44cf-8b99-0875407a5b25 
[ 0.414001] 
[ 0.414018] Kernel panic - not syncing: VFS: Unable to mount root fs on 
unknown-block(0,0) 

The problem seems to be during the creation of the kernel, where I do not 
install any driver. Jason mentions that I should probably need to install some 
drivers/software, but they are not specified. 
>From what I've seen on the internet it is likely to be a filesystem driver 
>missing or an incompatibility of kernel and linux version. 

Would anyone be able to give directions on how to understand and solve this 
issue? 


-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E

[gem5-users] How to associate a kernel offset to a linux image for full system simulation?

2018-07-30 Thread Kleovoulos Kalaitzidis
I am trying to setup Gem5 for full system simulation on x86. Following Jason's 
tutorial, I have generated the image file for ubuntu 18.04. 
Then for the kernel I did the following steps (with Jason's config): 
make oldconfig 
make vmlinux 

This creates an executable called vmlinux which I use as the kernel for fs.py. 
After trying to run it and creating the telnet session, I get the following 
errors (extracted the end of the messages): 

Using kernel 4.8.13: 
List of all partitions: 
[ callto:0100 16384 | 0100   16384 ] ram0 (driver?) 
[ callto:0101 16384 | 0101   16384 ] ram1 (driver?) 
[ callto:0102 16384 | 0102   16384 ] ram2 (driver?) 
[ callto:0103 16384 | 0103   16384 ] ram3 (driver?) 
[ callto:0104 16384 | 0104   16384 ] ram4 (driver?) 
[ callto:0105 16384 | 0105   16384 ] ram5 (driver?) 
[ callto:0106 16384 | 0106   16384 ] ram6 (driver?) 
[ callto:0107 16384 | 0107   16384 ] ram7 (driver?) 
[ callto:0108 16384 | 0108   16384 ] ram8 (driver?) 
[ callto:0109 16384 | 0109   16384 ] ram9 (driver?) 
010a 16384 ram10 (driver?) 
010b 16384 ram11 (driver?) 
010c 16384 ram12 (driver?) 
010d 16384 ram13 (driver?) 
010e 16384 ram14 (driver?) 
010f 16384 ram15 (driver?) 
[ callto:0300 8192000 | 0300 8192000 ] hda driver: ide-gd 
[ callto:0301 1024 | 0301    1024 ] hda1 
b3e8ba38-c801-461b-a765-d4ccb929b5df 
[ callto:0302 8188928 | 0302 8188928 ] hda2 
b68ea151-df09-44cf-8b99-0875407a5b25 
No filesystem could mount root, tried: ext3 ext4 ext2 fuseblk 
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1) 
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.8.13 #1 
Hardware name: , BIOS 06/08/2008 
0001 811e0a97 88001e5bc000 816ea24b 
810ae1b3 8810 88001ec57ec0 88001ec57e58 
88001ec57eb0 88001ec57ec8 0012  
Call Trace: 
[] ? dump_stack+0x5d/0x79 
[] ? panic+0xd3/0x20b 
[] ? mount_block_root+0x2a4/0x2bb 
[] ? prepare_namespace+0x161/0x197 
[] ? kernel_init_freeable+0x182/0x18b 
[] ? kernel_init+0x5/0xe6 
[] ? ret_from_fork+0x1f/0x40 
[] ? rest_init+0x69/0x69 
Kernel Offset: disabled 
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on 
unknown-block(3,1) 

Using Kernel 4.17.9: 
[ 0.413939] VFS: Cannot open root device "hda1" or unknown-block(0,0): error -6 
[ 0.413951] Please append a correct "root=" boot option; here are the available 
partitions: 
[ 0.413966] [ callto:0800 8192000 | 0800 8192000 ] sda 
[ 0.413967] driver: sd 
[ 0.413982] [ callto:0801 1024 | 0801    1024 ] sda1 
b3e8ba38-c801-461b-a765-d4ccb929b5df 
[ 0.413983] 
[ 0.414000] [ callto:0802 8188928 | 0802 8188928 ] sda2 
b68ea151-df09-44cf-8b99-0875407a5b25 
[ 0.414001] 
[ 0.414018] Kernel panic - not syncing: VFS: Unable to mount root fs on 
unknown-block(0,0) 

The problem seems to be during the creation of the kernel, where I do not 
install any driver. Jason mentions that I should probably need to install some 
drivers/software, but they are not specified. 
>From what I've seen on the internet it is likely to be a filesystem driver 
>missing or an incompatibility of kernel and linux version. 

Would anyone be able to give directions on how to understand and solve this 
issue? 


-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Adding a new resource

2018-03-17 Thread Kleovoulos Kalaitzidis
Hello, 
if I clearly understood your question you can do that in the SConscript file in 
the o3 folder. For any new structure you want to add create the equivalent 
files .hh/.cc (and maybe _impl.hh) and make this structure 
compile by including a corespondent line in the SConscript file. And then 
normally use it within the other structures in the pipeline. 
Hope it helps. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

- Original Message -

> From: "Pawan Joshi" <pawanjoshi...@gmail.com>
> To: gem5-users@gem5.org
> Sent: Friday, March 16, 2018 6:54:33 PM
> Subject: [gem5-users] Adding a new resource

> Hello all
> I am working on adding a new value predictor structure in the O3 CPU, but
> cannot seem to find the 'resources' directory where I have to code in my
> model. Where will this directory be - src/cpu/o3 doesn't have it.

> Thanks
> Pawan

> ___
> 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] Is it a way to change the behavior of "load" and "store"?

2018-03-05 Thread Kleovoulos Kalaitzidis
Hello, 
if you want to do that for a typical detailed simulation, then I suggest that 
you change the way a load/store is scheduled for execution in the pipeline, 
and not the actual ISA. However, this requires a lot of synchronisation since 
in the timing simulation in gem5 loads and stores are actually requests 
and responds between memory and the pipeline. In folder 
/src/arch/arm/isa/insts/ and in files ldr64.isa/str64.isa you can check the 
decoded loads 
and stores and then search for their actual way of execution in the generated 
files (/build/ARM/arch/arm/generated/exec-ns.cc.inc). There you can 
find all decoded instructions and their implementation. Though these apply for 
a detailed/timing simulation, I am not sure if it helps. 
Good luck! 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

- Original Message -

> From: "IL Ne" <nedni...@gmail.com>
> To: m5-us...@m5sim.org
> Sent: Sunday, February 25, 2018 10:05:43 AM
> Subject: [gem5-users] Is it a way to change the behavior of "load" and
> "store"?

> Hi,
> I know that dealing with memory instruction is complicated, which involves
> things like iew, lsq. In my work, I want to make the memory access process
> to be accomplished instantaniously, meanwhile functional simulation should
> still be right.

> For example, Macroop ADD contains microops like ld and st, which will takes
> several cycles. Simply delete it will get error infomation while simulating.
> Is it a way to make it happen without taking any time?

> Wei Wang

> ___
> 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 which source Reg is the one stored in memory? (for ARM AArch64)

2017-11-28 Thread Kleovoulos Kalaitzidis
Hello, 
I am simulating an OoO architecture using AArch64 and FS timing mode. I need to 
clarify which register index 
represents the register that is stored to the memory, when a store instruction 
is executed. Is there any way to be 
aware of which source register (index) is the one that represents the register 
to be stored? 

While trying to clarify that I investigated the following: 
In file /src/arch/arm/isa/insts/str64.isa one can find all possible store 
instructions, and then find their decoded form 
in /src/arch/arm/isa/formats/aarch64.isa by searching their name (for instance 
"STRW64"). 
Also, in the generated files one can see in detail the implementation of the 
instructions (/build/ARM/arch/arm/generated/exec-ns.cc.inc). 
A typical store instruction calls the "writeMemTiming", with argument "Mem". 
This function is implemented in 
the file src/arch/generic/memhelpers.hh, where w e see that "mem" represents 
the actual data that will be stored in the "addr" space. 

Moreover, again in the generated file, we see that in typical stores, a "XDest" 
variable is defined and reads the data from the source 
register index 1, and then it is assigned to the aforementioned variable "Mem" 
that will be transfered to the memory. However, in 
floating point this is not the case, because misc registers are involved, and 
the stored data are read from a different index than 1. 
And also, in cases of store pairs (sdp) two different registers are stored to a 
double address 
space, but this could be adapted if there would be a norm for the others. 

So, from the above I try to extract a formula that could define which source 
register is the one to be stored. I would be grateful if 
someone knows something better to share it with me. 

Thank you very much in advance and sorry for the long-complicated mail. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 


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

Re: [gem5-users] Datatype (data-width) of NEON operations for ARM in Gem5

2017-06-12 Thread Kleovoulos Kalaitzidis
Hello, 
I could suggest a way that I have been using for checking access width of load 
instructions but I am not sure it could fit for Neon instructions. 
So, normally the produced/built file in the generated folder "exec-ns.cc.inc" 
contains all the information in detail for any instruction. But you have to 
find the macro-representation of the instruction by the decoder files in the 
../src/arch/arm/isa and match the instruction name with the macro presented in 
the generated file. And following the decoder you can find out how the 
instruction is decoded depending on the bit representation, and you can use the 
same pattern of the decoder 
to identify an instruction beyond strcompare. So, for a given instruction you 
can find its macro in the decoder, grep it in the generated files to see its 
actual implementation and 
sizes etc. 

I hope it helps. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

- Original Message -

> From: "Gokul Subramanian Ravi" <gr...@wisc.edu>
> To: gem5-users@gem5.org
> Sent: Friday, June 9, 2017 9:17:35 PM
> Subject: [gem5-users] Datatype (data-width) of NEON operations for ARM in
> Gem5

> Hello all,

> I'm trying to optimize execution for ARM NEON instructions via Gem5 and for
> that I need to be able to identify the data-width of the executing NEON
> operations.

> From the ARM site, the instructions are as follows:

> VADD{cond}.datatype {Qd}, Qn, Qm > where datatype is I8, I16, I32, or
> I64.

> I'm identifying different instructions by performing "
> inst->staticInst->disassemble(..)" and then I do some string comparisons to
> figure out instructions I'm interested in. But for NEON instructions, the
> disassemble() doesn't tell me the "datatype".

> Can someone provide pointers as to how I can identify the datatype? I'm
> guessing I can get something from src/arch/arm/* but not sure what I should
> be looking at. Thank you!

> Best,
> Gokul Subramanian Ravi ,
> Graduate Student,
> ECE Dept.,
> University of Wisconsin-Madison

> ___
> 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] Fetch buffer and Instruction queue

2017-06-06 Thread Kleovoulos Kalaitzidis
Hello, 
the fetchBufferSize as it is mentioned in the code, it can be actually even 
smaller than a cache line. 
It holds the fetched instructions and it should be equal or bigger than the 
product fetchWidth*instSize. 
The fetched instructions are placed in this queue and by the end of the stage 
are placed to the timeBuffer to 
decode stage. Then the decoded ones follow rename by the equivalent timeBuffer 
again until reaching the IEW stage. 
And there, according to my understanding, in the "dispatchInsts" the 
instructions coming from rename are issued 
and placed in the unified scheduler-IQ/LSQ, from where they are actually 
executed. 
Hope it helps. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

- Original Message -

> From: "Ayman Moussa" <ayman.mouss...@imperial.ac.uk>
> To: "gem5 users mailing list" <gem5-users@gem5.org>
> Sent: Tuesday, May 30, 2017 7:50:54 PM
> Subject: Re: [gem5-users] Fetch buffer and Instruction queue

> I have evaluated the source code and found that fetchBufferSize is just a
> buffer for cache lines it seems. But I am confused;

> Where do decoded instructions go to? If the Instruction Queue is the unified
> scheduler, where are the the instructions issued from?

> Help much appreciated

> Thanks

> From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Moussa, Ayman
> <ayman.mouss...@imperial.ac.uk>
> Sent: 30 May 2017 17:23:46
> To: gem5 users mailing list
> Subject: [gem5-users] Fetch buffer and Instruction queue

> Hi

> I have a few simple questions about the parameters in the O3 CPU model.

> I have read http://gem5.org/O3CPU and I am unsure if the Instruction Queue
> the same as the unified scheduler/reservation station? If so, does
> "fetchBufferSize" represent the maxmimum number of instructions in the fetch
> buffer?

> O3CPU - gem5
> gem5.org
> The O3CPU is our new detailed model for the v2.0 release. It is an out of
> order CPU model loosely based on the Alpha 21264. This page will give you a
> general overview ...

> ___
> 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] Default functional units

2017-05-29 Thread Kleovoulos Kalaitzidis
Hello, 
and you are welcome. I would suggest that you change the number of "count" to 
the needed one and add only 
potentially new categories of FU in the FUList. IprPort () has to do with 
IprAccess and a search within the code 
shows that it has to do with prefetching instructions. 
That's what I know. 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

- Original Message -

> From: "Ayman Moussa" <ayman.mouss...@imperial.ac.uk>
> To: "gem5 users mailing list" <gem5-users@gem5.org>
> Sent: Monday, May 29, 2017 2:09:19 PM
> Subject: Re: [gem5-users] Default functional units

> Hi

> Thank you for your reply. I had assumed that only 1 of each functional unit
> was being created so I added two more IntALU() and FP_ALU() to the
> DefaultFUPool(). I guess this doubled the amount of units right? Do you know
> what the IprPort () unit does/stands for? I was unable to find any reference
> to it online or anywhere else.

> Thanks

> From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Kleovoulos
> Kalaitzidis <kleovoulos.kalaitzi...@inria.fr>
> Sent: 29 May 2017 09:00:34
> To: gem5 users mailing list
> Subject: Re: [gem5-users] Default functional units
> Hello,
> the "count" value corresponds to the number of instances of the equivalent
> unit, just as you understood.
> It does not "override" something, but defines the number of the specific FU
> that will be created and
> pushed in the fuPool. I suggest you to have a look in the file "fu_pool.cc"
> in the main constructor
> and it will become clear to you.

> Kind regards,

> --
> Kleovoulos Kalaitzidis
> Doctorant - Équipe PACAP

> Centre de recherche INRIA Rennes - Bretagne Atlantique
> Bâtiment 12E, Bureau E321, Campus de Beaulieu,
> 35042 Rennes Cedex, France

> - Original Message -

> > From: "Ayman Moussa" <ayman.mouss...@imperial.ac.uk>
> 
> > To: "gem5 users mailing list" <gem5-users@gem5.org>
> 
> > Sent: Thursday, May 25, 2017 10:02:31 PM
> 
> > Subject: [gem5-users] Default functional units
> 

> > In src/cpu/o3/ FUPool.py , the DefaultFUPool() contains one of each
> > functional unit:
> 

> > class DefaultFUPool(FUPool):
> 
> > FUList = [ IntALU(), IntMultDiv(), FP_ALU(), FP_MultDiv(), ReadPort(),
> 
> > SIMD_Unit(), WritePort(), RdWrPort(), IprPort() ]
> 

> > However there is a "count" parameter in each class definition in
> 

> > FuncUnitConfig.py that varies for each unit i.e
> 

> > class IntALU(FUDesc):
> 
> > opList = [ OpDesc(opClass='IntAlu') ]
> 
> > count = 6
> 

> > class FP_ALU(FUDesc):
> 
> > opList = [ OpDesc(opClass='FloatAdd', opLat=2),
> 
> > OpDesc(opClass='FloatCmp', opLat=2),
> 
> > OpDesc(opClass='FloatCvt', opLat=2) ]
> 
> > count = 4
> 

> > etc
> 

> > I'm confused by what this means. In the default pool, do we only have 1 of
> > each functional unit or does the parameter "count" override the number of
> > units for that class i.e count=6 means there will be 6 Integer ALUs?? I
> > have
> > looked at config.ini but I cannot tell how many functional units there are.
> 

> > I'm writing this for my thesis and I would really appreciate if someone
> > could
> > clear this up for me.
> 

> > Thanks
> 

> > Ayman
> 

> > ___
> 
> > 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

Re: [gem5-users] Default functional units

2017-05-29 Thread Kleovoulos Kalaitzidis
Hello, 
the "count" value corresponds to the number of instances of the equivalent 
unit, just as you understood. 
It does not "override" something, but defines the number of the specific FU 
that will be created and 
pushed in the fuPool. I suggest you to have a look in the file "fu_pool.cc" in 
the main constructor 
and it will become clear to you. 

Kind regards, 

-- 
Kleovoulos Kalaitzidis 
Doctorant - Équipe PACAP 

Centre de recherche INRIA Rennes - Bretagne Atlantique 
Bâtiment 12E, Bureau E321, Campus de Beaulieu, 
35042 Rennes Cedex, France 

- Original Message -

> From: "Ayman Moussa" <ayman.mouss...@imperial.ac.uk>
> To: "gem5 users mailing list" <gem5-users@gem5.org>
> Sent: Thursday, May 25, 2017 10:02:31 PM
> Subject: [gem5-users] Default functional units

> In src/cpu/o3/ FUPool.py , the DefaultFUPool() contains one of each
> functional unit:

> class DefaultFUPool(FUPool):
> FUList = [ IntALU(), IntMultDiv(), FP_ALU(), FP_MultDiv(), ReadPort(),
> SIMD_Unit(), WritePort(), RdWrPort(), IprPort() ]

> However there is a "count" parameter in each class definition in

> FuncUnitConfig.py that varies for each unit i.e

> class IntALU(FUDesc):
> opList = [ OpDesc(opClass='IntAlu') ]
> count = 6

> class FP_ALU(FUDesc):
> opList = [ OpDesc(opClass='FloatAdd', opLat=2),
> OpDesc(opClass='FloatCmp', opLat=2),
> OpDesc(opClass='FloatCvt', opLat=2) ]
> count = 4

> etc

> I'm confused by what this means. In the default pool, do we only have 1 of
> each functional unit or does the parameter "count" override the number of
> units for that class i.e count=6 means there will be 6 Integer ALUs?? I have
> looked at config.ini but I cannot tell how many functional units there are.

> I'm writing this for my thesis and I would really appreciate if someone could
> clear this up for me.

> Thanks

> Ayman

> ___
> 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