Linux kernel 重新启动前刷新Core Duo缓存?

Linux kernel 重新启动前刷新Core Duo缓存?,linux-kernel,cpu-cache,Linux Kernel,Cpu Cache,假设我正在通过一级/二级缓存写入Core Duo系统上的RAM位置 假设我很快就要在RAM和Linux内核中写入一个持久位置。该位置是持久的,这意味着它不会在CPU重新启动期间重新初始化,并且会在重新启动后被拾取 Linux是否会刷新CPU缓存作为重新启动/死机的一部分 CPU会在重新启动前刷新缓存吗 还是我应该手动完成?怎么做 更新:我的缓存未写入 问题是,CPU规范是否定义了这种行为?缓存可能不会被刷新,因为用户、系统工程师或IT支持人员可能需要运行系统诊断或调试器来诊断和转储计算机状态。启

假设我正在通过一级/二级缓存写入Core Duo系统上的RAM位置

假设我很快就要在RAM和Linux内核中写入一个持久位置。该位置是持久的,这意味着它不会在CPU重新启动期间重新初始化,并且会在重新启动后被拾取

Linux是否会刷新CPU缓存作为重新启动/死机的一部分

CPU会在重新启动前刷新缓存吗

还是我应该手动完成?怎么做

更新:我的缓存未写入


问题是,CPU规范是否定义了这种行为?

缓存可能不会被刷新,因为用户、系统工程师或IT支持人员可能需要运行系统诊断或调试器来诊断和转储计算机状态。启动时可能会刷新缓存,这取决于事件中使用的操作系统、编程语言和应用程序的类型和版本。在启动时,它可能是一个可选择的选项(来自任何BIOS),但可能在通电时初始化,但不一定在热重启时初始化(如果可用)。

最合适的方法可能是将包含永久位置的页面标记为不可缓存。这样,对持久位置的写入将始终绕过缓存(有效地写通)。当然,您的缓存可能是通过写入的,所以这可能是多余的-您应该先检查一下。

我想这可能会派上用场:)

谢谢,这很有趣,但这包括Linux控制的重新启动。这是我问题的一部分。另一部分是HW启动的重新启动。从abose源代码中,您可以看到可能会使用不同的重新启动方法。有些将在低级别上重置CPU,有些则不会。因此,我对您的问题的回答是“视情况而定”:(就我个人而言,我还希望BIOS在重启期间刷新缓存,这样系统将始终以相同的可预测状态启动……我也是,但我需要知道。现在我甚至不知道它是CPU功能还是BIOS,或者它是否应该由软件来完成,然后不支持所有类型的重新启动不确定我是否了解应用程序/语言是如何发挥作用的,或者诊断工具。。我们说的是内存缓存,不是文件缓存,对吗?@n-alexander:只针对这一页-您肯定没有性能关键的持久数据?不幸的是,这正是我所拥有的