Ali and Gabe, Thanks for your responses. I found out that disabling thumb instructions in gcc (-mno-thumb) fixes this problem. I'll try to dig into this more tomorrow.
Ali, As you mentioned, adding that flag did not help much. I got the panic message of "Page table fault when accessing virtual address." Thanks, Amin On Sat, Apr 28, 2012 at 5:14 PM, Gabe Black <[email protected]> wrote: > ** > I'd guess it isn't the printf itself that changes things, it's probably > that that changes the size of the function, stack frame, etc., and makes > the compiler generate different code or use different syscalls or > underlying functions. It could also be it changes how/when stdio is > buffered. > > Gabe > > > On 04/28/12 08:03, Ali Saidi wrote: > > The error message is printed with hex and the flags are listed with octal, > so they're not the same. It's complaining about NOATIME which as it turns > out is not in flag translation table in: src/arch/arm/linux/linux.cc > > You can certainly try to add it, however I'm skeptical that it's going > to fix your problem, but maybe it will. > > You're going to need to use the debug flags (particularly Exec) to > figure out what the CPU is doing differently with the addition of the > single printf. It shouldn't change anything, but clearly it is. > > Ali > > > > On Apr 27, 2012, at 10:38 PM, Amin Farmahini wrote: > > Hi, > > I have written a very simple hello world program to run on ARM SE. > However, the simulator prints a warning, and the simulation never finishes > (Gem5 keeps ticking, but no progress. So I have to manually stop it). Here > is the program: > > #include <stdio.h> > #include "m5op.h" > int main() { > printf("Hello World\n"); > m5_reset_stats(0,0); > printf("Hello World\n"); > printf("Hello World\n"); > printf("Hello World\n"); * //if I comment this out, then it works fine > * > } > > And here is the output: > command line: build/ARM/gem5.opt configs/example/se.py -c hello > Global frequency set at 1000000000000 ticks per second > 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 > **** REAL SIMULATION **** > info: Entering event queue @ 0. Starting simulation... > Hello World > warn: instruction 'cdp' unimplemented > warn: Syscall: *open: cannot decode flags 0x40000* > ^Chack: be nice to actually delete the event here > Exiting @ tick 85824528000 because user interrupt received > > I took a look at arm/linux.linux.hh and it seems like flag > *0x40000*corresponds to TGT_O_DIRECT. FYI, hostflags are set to 0x23000 > (defined in > syscall_emul.hh). > > The weird thing is that if I comment out the last printf("Hello World\n"); > then the whole simulation works just fine. > > Any thoughts what the problem might be? > > Thanks, > Amin > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ > gem5-users mailing > [email protected]http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
