TSS は x86-64 のレジスタ値を保存しないため、コンテキスト切り替えが発生したときにこれらのレジスタの値はどのように保存されますか?
答え1
汎用レジスタはほとんどスタックに保持されます。PUSH_REGS
そしてstruct pt_regs
。実際の用途を検索するにはPUSH_AND_CLEAR_REGS
と を検索しますPOP_REGS
。
残りの CPU 状態は次の場所に保存されます。thread_struct
。
Linuxは可能な限りTSSを防ぎます(初期の32ビットx86バージョンではそれを使用しましたが、ずっと前に変更されました)。