Hi,
I have board with two clusters, one has 4*A57 cores, and the other has 4*A53 cores.
The A57 cluster has its own L1 and L2 cache, A53 cluster also has its own L1 and L2 cache. Between the clusters there is a CCI.
There is no L3 cache. So the memory will be the L3.
My question is, in this situation why linux set memory as inner shareable? (Also I can not find any outer shareable definition in all of the linux codes.)
In my opinion, when you want to make data coherency between clusters, you must set it as outer shareable.
Am I right? Hope to get your help.
BR
Thomas
Thomas,
Under the scenario you describe I think it can and this is the purpose of the shareability domains.
But then I would ask another question, why would somebody made such an effort to implement 2x inner shareable domains on the system and scrapped it by using the OS running/configuring the outer shareable domain (which equals into not using the split). My point is you do not design the SoC being capable running 2x inner shareable domains if you are not going to use it.
Interesting is that the address space attributed to devices are usually (if not always) outer shareable.
My problem Thomas is also that some of the most detailed aspects of it are just my analysis and I'm still waiting for a word back from the HW design team for my boards to confirm that. In that I'd also appreciate if any SoC design expert fromthe forum confirms/broadens what is in this and related thread.
Marek
Hi MarekBykowski,
Thank you very much for your detail analysis. Yes, "My point is you do not design the SoC being capable running 2x inner shareable domains if you are not going to use it" make sense, I agree with you. If you get some confirmation, please let me know. Thanks!
BR,