Really?
On Friday, December 6, 2013 6:36 PM, 马久跃 <[email protected]> wrote:
Hi everyone,
I'm working on attach a NIC (IGbE_e1000) to X86 full system, and make a dual
x86 system.
After modify FSConfig.py, everything work fine in classic memory model.
But when I switch to ruby model(MESI_CMP_Directory), gem5 crashed and report
"Invalid transition, event: Data, state: READY" for dma_cntrl0, but my NIC is
attached to dma_cntrl1. dma_cntrl0 is for IDE controller.
after add --debug-flags=EthernetAll, DMA, the debug output is as following:
---------------------------------------------------------------------------------------------------------------------------------
7589782415000: testsys.pc.eth0: IGbE: -------------- Cycle --------------
7589782415000: testsys.pc.eth0.RxDesc: Fetching descriptors head: 0 tail: 0
len: 256 cachePnt: 0 max_to_fetch: 0 descleft: 0
7589782415000: testsys.pc.eth0: RXS: No descriptors available in cache,
stopping ticking
7589782415000: testsys.pc.eth0: RXS: No descriptors available, fetching
7591043314500: testsys.pc.eth0: Wrote device register 0X2818 value 0XFE
7591043314500: testsys.pc.eth0: RXS: RDT Updated.
7591043314500: testsys.pc.eth0: RXS: RDT Fetching Descriptors!
7591043314500: testsys.pc.eth0.RxDesc: Fetching descriptors head: 0 tail: 254
len: 256 cachePnt: 0 max_to_fetch: 64 descleft: 254
7591043324500: testsys.pc.eth0.RxDesc: Fetching descriptors at 0x7f8db000
(0x7f8db000), size: 0x400
7591043324500: testsys.pc.eth0.dma: Starting DMA for addr: 0x7f8db000 size:
1024 sched: 0
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db000 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db040 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db080 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db0c0 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db100 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db140 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db180 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db1c0 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db200 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db240 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db280 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db2c0 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db300 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db340 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db380 size: 64
7591043324500: testsys.pc.eth0.dma: --Queuing DMA for addr: 0x7f8db3c0 size: 64
7591043324500: testsys.pc.eth0.dma: Trying to send ReadReq addr 0x7f8db000
7591043324500: testsys.pc.eth0.dma: -- Done
7591043324500: testsys.pc.eth0.dma: TransmitList: 15, inRetry: 0
7591043326000: testsys.pc.eth0.dma: Trying to send ReadReq addr 0x7f8db040
7591043326000: testsys.pc.eth0.dma: -- Failed, waiting for retry
7591043326000: testsys.pc.eth0.dma: TransmitList: 15, inRetry: 1
fatal: Invalid transition
testsys.ruby.dma_cntrl0 time: 15182086689 addr: [0x7f8db000, line 0x7f8db000]
event: Data state: READY
@ cycle 7591043344500
[doTransitionWorker:build/PARDX86/mem/protocol/DMA_Transitions.cc, line 103]
Memory Usage: 5160656 KBytes
---------------------------------------------------------------------------------------------------------------------------------
It seems eth0 send this DMA request to directory, but directory return the
response to dma_cntrl0 (connected to IDE).
I check protocol file MESI_CMP_directory-dir.sm, in dr_sendDMAData action, it
use
out_msg.Destination.add(map_Address_to_DMA(address));
set the destination, but map_Address_to_DMA() is just a static function which
always return 0 in MachineType.cc
186 MachineID
187 map_Address_to_DMA(const Address &addr)
188 {
189 MachineID dma = {MachineType_DMA, 0};
190 return dma;
191 }
Is this a Ruby's BUG, or I miss something?
Thanks.
Best Regards, Jiuyue
_______________________________________________
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