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

Reply via email to