假设我正在通过L1 / L2缓存写入Core Duo系统上的RAM位置。
假设我打算写入RAM中的持久位置并在此之后很快发生恐慌。该位置是持久的,这意味着它在CPU重启期间不会被重新占用,并且会在重新启动后被接收。
Linux将刷新CPU缓存作为重启/恐慌的一部分吗?
重启之前CPU会刷新缓存吗?
或者我应该手动执行此操作?怎么样?
更新:我的缓存不是直写。
问题是,CPU规范是否定义了这种行为?
答案 0 :(得分:1)
执行此操作的最合适方法可能是将包含持久位置的页面标记为不可缓存。这样写入持久位置总是会绕过缓存(有效地直写)。当然可能是你的缓存无论如何都是直写,所以这可能是多余的 - 你应该先检查一下。
答案 1 :(得分:0)
可能无法刷新缓存,因为系统诊断程序或调试程序可能需要由用户,系统工程师或IT支持人员运行才能诊断和转储计算机状态。缓存可以在启动时刷新,也可以不刷新,这取决于事件中使用的操作系统的类型和版本,编程语言和应用程序。它可能是一个可选择的选项(从任何BIOS)启动时,但它可能会在poweron初始化,但如果可用,不一定在暖启动。
答案 2 :(得分:0)