Hi,
Thank you for your response with the patch link. It helped me a lot to
understand what's going on and limitations with clflush.

Do you have any idea if clflush alternative for arm isa is implemented in
gem5 properly or not. I work on persistent memory and for x86 isa, you need
clflush and fence ( which also may not be implemented properly). If I move
to arm, clflush and fence should be replaced with similar functionality
instruction ( I have no idea about arm isa, sorry can't mention explicit
instruction. Most likely DC CVAU and memory barrier in arm isa ).

Best
Shaikhul

On Sun, Jun 18, 2023 at 2:55 PM Ayaz Akram <yazak...@ucdavis.edu> wrote:

> Hi Shaikhul,
>
> I think clflush is not supported in Ruby caches at the moment. For
> reference, here is the original patch that added support for clflush
> instruction in gem5:
>
> arch-x86: Adding clflush, clflushopt, clwb instructions (7401) · Gerrit
> Code Review (googlesource.com)
> <https://gem5-review.googlesource.com/c/public/gem5/+/7401>
>
> -Ayaz
>
> On Fri, Jun 16, 2023 at 2:49 PM Khan Shaikhul Hadi via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hi,
>> When I include "clflush" instruction for out-of-order execution
>> simulation in MESITwoLevelCacheHeirarchy, it givis following error:
>>
>> build/X86/mem/ruby/system/RubyPort.cc:433: fatal: Ruby functional read
>>> failed for address 0x1f2b80
>>
>>
>> Commenting out clflush operations seems to solve the problem. Any idea
>> why it could happen? does CLFLUSH properly implemented in Two Level MESI
>> protocol ?
>>
>> I'm not proficient in gem5 debugging, but what I've observed is that this
>> fatal error is caused by some read request packet, surprisingly not any
>> flush request.  Also, If I commented out the fatal error message, system
>> gives warning as follows:
>>
>> build/X86/mem/ruby/system/RubyPort.cc:267: warn: Cache maintenance
>>> operations are not supported in Ruby.
>>
>>
>> and completes execution, no crash or other type of error message. I don't
>> know what "Cache maintenance operations" means here and is it related to
>> the previous error.
>>
>> I'm pretty confused and can't figure out how to approach. Anyone have any
>> suggestions ? I want to understand how clflush operation is simulated in
>> gem5 so that I could modify it for my research needs. I have attached my
>> configuration script and workload C++ file here.
>> _______________________________________________
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to