据我所知,大核和小核在 big.LITTLE 系统上位于不同的集群中。并且集群之间的缓存一致性要求将区域标记为外部共享,并且非常昂贵。我检查了 Linux 内核代码,似乎它只需要 Inner Shareable 域中的一致性。所以我的问题是,Linux 如何保证两个集群同时处于活动状态的“CPU 迁移”或“全局任务调度”模型中的缓存一致性?
1 回答
I have got the answer from the arm comminity. Here is the answer from dear Mark Rutland.
https://lkml.org/lkml/2020/3/23/598
Multiple clusters can be in the same Inner Shareable domain, and Linux relies on this being the case for systems it supports. It's possible to build a system where clusters are in distinct Inner Shareable domains, but Linux does not support using all cores on such a system.
Even with CCI, CCN, CMN, etc, Linux requires that all cores (which it is told about) are in the same Inner Shareable domain. That is what is commonly built.