VBAR中是否通过上下文切换保存VBAR_EL寄存器?

时间:2018-06-14 19:59:58

标签: linux arm cpu-registers armv8

有人告诉我,VBAR_EL0 / 1寄存器没有备份在上下文切换上。我还注意到VBAR_EL0 / 1寄存器没有列出here,但除此之外我没有找到太多关于它的信息。这是否意味着异常表必须位于所有32位进程的相同位置?另外,在32位和64位处理器模式之间切换时如何工作?

我使用Linux 4.1交叉编译为Armv8。

1 个答案:

答案 0 :(得分:1)

对于上下文切换的第一个问题,我没有找到任何现有参考,但是我的个人经验是,除非您手动更新VBAR_EL0 / 1寄存器,否则所有进程都共享相同的异常向量表。 如果成功更新了寄存器,则所有进程都会根据新寄存器的值找到异常处理程序。

第二个问题:

  

在32位和64位处理器模式之间切换时,这如何工作?

根据ARM Architecture Reference Manual

  

VBAR_EL1 [31:0]在体系结构上映射到AArch32系统寄存器VBAR。