Hello there,

Problem solved. I did not set Cpu-Clock and Caches when I checkpoint the 
system, hence that’s why it throw the checkpoint in array.
Now I can successfully load the new script file and got the output needed.
Thanks.

Regards,
Elena

From: gem5-users 
<gem5-users-boun...@gem5.org<mailto:gem5-users-boun...@gem5.org>> on behalf of 
Elena Woo <l.l....@soton.ac.uk<mailto:l.l....@soton.ac.uk>>
Reply-To: gem5 users mailing list 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Friday, 3 August 2018 at 9:52 PM
To: TungHoang_GMail 
<hoangthanht...@gmail.com<mailto:hoangthanht...@gmail.com>>, gem5 users mailing 
list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] Unable to run script upon restoring from checkpoint

Thanks for the steps outlined. I have no issue with Step 1, because that’s 
exactly what I did. I just have problem with Step 2 because although it can 
restore from the checkpoint, it can’t read the new script file.

Best regards,
Elena

From: TungHoang_GMail 
<hoangthanht...@gmail.com<mailto:hoangthanht...@gmail.com>>
Date: Friday, 3 August 2018 at 9:27 PM
To: Elena Woo <l.l....@soton.ac.uk<mailto:l.l....@soton.ac.uk>>, gem5 users 
mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] Unable to run script upon restoring from checkpoint

Oh, I was misunderstand your flow but here is what I am using and it works well

1) Create checkpoint using hack_back script, REMEMBER: not turning on m5_term 
when checkpoint is created because it can take terminal control which is 
supposed to release to your simulation when restoring. In the other word, let 
checkpoing is created without any interaction.

2) Restore from checkpoint as usual.

I though you may have problem with the step 1

Best,
/T

On 08/03/2018 01:14 PM, Woo L.L. wrote:
Hi,

I don’t think the script has any problem because as you can see from the result 
below, without any checkpointing, the program was able to execute till the end 
after booting. So, I am pretty sure the “bash” is being supported and the 
script works fine. I just couldn’t get it to load after restoring from 
checkpoint.

 ./build/X86/gem5.opt -r -d sim_out --debug-flags=FaultInjection 
./configs/example/fs.py --script=./configs/boot/dijkstra.rcS --cpu-clock=250MHz 
—caches

Linux version 2.6.22.9 (gblack@fajita) (gcc version 4.1.2 (Gentoo 4.1.2 p1.1)) 
#12 SMP Fri Feb 27 22:10:33 PST 2009
Command line: earlyprintk=ttyS0 console=ttyS0 lpj=7999923 root=/dev/hda1
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000020000000 (usable)
 BIOS-e820: 0000000020000000 - 00000000c0000000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
end_pfn_map = 1048576
kernel direct mapping tables up to 100000000 @ 8000-d000
DMI 2.5 present.
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1048576
early_node_map[2] active PFN ranges
    0:        0 ->      159
    0:      256 ->   131072
Intel MultiProcessor Specification v1.4
MPTABLE: OEM ID:  MPTABLE: Product ID:  MPTABLE: APIC at: 0xFEE00000
Processor #0 (Bootup-CPU)
I/O APIC #1 at 0xFEC00000.
Setting APIC routing to flat
Processors: 1
Allocating PCI resources starting at c4000000 (gap: c0000000:3fff0000)
PERCPU: Allocating 34160 bytes of per cpu data
Built 1 zonelists.  Total pages: 127573
Kernel command line: earlyprintk=ttyS0 console=ttyS0 lpj=7999923 root=/dev/hda1
Initializing CPU#0
PID hash table entries: 2048 (order: 11, 16384 bytes)
time.c: Detected 250.000 MHz processor.
Console: colour dummy device 80x25
console handover: boot [earlyser0] -> real [ttyS0]
Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
Checking aperture...
Memory: 509268k/524288k available (3699k kernel code, 14464k reserved, 1767k 
data, 248k init)
Calibrating delay loop (skipped)... 3999.96 BogoMIPS preset
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
using mwait in idle threads.
SMP alternatives: switching to UP code
Freeing SMP alternatives: 34k freed
Using local APIC timer interrupts.
result 976564
Detected 0.976 MHz APIC timer.
Brought up 1 CPUs
NET: Registered protocol family 16
PCI: Using configuration type 1
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Probing PCI hardware
PCI->APIC IRQ transform: 0000:00:04.0[A] -> IRQ 16
PCI-GART: No AMD northbridge found.
Time: tsc clocksource has been installed.
NET: Registered protocol family 2
IP route cache hash table entries: 16384 (order: 5, 131072 bytes)
TCP established hash table entries: 65536 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 65536 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
Installing knfsd (copyright (C) 1996 
o...@monad.swb.de<mailto:o...@monad.swb.de>).
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102 (c) Dave Jones
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 8250
floppy0: no floppy controllers found
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: module loaded
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.60.
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <m...@qualcomm.com><mailto:m...@qualcomm.com>
netconsole: not configured, aborting
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 0000:00:04.0
PCI: Enabling device 0000:00:04.0 (0000 -> 0001)
PIIX4: chipset revision 0
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1000-0x1007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0x1008-0x100f, BIOS settings: hdc:DMA, hdd:DMA
hda: M5 IDE Disk, ATA DISK drive
hdb: M5 IDE Disk, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: max request size: 128KiB
hda: 4194288 sectors (2147 MB), CHS=4161/16/63, UDMA(33)
 hda: hda1
hdb: max request size: 128KiB
hdb: 4177920 sectors (2139 MB), CHS=4144/16/63, UDMA(33)
 hdb: unknown partition table
megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 EST 2006)
megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 2006)
megasas: 00.00.03.10-rc5 Thu May 17 10:09:32 PDT 2007
Fusion MPT base driver 3.04.04
Copyright (c) 1999-2007 LSI Logic Corporation
Fusion MPT SPI Host driver 3.04.04
Fusion MPT SAS Host driver 3.04.04
ieee1394: raw1394: /dev/raw1394 device initialized
USB Universal Host Controller Interface driver v3.0
usbcore: registered new interface driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input0
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: 
dm-de...@redhat.com<mailto:dm-de...@redhat.com>
input: PS/2 Generic Mouse as /class/input/input1
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
oprofile: using timer interrupt.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 248k freed
mounting filesystems...
loading script...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Running Dijkstra benchmark now
Shortest path is 0 in cost. Path is:  0 50
Finishing now....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Thanks.

Regards,
Elena

From: TungHoang_GMail 
<hoangthanht...@gmail.com<mailto:hoangthanht...@gmail.com>>
Date: Friday, 3 August 2018 at 6:37 PM
To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>, 
Elena Woo <l.l....@soton.ac.uk<mailto:l.l....@soton.ac.uk>>
Subject: Re: [gem5-users] Unable to run script upon restoring from checkpoint

You should check if your image file support "bash" or "sh". Just mount your 
image in specific folder, find bash or sh in /bin then adapt your script.

/T
On 08/03/2018 12:47 AM, Woo L.L. wrote:
Dear all,

I am having a problem trying to run the second script file after restoring from 
checkpoint.
I have used used hack_back_ckpt.rcS to create 1st checkpoint after booting from 
Linux. Here is the command I have used to run the checkpointing:
./build/X86/gem5.opt ./configs/example/fs.py 
--script=./configs/boot/hack_back_ckpt.rcS

And here is the result after checkpointing:
DMTCP:: !!!! SIMULATION IS NOT ATTACHED WITH DMTCP !!!
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Apr 12 2018 21:57:22
gem5 started Aug  3 2018 08:24:00
gem5 executing on elena-VirtualBox, pid 2854
command line: ./build/X86/gem5.opt ./configs/example/fs.py 
--script=./configs/boot/hack_back_ckpt.rcS

Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (512 Mbytes)
Setting Entry Point
info: kernel located at: /home/elena/RTS/gemfi/x86/binaries/vmlinux
Listening for com_1 connection on port 3456
      0: rtc: Real-time clock set to Sun Jan  1 00:00:00 2012
0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000
warn: Reading current count from inactive timer.
**** REAL SIMULATION ****
info: Entering event queue @ 0.  Starting simulation...
warn: Don't know what interrupt to clear for console.
warn: x86 cpuid: unknown family 0x8086
warn: instruction 'wbinvd' unimplemented
warn: Tried to clear PCI interrupt 14
warn: Unknown mouse command 0xe1.
Writing checkpoint
info: Entering event queue @ 5131049520000.  Starting simulation...
Exiting @ tick 5132244233500 because m5_exit instruction encountered

To run the second script file, this was what I used:
./build/X86/gem5.opt --debug-flags=FaultInjection ./configs/example/fs.py 
--cpu-clock=250MHz --caches -r 1 --script=./configs/boot/dijkstra.py

The result is shown as below:
DMTCP:: !!!! SIMULATION IS NOT ATTACHED WITH DMTCP !!!
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Apr 12 2018 21:57:22
gem5 started Aug  3 2018 08:33:33
gem5 executing on elena-VirtualBox, pid 2878
command line: ./build/X86/gem5.opt --debug-flags=FaultInjection 
./configs/example/fs.py --cpu-clock=250MHz --caches -r 1 
--script=./configs/boot/dijkstra.py

Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (512 Mbytes)
Setting Entry Point
info: kernel located at: /home/elena/RTS/gemfi/x86/binaries/vmlinux
Listening for com_1 connection on port 3456
      0: rtc: Real-time clock set to Sun Jan  1 00:00:00 2012
0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000
      0: system.fi_system: Initialized FI_System
warn: Reading current count from inactive timer.
**** REAL SIMULATION ****
5131049520000: system.fi_system: Starting FI
info: Entering event queue @ 5131049520000.  Starting simulation...
warn: Don't know what interrupt to clear for console.

On the terminal, all it showed was:
Loading new script…

This is the content of the 2nd script file:
#!/bin/bash
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
echo "Running Dijkstra benchmark now"
/sbin/m5 dumpresetstats [100, 100000]
./dijkstra_1_FI input_dijkstra10.dat
echo "Finishing now...."
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
/sbin/m5 exit

Without running checkpointing, the entire program was able to terminate and 
provide proper result. However, with checkpointing, it seems to be stuck at 
trying to read a new script.
I am not sure if I have missed any steps in between. I followed through the 
discussions about this issue – I didn’t connect my terminal during the 1st 
checkpointing, I view the result by tracing the terminal file. I didn’t make 
any changes to the hack_back_ckpt.rcS file. I also tried after loading the 
checkpoint and leaving the —script empty, I brought up the terminal to try and 
input the script file but only Ctrl+C made a difference. Anything other than 
that showed no difference. So, I am not sure where I have gone wrong. 
Appreciate all the help and guidance please.

Thanks.

Regards,
Elena



_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto: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

Reply via email to