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] <mailto:[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