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

Reply via email to