【发布时间】:2021-03-05 00:33:19
【问题描述】:
我试图探测模式切换发生时的事件(用户->内核模式),结果我需要找到转换发生时会触发哪个函数。
似乎SBI 是 RISC-V 的过渡位置。我想知道为 x86 处理这个的代码在哪里?
【问题讨论】:
-
在 x86 上,通常用户空间使用
syscall。 64 位内核入口点在arch/x86/entry/entry_64.S和arch/x86/entry/entry_64_compat.S中定义。有关这些系统调用入口点如何工作的一些信息,请参阅What happens if you use the 32-bit int 0x80 Linux ABI in 64-bit code?。 (至少在最近通过 C 进行重新设计之前。) -
没有单一的方法。访问内存可能会触发内核模式(通常用于更新访问页数,用于缓存管理)。任何错误也可能触发内核。调试说明或陷阱。跳远(取决于描述符)。中断(硬件,例如调度程序的定时器,或来自设备的软件中断),系统调用......
标签: linux-kernel x86