Thanks for reply

I applied ur suggested option as shown below

root.system.cpu.workload=LiveProcess(cmd= 'Mibench/input.dat >
Mibench/output_small.dat', executable ='Mibench/dijkstra_small_obj')

but still I get same error.


> Dijkstra from MiBench takes an argument, have you passed it when invoking
> gem5? It should be -o input.dat
> Em 17/10/2014 00:56, "Naveed Ul Mustafa via gem5-users"
> <gem5-users@gem5.org>
> escreveu:
>
>> Hi all,
>>
>> I am trying to run the dijkstra benchmark from Mibench mark suit on
>> Cortex
>> A7 processor. Follwing is the script for my system.
>> --------------------------------------------
>> import optparse
>> import sys
>> import m5
>> from m5.defines import buildEnv
>> from m5.objects import *
>> from m5.util import addToPath, fatal
>> addToPath('../common')
>> from FSConfig import *
>> from SysPaths import *
>> from Benchmarks import *
>> import Simulation
>> import CacheConfig
>> import MemConfig
>> from Caches import *
>> import Options
>> from O3_ARM_v7a import *
>>
>>
>> parser = optparse.OptionParser()
>> parser.add_option("--num_cpus", type="int")#adding a new option for
>> script
>> parser.add_option("--clock1",type= "string")
>> parser.add_option("--voltage1",type="string")
>> parser.add_option("--I_Cache",type="string")
>> parser.add_option("--D_Cache",type="string")
>> parser.add_option("--TLB_Size",type="string")
>> Options.addCommonOptions(parser)
>> Options.addFSOptions(parser)
>> (options, args) = parser.parse_args()
>>
>> #define one O3ARM7 core with 2GHz clock, 1mV operational voltage, and
>> 32MB
>> level1 Instruction and Data cache
>> #first define a clock and voltage domain
>> VoltageDomain1=VoltageDomain(voltage = options.sys_voltage)
>>
>> ClkVltDomain1=SrcClockDomain(clock=options.clock1,voltage_domain =
>> VoltageDomain1)
>> #define O3ARM7core
>> core1=O3_ARM_v7a_3()
>> #assign id to core
>> core1.cpu_id=0
>> #bind this core with clock and voltage domain define above
>> core1.ClockDomain=ClkVltDomain1
>> #define cache L1 Instruction Cache
>> L1ICache=O3_ARM_v7a_ICache(size=options.I_Cache)
>> #define cache L1 Data Cache
>> L1DCache=O3_ARM_v7a_DCache(size=options.D_Cache)
>>
>>
>> #define L2 TLB
>> ArmTLB=O3_ARM_v7aWalkCache()
>> ArmTLB.size=options.TLB_Size
>>
>> #Add L1 caches and L2 TLB to the core
>> core1.addTwoLevelCacheHierarchy(L1ICache,L1DCache,ArmTLB)
>>
>> #Craete the system with simple memory
>> mysystem = System(
>>         cpu=core1,
>>         physmem = SimpleMemory(),
>>         membus = CoherentXBar(),
>>         mem_mode = 'timing'
>>                 )
>>
>> #connect slave port of membus with system port
>> mysystem.system_port=mysystem.membus.slave
>> #connect master port of membus with port of physical memory
>> mysystem.physmem.port=mysystem.membus.master
>>
>> # create the interrupt controller
>> core1.createInterruptController()
>> core1.connectAllPorts(mysystem.membus)
>>
>> # Create a top-level voltage domain
>> mysystem.voltage_domain = VoltageDomain(voltage = options.sys_voltage)
>> # Create a source clock for the system and set the clock period
>> mysystem.clk_domain = SrcClockDomain(clock =
>> options.sys_clock,voltage_domain = mysystem.voltage_domain)
>>
>>
>> #declare the root
>> root = Root(full_system=False,system = mysystem)
>>
>> #assign the work load to the system, read data from input.dat and write
>> output to output_small.dat
>>
>> root.system.cpu.workload=LiveProcess(cmd= 'Mibench/input.dat >
>> Mibench/output_small.dat', executable ='Mibench/dijkstra_small_obj')
>>
>>
>>
>> # instantiate configuration
>> m5.instantiate()
>>
>> exit_event = m5.simulate()
>> print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()
>> --------------------------------------------
>>
>> I first cross compiled the source code of dijkstra bench mark on my
>> linux
>> for arm using following command.
>>
>> arm-linux-gnueabi-gcc -static  dijkstra_small.c -o dijkstra_small_obj
>>
>> then specified that executeable binary as workload to the system, as
>> specified in the script above.
>>
>> However, when I build the above script using following command
>>
>> build/ARM/gem5.opt configs/MyScripts/Stage0_P1.py --num_cpus=1
>> --clock1=1000MHz --I_Cache=32kB --D_Cache=32kB --TLB_Size=512kB
>>
>> I get following error
>>
>> gem5 Simulator System.  http://gem5.org
>> gem5 is copyrighted software; use the --copyright option for details.
>>
>> gem5 compiled Oct  1 2014 19:17:30
>> gem5 started Oct 17 2014 01:53:58
>> gem5 executing on naveed-desktop
>> command line: build/ARM/gem5.opt configs/MyScripts/Stage0_P1.py
>> --num_cpus=1 --clock1=1000MHz --I_Cache=32kB --D_Cache=32kB
>> --TLB_Size=512kB
>> Global frequency set at 1000000000000 ticks per second
>>       0: system.cpu.isa: ISA system set to: 0 0xbe30200
>> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000
>> info: Entering event queue @ 0.  Starting simulation...
>> info: Increasing stack size by one page.
>> Usage: dijkstra <filename>
>> Only supports matrix size is #define'd.
>> panic: Page table fault when accessing virtual address 0
>>  @ tick 20270000
>> [invoke:build/ARM/sim/faults.cc, line 70]
>> Memory Usage: 199008 KBytes
>> Program aborted at tick 20270000
>> Aborted (core dumped)
>>
>>
>> I need help of u guys to find out reason for the error. Please note that
>> I
>> have checked the file m5out/stat.tx, but this file is empty when the
>> error
>> appears.
>>
>> Thank you all in advance
>>
>>
>> Naveed Ul Mustafa
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>


Naveed Ul Mustafa

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

Reply via email to