Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
x86_64结构thread_struct中没有ip,那么context_switch函数如何切换到新进程的正确ip呢?
我认为核心寄存器(特殊寄存器和通用寄存器)保存在被中断进程的内核堆栈中。每次发生中断/异常时,CPU 会陷入管理员模式(特权模式),内核会将上下文(一个堆栈帧)保存到已中断进程的内核堆栈中。
我认为sp(堆栈指针)寄存器应该保存在thread_struct中,它指向特定进程的内核堆栈顶部,context_switch将使用sp恢复准备运行的进程的上下文。