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 >
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users