Hi Amin, I'd really like to know what is going on. It all should work. What version of gcc are you using?
Thanks, Ali On Apr 29, 2012, at 11:00 PM, Amin Farmahini wrote: > 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 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 > > _______________________________________________ > 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
