Sorry, I have just realized you specified where you got the kernel
( https://www.rico.cat/files/ICS18-gem5-sve-tutorial.pdf )

As far as I can see from the slides it is suggesting to clone

git clone -b gem5/v4.4 https://github.com/gem5/linux-arm-gem5

This is an old kernel version from a deprecated repository (it states:
Deprecated Linux kernel for ARMv7 with gem5-specific tweaks. Use 
https://gem5.googlesource.com/arm/linux instead).
If I inspect the gem5_defconfig I cannot see any mention of SVE enablement

https://github.com/gem5/linux-arm-gem5-legacy/blob/gem5/v4.4/arch/arm64/configs/gem5_defconfig


So I think you have two options here:


1) If you want to build Linux yourself I suggest you to clone a newer version 
from https://gem5.googlesource.com/arm/linux
arm/linux - Git at Google<https://gem5.googlesource.com/arm/linux>
Linux kernel (Aarch32 & Aarch64) with patches for gem5 and Arm.
gem5.googlesource.com
making sure to enable CONFIG_ARM64_SVE (with menuconfig)


2) If you don't care about building it yourself you could download a prebuilt 
kernel image:

wget http://dist.gem5.org/dist/current/arm/aarch-system-201901106.tar.bz2

You could also automatically download the kernel by running regressions:

./tests/main.py -j`nproc` -t`nproc` --isa ARM

Let me know if you have any problem

Giacomo




________________________________
From: gem5-users <[email protected]> on behalf of Giacomo Travaglini 
<[email protected]>
Sent: 03 February 2020 13:56
To: gem5 users mailing list <[email protected]>
Subject: Re: [gem5-users] Illegal Instruction when running FS with SVE code

Hi Jeckson.

Out of curiosity, where did you find that kernel image?

My assumption is that the kernel is not supporting SVE instructions (might be 
an old one?)
The reason for my guess is that the kernel is not recognizing the exception 
class:

"0x66000000 -- UNRECOGNIZED EC"

Which is the EC_TRAPPED_SVE exception code. So gem5 is enabling SVE 
instructions (this is why you are not getting
an undefined instruction fault) but since EL1 (Linux) is not doing it the 
instruction gets trapped
(To avoid this you should enable SVE in the kernel so that it is properly 
setting the CPACR_EL1.ZEN bits)

Kind Regards

Giacomo


________________________________
From: gem5-users <[email protected]> on behalf of Jeckson Souza 
<[email protected]>
Sent: 03 February 2020 13:20
To: gem5 users mailing list <[email protected]>
Subject: [gem5-users] Illegal Instruction when running FS with SVE code

Hi all, I am trying to run an application compiled using gcc generated SVE code 
(march=armv8-a+sve) using a full system simulation.
This is the command line I am using to run the simulation:

build/ARM/gem5.opt -d /path/to/output/ configs/example/arm/fs_bigLITTLE.py 
--cpu-type atomic --kernel /path/to/kernel/vmlinux.arm64  --disk 
/path/to/disk/linaro-minimal-aarch64.img  --big-cpus 2 --little-cpus 0 --param 
'system.sve_vl = 1' --bootscript /path/to/script/Script.rcS

The simulation starts up just fine but when I try to run the application I get:

[ 2355.819013] Bad mode in Synchronous Abort handler detected, code 0x66000000 
-- UNRECOGNIZED EC
[ 2355.819068] CPU: 0 PID: 997 Comm: atax_sve_omp Not tainted 4.4.0+ #1
[ 2355.819109] Hardware name: V2P-CA15 (DT)
[ 2355.819136] task: ffffffc077d68000 ti: ffffffc0785f0000 task.ti: 
ffffffc0785f0000
[ 2355.819183] PC is at 0x4030f4
[ 2355.819204] LR is at 0x4030c4
[ 2355.819225] pc : [<00000000004030f4>] lr : [<00000000004030c4>] pstate: 
80000000
[ 2355.819271] sp : 0000007ffffffa60
[ 2355.819294] x29: 0000007ffffffa60 x28: 0000000000000000
[ 2355.819333] x27: 00000fa000000fa0 x26: 0000007ffffffce8
[ 2355.819371] x25: 0000000000000001 x24: 0000007ffffffb30
[ 2355.819410] x23: 0000000000000002 x22: 0000007fb05ec040
[ 2355.819448] x21: 0000000000000000 x20: 0000000000000fa0
[ 2355.819486] x19: 0000000000000fa0 x18: 0000000000000000
[ 2355.819525] x17: 0000000000433c00 x16: 00000000004b4018
[ 2355.819563] x15: 00000000004bc7c8 x14: 0000000000000027
[ 2355.819601] x13: 00000000004b5b10 x12: 0000007fb05eb010
[ 2355.819640] x11: 00000000003d0f00 x10: 0000000000418490
[ 2355.819678] x9 : 0000007fb05ea910 x8 : 0000000000000062
[ 2355.819716] x7 : 00000000004bc448 x6 : 00000000004bc448
[ 2355.819755] x5 : 0000007fb05eb0e0 x4 : 0000007fb05eb710
[ 2355.819793] x3 : 00000000000007d0 x2 : 0000000000000000
[ 2355.819831] x1 : 00000000004bc700 x0 : 00000000004bdae0
[ 2355.819869]
Illegal instruction

Running the same application compiled without SVE code works with no problems.
I believe the SVE code in the application is also working, as I was able to run 
it using system call emulation (although a single-threaded version) with the 
SVE instructions.

I have compiled the kernel using the guide in this tutorial 
https://www.rico.cat/files/ICS18-gem5-sve-tutorial.pdf and I am using the 
latest gem5 revision in the master branch 
(4ae8d1c0ed18f351b52f421553b28fe109f87665).

Has anybody gone through this problem or have any suggestions?

Regards,
Jeckson Dellagostin Souza
PhD Candidate
Instituto de Informática
Universidade Federal do Rio Grande do Sul
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to