Hi Gabriel,

Sorry, but I am confused. I recompiled with the changes and also set 
percent_uncacheable = 100 for the DMA controller. It still shows the same error.
Also, isn't DMA supposed to work coherently with the protocol? Otherwise 
couldn't we simply read or write without worrying about coherency in 
uncacheable accesses? Line 86 of ruby_mem_test also says that ruby does not 
support atomic or uncacheable accesses.

I am trying to make changes to a protocol in order for it to support dma 
operations and was hoping I could speed up the checking process by using 
ruby_mem_test rather than waiting for hours for fs.py to boot up everytime.

Thanks and Regards,
Gautam Pathak
David R. Cheriton School of Computer Science
University of Waterloo
________________________________
From: gabriel.bus...@arteris.com <gabriel.bus...@arteris.com>
Sent: Tuesday, September 27, 2022 2:06 AM
To: gem5-users@gem5.org <gem5-users@gem5.org>
Subject: [gem5-users] Re: Ruby_mem_test.py dma test bug


Hi Gautam,

I believe this is caused by a failing dice rolling on line memtest.cc:223. 
Replace:

    bool uncacheable = random_mt.random(0, 100) < percentUncacheable;

with

    bool uncacheable = random_mt.random(1, 100) <= percentUncacheable;

I forgot to push that patch, my mistake.

Explanation: DMAs should be emulated by MemTest by sending 100% uncachable 
accesses. The offending line causes the DMA MemTest to send a coherent access 
~1% of the time although configured with percent_uncacheable == 100. These 1% 
accesses then target the same memory region as the coherent CPU (cache) 
accesses but it is handled as a DMA (non-coherent) access by Ruby.

And there you get that error that merely tells you that an unexpected value was 
read by MemTest.

Best,

Gabriel
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to