Hi Andreas, I assume so. I get this 'segmentation fault' while booting linux: ./build/X86/gem5.opt configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9.smp
But I think, I booted the linux last week with similar configuration and I think it worked fine. It seems bit strange to me that I am seeing this segmentation fault now. Best Regards, Hassan On 28 November 2013 13:53, Andreas Hansson <[email protected]> wrote: > Hi Hassan, > > What is it that is assuming that the memory is contiguous? The guest OS? > > Andreas > > From: Ahmad Hassan <[email protected]> > Reply-To: gem5 users mailing list <[email protected]> > Date: Thursday, 28 November 2013 06:43 > > To: gem5 users mailing list <[email protected]> > Subject: Re: [gem5-users] Running two SimpleDram instances simulataniously > > Hi Andreas, > > I have defined two memory controllers: > > self.dram2_ctl = SimpleDDR3(range = > AddrRange(start='0MB',size='3GB')) > self.dram1_ctl = SimpleDDR3(range = > AddrRange(start='10GB',size='16GB')) > > But I am getting exception in findPort method where it raises because it > tries to access physical address 6438256672 for membus > > DPRINTF(BusAddrRanges, "Unable to find destination for addr %#llx, " > "will use default port\n", addr); > > As a result of that, I get segmentation fault during memcpy operation in > abstract_mem.cc:access > This error is happening because system is assuming that all the 19GB of > physical memory is contiguous. Please can you advise me how to fix this. > Thanks. > > Best Regards, Hassan > > > > > On 31 October 2013 18:00, Andreas Hansson <[email protected]> wrote: > >> Hi Ahmad, >> >> If you change the bus code then every bus in the system will do this, >> including the I/O bus. I suspect this is the reason for your error. You can >> keep on the hackish path and add a name check to only do this for the >> membus (or add a parameter to the bus and change the MemBus instance), or >> preferably get of the hackish path and rely on physical addresses and sort >> out your “placement” by assigning the appropriate physical addresses in >> your TLBs (or preferably in the OS). >> >> Red pill or blue pill. >> >> Andreas >> >> From: Ahmad Hassan <[email protected]> >> Reply-To: gem5 users mailing list <[email protected]> >> Date: Thursday, 31 October 2013 16:51 >> >> To: gem5 users mailing list <[email protected]> >> Subject: Re: [gem5-users] Running two SimpleDram instances >> simulataniously >> >> Hi Andreas, >> >> In my system: >> DDR3 memory controller: Port ID 0 //2GB capacity >> DDR2 memory controller: Port ID 1 //1GB capacity >> >> So I want to do the following: >> >> When the packet comes into bus.cc:findPort then it searches for >> packet's physical address in the registered portMap of address ranges and >> returns the appropriate port ID. I don't want to do this. Instead, I want >> to select port based on the virtual address. I have list of virtual >> addresses say V=[V1....Vn] and I want to redirect all the packets with >> virtual address within set 'V' to DDR3 Port 0 and all other memory packets >> to the DDR2 port 1. >> >> In order to achieve this, I changed bus.cc:findPort as: >> >> if (search(V, pkt->req->getVaddr()) == true) >> dest_id = 0; >> else >> dest_id = 1; >> >> After that, abstract_mem.cc:access complained that the packet address >> doesn't belong to the range of PORT '1'. Just as a quick hack, I changed it >> as: >> >> old: uint8_t *hostAddr = pmemAddr + pkt->getAddr() - range.start(); >> new: uint8_t *hostAddr = pmemAddr + pkt->getAddr() - 0; // Port ID 0 >> range starts with '0' >> >> Now the linux starts booting but during the half way, it throws this >> cmos assertion. Please can you suggest the clean or right way of >> implementing what I am trying to achieve. >> >> Thanks a lot >> >> kind Regards, Ahmad >> >> >> On 31 October 2013 16:25, Andreas Hansson <[email protected]>wrote: >> >>> Hi Ahmad, >>> >>> I could be wrong, but judging by your mail, I get the impression that >>> you’re overriding the address decoding. That is essentially saying “If I >>> send requests for address X to address Y, why do things not work?”. I would >>> be very surprised if it did, as two addresses will now map to the same >>> location :-). Perhaps I’m not understanding what you’ve changed. >>> >>> Andreas >>> >>> From: Ahmad Hassan <[email protected]> >>> Reply-To: gem5 users mailing list <[email protected]> >>> Date: Thursday, 31 October 2013 16:12 >>> >>> To: gem5 users mailing list <[email protected]> >>> Subject: Re: [gem5-users] Running two SimpleDram instances >>> simulataniously >>> >>> HI Andreas, >>> >>> I have connected two memory controllers and I can see the following >>> two port IDs and their physical address ranges: >>> >>> Adding range [0 : 2147483647] for id 0 system.membus // 2GB >>> memory >>> Adding range [2147483648 : 3221225471] for id 1 system.membus >>> //1GB memroy >>> >>> Inside findPort method of bus.cc, if I assign the packet of port id >>> '0' to port id '1' then I get the following assertion error. This happens >>> in half way through the linux boot up: >>> >>> gem5.opt: build/X86/dev/x86/cmos.cc:70: virtual Tick >>> X86ISA::Cmos::write(PacketPtr): Assertion `pkt->getSize() == 1' failed. >>> >>> Please do you know what is causing that? Also I had to disable >>> assertion in abstract memory which validates that the packet's physical >>> address in with in the range of memory controller. >>> >>> Thanks. >>> >>> kind Regards, Ahmad >>> >>> -- IMPORTANT NOTICE: The contents of this email and any attachments are >>> confidential and may also be privileged. If you are not the intended >>> recipient, please notify the sender immediately and do not disclose the >>> contents to any other person, use it for any purpose, or store or copy the >>> information in any medium. Thank you. >>> >>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>> Registered in England & Wales, Company No: 2557590 >>> ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 >>> 9NJ, Registered in England & Wales, Company No: 2548782 >>> >>> _______________________________________________ >>> gem5-users mailing list >>> [email protected] >>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>> >> >> >> -- IMPORTANT NOTICE: The contents of this email and any attachments are >> confidential and may also be privileged. If you are not the intended >> recipient, please notify the sender immediately and do not disclose the >> contents to any other person, use it for any purpose, or store or copy the >> information in any medium. Thank you. >> >> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >> Registered in England & Wales, Company No: 2557590 >> ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >> Registered in England & Wales, Company No: 2548782 >> >> _______________________________________________ >> gem5-users mailing list >> [email protected] >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> > > > -- IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > > ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, > Registered in England & Wales, Company No: 2557590 > ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, > Registered in England & Wales, Company No: 2548782 > > _______________________________________________ > 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
