我将从我所参与的项目的一些背景开始。我们正在尝试编写一个Linux内核模块(在3.5内核中),它将启用一些较新的x86处理器中存在的最后一个分支记录(LBR)功能,并将分支数据写入硬盘上的一个文件中,以供以后分析。
我们目前已经能够启用LBR,并且可以看到LBR Top of Stack指针在检测到分支时发生变化(因此我们知道LBR已被启用)。
我们的问题出现在我们不知道如何确定LBR堆栈何时变满,以便我们可以从其中读取数据并将其写入硬盘。理想情况下,我们希望在LBR中启用一个选项,以便在LBR堆栈接近满时抛出异常,并编写一个检索信息的处理程序。
到目前为止,我所能找到的最接近这样做的事情是在