Kernel

x86-64 linux核心的上下文切換時如何保存執行狀態?

  • March 25, 2022

由於 TSS 不儲存 x86-64 中寄存器的值,所以在上下文切換發生時如何保存這些值?

通用寄存器大多保存在堆棧上;見PUSH_REGSstruct pt_regs。要查找實際用途,請查找PUSH_AND_CLEAR_REGSPOP_REGS

CPU 狀態的其餘部分儲存在thread_struct.

Linux 盡可能避免使用 TSS(早期的 32 位 x86 版本使用它,但很久以前就改變了)。

引用自:https://unix.stackexchange.com/questions/696743