Comments (10)
@ivanaamit the issue is solved. Thanks.
from gem5.
@ivanaamit, @yichungchen84, there are some fixes that are required so the Atomic operation is properly forwarded from the L3 to the HNF. I'm planning to have a look at that, so maybe we could keep this issue open and will keep you guys posted.
from gem5.
Ping @tiagormk.
from gem5.
Hi @yichungchen84, could you attach the config.ini and config.json you use.
Note that the far AMO feature is intended to be used only with three levels of cache. However, near AMO should work as the old version 23.0.0.
from gem5.
Hi @vsoriap
Sorry that due to the IT restriction, I cannot share the config,ini/json files. I will see if I can share the configuration files (CHI_config.py, etc).
My configuration has private L1, private L2, shared L3, and SLC. I try to set all cache controllers "alloc_on_atomic = false". I assume it should turn off AMO feature (am I correct?), but it still has deadlocks with "alloc_on_atomic = false".
Would you mind to let me know where I can look into source code of far AMO feature/policy, so I can configure it to support my cache hierarchy? Thanks.
from gem5.
Okay, I see that you have 4 levels of cache. We never tested that configuration, and you may encounter some problems. How L3 and SLC have the flags is_HN configured?
alloc_on_atomic
is not a flag that turns off AMO. AMOs are instructions supported in the RISC-V and ARM architecture. You cannot switch them off. What you can do is remove them from your binary.
What alloc_on_atomic
really encodes is if the HNF needs to allocate a cache line or not if an Atomic Transaction arrives at the HNF and the cache line is not present. If true, the HNF requests the cache line to the SNF, performs the operation, and stores it in the local cache associated with the HNF (in your case, I assume it's the SLC). If false, the HNF requests the cache line to the SNF, performs the atomic operation, and then writes the updated value back to SNF.
If you want to simulate AMOs as they were executed in gem5 version 23.0.0. you need to set policy_type
to 0 (Execute all AMO in the L1).
You can check the AMO code here
from gem5.
hi @vsoriap
Thanks for the info. It is really helpful.
My configuration: L3 is_HN = false, SLC is_HN = true.
I tried another configuration L1 private, L2 shared, and SLC. This works without the issue. I guess 4-level cache it the problem.
I will try the policy_type = 0 later on.
from gem5.
Hi @yichungchen84, it appears that this issue has been resolved. However, I wanted to double-check before closing it. Thanks.
from gem5.
hi @ivanaamit
Thanks. The issue is resolved. I was wondering whether it will support 4-level cache int the future?
from gem5.
Thanks, @tiagormk . Let me know if I can be of any help.
from gem5.
Related Issues (20)
- ARM32 prefetch triggers infinite loop HOT 1
- mouse.cc throws panic: Resetting mouse wrap mode unimplemented.
- Failed to connect GDB for RISC-V CPU
- Disk images updates for v24.0
- Using Ruby-CHI as a soft NoC for cosimulation with Xiangshan tile HOT 1
- arch-x86: logical instructions execute in-order due to flags input dependency on Zaps CCReg
- arch-x86: register moves erroneously depend on prior value in destination register
- broken docker pull ghcr.io/gem5ubuntu-20.04_all-dependencies:v23-0 HOT 1
- tests,arch-riscv: adding rvv intrinsic test suite
- gem5 gcn3 vega run database HOT 9
- X86 kvm sometimes fail with timer error
- RISCV SE mode: pthread_create() leads to a problem with clone3() HOT 3
- x86MinorCPU doesn't work HOT 2
- arch-riscv: remove default `vlen=256` parameters
- java jdk 11 Out of Memory Error HOT 2
- Failure to bringup 2+ KVM CPUs on X86 HOT 8
- Ruby Protocol: unhandled event type in MI_example-dir.sm HOT 5
- Qemu@SSH Connection failed while buliding diskImage using Packer for full system simu. HOT 3
- About CHI config.py HOT 1
- square can not run under the gpufs HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gem5.