Hi Nilay,
Thanks for your reply. I have made some changes to the code, but not to this
part. I will remove my modifications and see if I am still running into the
issue.
The gdb trace also hints that req = 0x0 in translateData and translateAtomic
functions. Can that be the problem? I am doubtful because if I put a check
in setupMemRequest function in inorder/resources/cache_unit.cc file, it does
not confirm the issue, i.e., if I include a check there, the assert
condition does not hit before the program gets a seg fault. So, I am not
sure if I am running into memory issues here.
if (inst->dataMemReq == NULL) {
inst->dataMemReq = new Request(cpu->asid[tid], aligned_addr,
acc_size, flags,
inst->instAddr(),
cpu->readCpuId(),
tid);
* if(inst->dataMemReq == NULL)
assert(0);*
cache_req->memReq = inst->dataMemReq;
Program received signal SIGSEGV, Segmentation fault.
0x0000000000431f87 in Flags<unsigned char>::isSet (this=0x18, flags=4
'\004')
at build/ALPHA_SE/base/flags.hh:
63
63 bool isSet(Type flags) const { return (_flags & flags); }
(gdb) bt
#0 0x0000000000431f87 in Flags<unsigned char>::isSet (this=0x18,
flags=4 '\004') at build/ALPHA_SE/base/flags.hh:63
#1 0x00000000004626d5 in Request::getVaddr (this=0x0)
at build/ALPHA_SE/mem/request.hh:368
#2 0x000000000090c067 in AlphaISA::TLB::translateData (this=0x1710400,
*req=0x0*, tc=0x1923a90, write=false) at
build/ALPHA_SE/arch/alpha/tlb.cc:452
#3 0x000000000090d1b5 in AlphaISA::TLB::translateAtomic (this=0x1710400,
*req=0x0*, tc=0x1923a90, mode=BaseTLB::Read)
at build/ALPHA_SE/arch/alpha/tlb.cc:587
#4 0x000000000073a88c in CacheUnit::doTLBAccess (this=0x17268c0, inst=...,
cache_req=0x1bfe390, acc_size=8, flags=0, tlb_mode=BaseTLB::Read)
at build/ALPHA_SE/cpu/inorder/resources/cache_unit.cc:431
#5 0x000000000073d07b in CacheUnit::read (this=0x17268c0, inst=...,
addr=4831386496, data=0x7fffffff9a80 "", size=8, flags=0)
at build/ALPHA_SE/cpu/inorder/resources/cache_unit.cc:548
#6 0x00000000007d38f7 in InOrderCPU::read (this=0x172a160, inst=...,
addr=4831386496, data=0x7fffffff9a80 "", size=8, flags=0)
at build/ALPHA_SE/cpu/inorder/cpu.cc:1787
#7 0x00000000006d1b11 in InOrderDynInst::readBytes (this=0x26c3250,
addr=4831386496, data=0x7fffffff9a80 "", size=8, flags=0)
at build/ALPHA_SE/cpu/inorder/inorder_dyn_inst.cc:517
#8 0x00000000006d3795 in RefCountingPtr<FaultBase>
InOrderDynInst::read<unsigned long>(unsigned long, unsigned long&, unsigned
int) ()
Thanks,
Reena
On Sun, May 15, 2011 at 12:08 AM, reena panda <[email protected]> wrote:
> Just an addition. The benchmark runs fine till 50 million instructions,
> this segmentation fault happens when I try to run the benchmark for more
> number of instructions(by using maxinsts option). Can anybody give some
> help?
>
> Thanks,
> Reena
>
>
> On Sat, May 14, 2011 at 11:41 PM, reena panda <[email protected]>wrote:
>
>> Hi,
>> I am running m5 in ALPHA SE mode for inorder CPU model. I am getting a
>> segmentation fault in the data translation section in tlb.cc file, when I am
>> running for the SPEC2k6 mcf benchmark. I have not made any modifications to
>> this part of the code. So, could anybody help me figure out the cause of the
>> issue?
>>
>> Following is the gdb trace of the fault:- It shows that the fault is
>> occuring when a translation is attempted in translatedata function in
>> arch/tlb.cc file. The flag value returning from the isSet function is set at
>> "4" => the Vaddr is valid (as per the mem/request.hh file). What might be
>> causing this issue?
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000000000431f87 in Flags<unsigned char>::isSet (this=0x18, *flags=4
>> '\004')*
>> at build/ALPHA_SE/base/flags.hh:63
>> 63 bool isSet(Type flags) const { return (_flags & flags); }
>> (gdb) bt
>> #0 0x0000000000431f87 in Flags<unsigned char>::isSet (this=0x18,
>> flags=4 '\004') at build/ALPHA_SE/base/flags.hh:63
>> #1 0x00000000004626d5 in Request::getVaddr (this=0x0)
>> at build/ALPHA_SE/mem/request.hh:368
>> #2 0x000000000090c067 in AlphaISA::TLB::translateData (this=0x1710400,
>> req=0x0, tc=0x1923a90, write=false) at
>> build/ALPHA_SE/arch/alpha/tlb.cc:452
>> #3 0x000000000090d1b5 in AlphaISA::TLB::translateAtomic (this=0x1710400,
>> req=0x0, tc=0x1923a90, mode=BaseTLB::Read)
>> at build/ALPHA_SE/arch/alpha/tlb.cc:587
>> #4 0x000000000073a88c in CacheUnit::doTLBAccess (this=0x17268c0,
>> inst=...,
>> cache_req=0x1bfe390, acc_size=8, flags=0, tlb_mode=BaseTLB::Read)
>> at build/ALPHA_SE/cpu/inorder/resources/cache_unit.cc:431
>> #5 0x000000000073d07b in CacheUnit::read (this=0x17268c0, inst=...,
>> addr=4831386496, data=0x7fffffff9a80 "", size=8, flags=0)
>> at build/ALPHA_SE/cpu/inorder/resources/cache_unit.cc:548
>> #6 0x00000000007d38f7 in InOrderCPU::read (this=0x172a160, inst=...,
>> addr=4831386496, data=0x7fffffff9a80 "", size=8, flags=0)
>> at build/ALPHA_SE/cpu/inorder/cpu.cc:1787
>> #7 0x00000000006d1b11 in InOrderDynInst::readBytes (this=0x26c3250,
>> addr=4831386496, data=0x7fffffff9a80 "", size=8, flags=0)
>> at build/ALPHA_SE/cpu/inorder/inorder_dyn_inst.cc:517
>> #8 0x00000000006d3795 in RefCountingPtr<FaultBase>
>> InOrderDynInst::read<unsigned long>(unsigned long, unsigned long&, unsigned
>> int) ()
>>
>> Thanks,
>> Reena
>>
>>
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users