Linux kernel 如何在VM中处理timeofday()系统调用(使用KVM)?

Linux kernel 如何在VM中处理timeofday()系统调用(使用KVM)?,linux-kernel,kernel,system-calls,kvm,Linux Kernel,Kernel,System Calls,Kvm,如果我在主机内核上修改timeofday()调用,那么修改后的系统调用会在来宾内核上调用,还是虚拟机监控程序会以某种方式处理它 有人能得到关于幕后发生的事情的详细答案吗 另外,我想知道在内核版本3.10.9和内核版本4.2上是如何做到这一点的KVM需要一个支持硬件虚拟化的处理器(VT-x/AMD-V)。在硬件虚拟化中,所有来宾中断都会在主机操作系统上造成陷阱。然后,主机确定中断是针对自身还是针对来宾。对于前一种情况,主机操作系统将处理中断;稍后,它将通知KVM KVM使用KVM_时钟从虚拟机管理

如果我在主机内核上修改timeofday()调用,那么修改后的系统调用会在来宾内核上调用,还是虚拟机监控程序会以某种方式处理它

有人能得到关于幕后发生的事情的详细答案吗


另外,我想知道在内核版本3.10.9和内核版本4.2上是如何做到这一点的KVM需要一个支持硬件虚拟化的处理器(VT-x/AMD-V)。在硬件虚拟化中,所有来宾中断都会在主机操作系统上造成陷阱。然后,主机确定中断是针对自身还是针对来宾。对于前一种情况,主机操作系统将处理中断;稍后,它将通知KVM

KVM使用KVM_时钟从虚拟机管理程序KVM定期写入时间的共享内存位置(VM中)读取时间。所以,若您在主机上修改gettimeofday(),系统管理程序将使用它来获取时间,更新的时间将写入共享内存位置

您可以在原稿中阅读有关KVM的更多信息: