[gem5-users] test in Atomic is OK but in KVM is panic

2021-05-13 Thread Liyichao via gem5-users
Hi All:
 I have tested my simple program, if I use AtomicSimple CPU, the result 
is OK, but if I use X86KvmCpu, the result panic:


My simple program source code is:
#include 

int main()
{
unsigned int a = 0;
unsigned long i;
for (i=0;i<1000;i++)
a++;
printf("charlie, charlie, charliel\n");
return 0;
}


 root@ubuntu:/home/l00515693/whl/gem5# ./build/X86/gem5.opt 
configs/example/se.py --cpu-type=AtomicSimpleCPU 
--checkpoint-dir=/home/l00515693/whl/gem5/m5out/ --mem-size=2GB --num-cpus=1 -c 
./test
warn: CheckedInt already exists in allParams. This may be caused by the Python 
2.7 compatibility layer.
warn: Enum already exists in allParams. This may be caused by the Python 2.7 
compatibility layer.
warn: ScopedEnum already exists in allParams. This may be caused by the Python 
2.7 compatibility layer.
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 20.0.0.3
gem5 compiled May 13 2021 00:01:52
gem5 started May 14 2021 13:04:12
gem5 executing on ubuntu, pid 9926
command line: ./build/X86/gem5.opt configs/example/se.py 
--cpu-type=AtomicSimpleCPU --checkpoint-dir=/home/l00515693/whl/gem5/m5out/ 
--mem-size=2GB --num-cpus=1 -c ./test

Global frequency set at 1 ticks per second

warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (2048 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
 REAL SIMULATION 
info: Entering event queue @ 0.  Starting simulation...
info: Increasing stack size by one page.
warn: ignoring syscall access(...)
charlie, charlie, charliel




root@ubuntu:/home/l00515693/whl/gem5#
root@ubuntu:/home/l00515693/whl/gem5# ./build/X86/gem5.opt 
configs/example/se.py --cpu-type=X86KvmCPU 
--checkpoint-dir=/home/l00515693/whl/gem5/m5out/ --mem-size=2GB --num-cpus=1 -c 
./test

warn: CheckedInt already exists in allParams. This may be caused by the Python 
2.7 compatibility layer.
warn: Enum already exists in allParams. This may be caused by the Python 2.7 
compatibility layer.
warn: ScopedEnum already exists in allParams. This may be caused by the Python 
2.7 compatibility layer.
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 20.0.0.3
gem5 compiled May 13 2021 00:01:52
gem5 started May 14 2021 13:07:56
gem5 executing on ubuntu, pid 14352
command line: ./build/X86/gem5.opt configs/example/se.py --cpu-type=X86KvmCPU 
--checkpoint-dir=/home/l00515693/whl/gem5/m5out/ --mem-size=2GB --num-cpus=1 -c 
./test

Global frequency set at 1 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (2048 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
warn: CoherentXBar system.membus has no snooping ports attached!
 REAL SIMULATION 
info: KVM: Coalesced MMIO disabled by config.
warn: x86 cpuid family 0x: unimplemented function 2
warn: x86 cpuid family 0x: unimplemented function 3
warn: x86 cpuid family 0x: unimplemented function 4
warn: x86 cpuid family 0x: unimplemented function 5
warn: x86 cpuid family 0x: unimplemented function 6
info: Entering event queue @ 0.  Starting simulation...
warn: kvm-x86: MSR (0x3a) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0xd90) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x48) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x12) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x11) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4b564d01) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4b564d00) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4000) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4001) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4020) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4021) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4100) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4101) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4102) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4103) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4104) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4105) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4003) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4002) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4010) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4080) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x40b0) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4073) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4b564d02) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4b564d03) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x4b564d04) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x3b) unsupported by gem5. Skipping.
warn: kvm-x86: MSR (0x6e

[gem5-users] Ruby strict fifo message buffer panic: FIFO ordering violated

2021-05-13 Thread Jiayi Huang via gem5-users
Hi all,

I was using the Ruby MESI_Three_Level protocol with strict ordered FIFO and hit 
a ordering violation.
After some digging, I found that the cause of the issue.

There are two events enqueue message to the same message buffer with different 
arrival delay, where the first executed one has higher delay and cause the 
violation.

At tick 63032684, L1Cache_Controller executes forward_eviction_to_L0_else() and 
directly enqueues the message to the message queue of the L0Cache_Controller, 
but the arrival time is (curTick + l1_request_delay), where the l1_reqest_delay 
is the ticks for 2 cycles.
So this will set the m_last_arrival_time to 63033256.

At the same tick (63032684), L0Cache_Controller delay the head message due to 
blocking, and re-enqueue it to the end of the queue with a new arrival time, 
which is (curTick + cyclesToTicks(Cycles(1))), which is 63032970.

So the second one's arrival time is less than the first one's arrival time, 
violating the strict fifo order.

This is due to the arrival delay is accounted for after the message is enqueued 
to the message buffer. But two entities may directly enqueue messages to the 
same message buffer (even in the same cycle) with different arrival delays.

Is the logic broken or there are some assumption for using strict fifo?

Currently I disable the strict_fifo flag as a workaround.
Any suggestions for fixing this issue?

Please see the debug log below:
The message buffer is system.ruby.l1_cntrl0.bufferFromL1, the 
L0Cache_Controller is system.ruby.l0_cntrl0, and the L1Cache_Controller is 
system.ruby.l1_cntrl0.
-
63032398: system.ruby.l0_cntrl0.bufferFromL1: break here
63032398: system.ruby.l0_cntrl0.bufferFromL1: Enqueue arrival_time: 63032684, 
Message: [CoherenceMsg: addr = [0x11e580, line 0x11e580] Class = INV_ELSE pc = 
[0x0, line 0x0] AccessMode = User Sender = L1Cache-0 Dest = L0Cache-0 
MessageSize = Control DataBlk = [ 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 ] Dirty = 0 Prefetch = No ]
63032398: system.ruby.l0_cntrl0.mandatoryQueue: Peeking at head of queue.
63032398: system.ruby.l0_cntrl0.mandatoryQueue: Message: [RubyRequest: 
LineAddress = 0x3a2c0 PhysicalAddress = 0x3a2e0 Type = IFETCH ProgramCounter = 
0x43a2e0 AccessMode = Supervisor Size = 16 Prefetch = No ]
63032398: system.ruby.l0_cntrl0.Dcache: No tag match for address: 0x3a2c0
63032398: system.ruby.l0_cntrl0.mandatoryQueue: Peeking at head of queue.
63032398: system.ruby.l0_cntrl0.mandatoryQueue: Message: [RubyRequest: 
LineAddress = 0x3a2c0 PhysicalAddress = 0x3a2e0 Type = IFETCH ProgramCounter = 
0x43a2e0 AccessMode = Supervisor Size = 16 Prefetch = No ]
63032398: system.ruby.l0_cntrl0.mandatoryQueue: Popping
63032398: system.ruby.l0_cntrl0.Dcache: No tag match for address: 0x3a2c0
63032398: system.ruby.l1_cntrl0.requestFromL2: Enqueue arrival_time: 63032684, 
Message: [RequestMsg: addr = [0x26300, line 0x26300] Type = GETS pc = [0x5, 
line 0x0] AccessMode = User Requestor = L1Cache-1 Destination = [NetDest (17) 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0  -  - 0 0 0 0  -  -  -  -  -  -  -  -  -  -  -  -  - ] 
MessageSize = Request_Control DataBlk = [ 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 ] Len = 0 Dirty = 0 
Prefetch = No ]
63032684: system.ruby.l1_cntrl10.responseFromL2: Enqueue arrival_time: 
63032970, Message: [ResponseMsg: addr = [0x3a400, line 0x3a400] Type = DATA 
Sender = L2Cache-0 Destination = [NetDest (17) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
- 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0  - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -  - 0 0 
0 0  -  -  -  -  -  -  -  -  -  -  -  -  - ] DataBlk = [ 0xb9 0x1 0x0 0x0 0x0 
0x89 0xd0 0xf0 0x41 0xf 0xb1 0x8 0xf 0x84 0xbc 0xfe 0xff 0xff 0x4c 0x89 0xc7 
0xe8 0x16 0xbf 0xfe 0xff 0xe9 0xaf 0xfe 0xff 0xff 0x90 0x87 0x7 0x83 0xf8 0x1 
0x7e 0x8e 0x45 0x31 0xd2 0xba 0x1 0x0 0x0 0x0 0xbe 0x81 0x0 0x0 0x0 0xb8 0xca 
0x0 0x0 0x0 0xf 0x5 0xe9 0x75 0xff 0xff 0xff ] Dirty = 0 AckCount = 0 
MessageSize = Response_Data ]
63032684: system.ruby.l1_cntrl0.requestFromL2: Peeking at head of queue.
63032684: system.ruby.l1_cntrl0.requestFromL2: Message: [RequestMsg: addr = 
[0x26300, line 0x26300] Type = GETS pc = [0x5, line 0x0] AccessMode = User 
Requestor = L1Cache-1 Destination = [NetDest (17) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0  - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -  - 0 
0 0 0  -  -  -  -  -  -  -  -  -  -  -  -  - ] MessageSize = Request_Control 
DataBlk = [ 0x0 0x0 0x0 0x0 0x0 0

[gem5-users] Regarding Cache Clusivity

2021-05-13 Thread Chongzhi Zhao via gem5-users
Hi gem5 community,

TL;DR:

   1. In "classic" memory, the current 2 options, mostly_incl and
   mostly_excl, seem to apply only to cache fill but NOT eviction. As a
   result, blocks evicted from L2 may be still present in L1. Is my
   understanding correct?
   2. What would be a reasonable way to enforce strict inclusivity and
   exclusivity?

--

Details:
This link may provide some background:
https://m5-dev.m5sim.narkive.com/qRrXUtt7/gem5-dev-review-request-3156-mem-add-cache-clusivity-to-steer-behaviour-on-fill

   1. In the case of a replacement eviction, BaseCache::allocateBlock()
   finds a victim and then calls BaseCache::handleEvictions() >>
   BaseCache::evictBlock() >> Cache::evictBlock(). As a result, a packet is
   pushed into writebacks list. doWritebacks() doesn't seem to bother upstream
   caches that hold the same block.
   2. To implement strict inclusivity, the most obvious way to me is
   letting doWritebacks() send an invalidation packet through cpuSidePort. But
   I don't know how to stitch these things together without breaking other
   stuff.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Tracing Instructions in gem5 (re: Adding a New Instruction)

2021-05-13 Thread jzell001--- via gem5-users
Hi Everyone,

I am fairly new to gem5, so I apologize if this has already been addressed, but 
I haven't been able to find a solution yet.

I am trying to add a new type of store instruction to gem5 similar to the STG 
instruction from ARM's MTE instructions.

I was wondering if there was a debug flag or an approach using GDB to determine 
what files are used when processing an instruction in gem5. 

I have tried all of the debug flags that I thought might be relevant, and tried 
to debug it using GDB, but none of the flags seem to output the 
files/functions/classes that an instruction uses and GDB only seems to output 
the files/functions related to the build environment and C libraries and it 
seems to debug the src/sim/main.cc file rather than the instructions in the 
executable that I am trying to run, so I am not sure if I am doing something 
wrong. I've also tried using the python debugger (PDB), but it seems to be 
doing something similar to GDB, as I can't seem to get it to show the files 
that are accessed when processing an instruction. 

I know that I can create my own debug flags, but with so many files/functions 
available, I am worried I will have to have a DPRINTF() in every 
file/function/class, and I'm not entirely sure if I can use DPRINTF() 
statements in some of the file extension types.

I did find an example online adding an instruction in ARM in a slightly similar 
way (https://www.cl.cam.ac.uk/~rmk35/gem5-instruction.html), but it is causing 
a panic error right now when I run it, and it has a slightly different setup 
then the regular instructions that already exist in gem5, so I want to make 
sure I am understanding how instructions are processed in gem5, especially 
since I am assuming I will need to change more things to get the new store 
instruction to work properly.

I am aware of some of the general files that need to be edited, such as:

   src/arch/arm/isa/formats/aarch64.isa
   src/arch/arm/isa/templates/mem64.isa
   src/arch/arm/isa/insts/str64.isa

But I would like to be able to see all of these files/functions/classes as they 
are used/touched as an instruction is processed through gem5. For instance, 
seeing what things are accessed when a STR instruction that already is 
implemented in gem5 is being processed.

Any help or advice would be greatly appreciated. Thank you for your time!


Respectfully,

Jason Z.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] Early append of python link-flags shadows LD_LIBRARY_PATH and LDFLAGS_EXTRA for Linux build

2021-05-13 Thread Inman, Jeff via gem5-users
When building on RHEL7, in the case where python has not been suppressed via 
'--without-python' (i.e. USE_PYTHON is true), the SConstruct file uses 
'python[3]-config --libs --embed' or 'python[3]-config --ldflags' to get a list 
of tokens.  It then selects anything not starting with '-l' to append to 
LINKFLAGS.

In my case, these flags include '-L/usr/lib64'.  This step is early in the 
process of building LINKFLAGS.  Anything later extracted from the environment, 
or specified via LDFLAGS_EXTRA, is appended to LINKFLAGS after this.

The effect is that I can't override any library that is found at link-time in 
/usr/lib64.  For example, I've spent some time trying to figure out why my 
custom-built libprotobuf was not resolving undefined symbols in the gem5 link.  
Suppressing the addition of this '-L/usr/lib64' to the link-flags allows me to 
get past that problem, since my own version of the library is now used, but 
this is probably not the right fix, in general.

Thanks,
Jeff
 

___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] Re: Boot FS with kvm and multiple cores

2021-05-13 Thread Pedro Becker via gem5-users
Update.

I was reading a related discussion in the archive 
(https://www.mail-archive.com/gem5-users@gem5.org/msg19217.htm) where the OP 
reported they could successfully run kvm up to 8 cores with the 
configs/example/arm/fs_bigLITTLE.py script. So I tried running gem5 with his 
parameters and the arm/fs_bigLITTLE.py.

The following boots correctly:
./build/ARM/gem5.opt configs/example/arm/fs_bigLITTLE.py --kernel 
$M5_PATH/binaries/vmlinux.arm64 --machine-type VExpress_GEM5 --disk 
/scratch/pedro/ubuntu-18.04-arm64-docker.img --cpu-type kvm --big-cpus 4

But the following do not (boot get stuck right in the beginning):
./build/ARM/gem5.opt configs/example/fs.py --kernel 
$M5_PATH/binaries/vmlinux.arm64 --machine-type VExpress_GEM5 --disk-image 
/scratch/pedro/ubuntu-18.04-arm64-docker.img --cpu-type ArmV8KvmCPU --num-cpus 4

So I think there might be something I can adapt from fs_bigLITTLE to run with 
fs.py. Any hints on this are welcome, but I still need to review the 
differences, so it might be simple to fix.

The main problem I still have is fs_bigLITTLE.py with --big-cpus 8 (I want to 
have an 8-core setup) causes panic:
info: Using bootloader at address 0x10
info: Using kernel entry physical address at 0x8008
info: Loading DTB file: m5out/system.dtb at address 0x8800
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
info: KVM: Coalesced MMIO disabled by config.
panic: KVM: Failed to create virtual CPU
Memory Usage: 2619720 KBytes
Program aborted at tick 0
--- BEGIN LIBC BACKTRACE ---
./build/ARM/gem5.opt(_Z15print_backtracev+0x40)[0x5576c8e090]
./build/ARM/gem5.opt(_Z12abortHandleri+0x5c)[0x55770cbdb4]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7f9b01e6c0]
/lib/aarch64-linux-gnu/libc.so.6(raise+0xb0)[0x7f9abe94f8]
--- END LIBC BACKTRACE ---
Aborted (core dumped)

I saw some discussion on gem5 supporting gicv2 but not gicv3, but from what I 
read even the former should support up to 8 cores. So I'm not sure this is the 
problem here. Any suggestions?

Thanks, 
Pedro.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] FAST-FORWARD Option in Simulation

2021-05-13 Thread VEDIKA JITENDRA KULKARNI via gem5-users
Hello,

Please help me to know how to use the Fast Forward Option so that I can get 
statistics
for simulation excluding the initial Cache misses.

I had specified --fast-forward=1000 but in the stats file everything is 0.
I am using Ruby system with garnet network.

Following is the message on terminal:

Switched CPUS @ tick 509500
switching cpus
warn: ClockedObject: Already in the requested power state, request ignored
 REAL SIMULATION 
info: Entering event queue @ 509500.  Starting simulation...
Exiting @ tick 509500 because a thread reached the max instruction count

I have heard that in Ruby it can be done with checkpoints instead of 
fast-forward.
If that is so, please tell me how to accomplish that.

Thank you,
Vedika.

___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Boot FS with kvm and multiple cores

2021-05-13 Thread Pedro Becker via gem5-users
Hi all, 

I'm trying to boot Linux (from 
https://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries) with 
multiple cores and KVM. The target ISA is aarch64, so I am running gem5 on an 
aarch64 host machine, with KVM support. I'm trying with the latest stable gem5 
version (v21.0.0.0) and the latest images from guest binaries.

I'm using the fs.py script, and the boot works if I run it with only one CPU:

```
./build/ARM/gem5.opt configs/example/fs.py --kernel 
$M5_PATH/binaries/vmlinux.arm64 --disk-image 
/scratch/pedro/ubuntu-18.04-arm64-docker.img --cpu-type ArmV8KvmCPU --mem-size 
8GB --script configs/boot/my_test_script.rcS --num-cpus 1
```

But if I run with `--num-cpus 2` (or 4 or 8), the terminal gets stuck at:

```
warn: Returning zero for read from miscreg pmevtyper2_el0
warn: Returning zero for read from miscreg pmevtyper3_el0
warn: Returning zero for read from miscreg pmevtyper4_el0
warn: Returning zero for read from miscreg pmevtyper5_el0
warn: Returning zero for read from miscreg pmccfiltr_el0
```

With only one CPU the terminal rapidly progresses after that part:
```
warn: Returning zero for read from miscreg pmevtyper1_el0
warn: Returning zero for read from miscreg pmevtyper2_el0
warn: Returning zero for read from miscreg pmevtyper3_el0
warn: Returning zero for read from miscreg pmevtyper4_el0
warn: Returning zero for read from miscreg pmevtyper5_el0
warn: Returning zero for read from miscreg pmccfiltr_el0
warn: SCReg: Access to unknown device dcc0:site0:pos0:fn7:dev0
warn: Tried to read RealView I/O at offset 0x60 that doesn't exist
warn: Tried to read RealView I/O at offset 0x48 that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to read RealView I/O at offset 0x8 that doesn't exist
warn: Tried to read RealView I/O at offset 0x48 that doesn't exist
warn: EnergyCtrl: Disabled handler, ignoring read from reg 0
```
And I can attach the terminal and see things are ok.

So questions:
Is KVM with multiple cores supported by gem5? I thought so by looking here 
http://www.gem5.org/documentation/benchmark_status/gem5-20
If it is, should I give any additional flags or perform additional steps in 
order to run KVM with multiple cores?

Thank you in advance for any suggestions,
Pedro.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] Re: Gem5 in FS mode

2021-05-13 Thread Pedro Becker via gem5-users
Hi, 
If you want to run a binary that is inside the Linux image, then fs.py has a 
--script flag, which you can use. It allows you to pass a .rcS script to be 
read inside FS simulation through the /sbin/m5_readfile, which you can redirect 
to a local file (inside the simulation) and then execute. The script can then 
call your application. The gem5/configs/boot/ folder contains some .rcS scripts 
if you want to check out.

The /init.gem5 scripts inside the guest binaries 
(https://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries) - 
which is executed in the end of the boot - exemplify how these scripts can be 
read and used. Your image seems to be a different one so you might have to 
adapt to your case.

Also, I asked a similar question not long ago, which might help you:  
https://www.mail-archive.com/gem5-users@gem5.org/msg19180.html

Cheers, 
Pedro.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] Gem5 in FS mode

2021-05-13 Thread VAIDYA ROHINI VILAS via gem5-users
Hello,
I want to run my own binary file in FS mode of gem5 .
 I am using following command :
"time build/ALPHA_MESI_Two_Level/gem5.opt configs/example/fs.py  
--cpu-type=TimingSimpleCPU 
--kernel=/home/coep/gem5/alpha_fsi/binaries/vmlinux_2.6.27-gcc_4.3.4 
--disk-image=/home/coep/gem5/alpha_fsi/disks/linux-parsec-2-1-m5-with-test-inputs.img
 --ruby --l2cache -n16"

Which command I should add to run my binary file.
or there is any steps that i have to perform to run binary file of my code in 
FS mode of gem5 ??
Thank you in advance.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s