我正在尝试监视从主机操作系统在虚拟机内调用的所有系统调用。我在主持人那里试过这个:
perf trace -a | grep qemu
这给出了这样的输出:
0.000 ( 0.000 ms): qemu-system-x8/7511 ... [continued]: poll()) = 0 Timeout
10.060 (10.043 ms): qemu-system-x8/7511 poll(ufds: 0x7f5d300008f8, nfds: 20, timeout_msecs: 10 ) = 0 Timeout
20.161 (10.079 ms): qemu-system-x8/7511 poll(ufds: 0x7f5d300008f8, nfds: 20, timeout_msecs: 10 ) = 0 Timeout
30.226 (10.044 ms): qemu-system-x8/7511 poll(ufds: 0x7f5d300008f8, nfds: 20, timeout_msecs: 10 ) = 0 Timeout
有谁可以解释这个输出中显示的这些调用是什么?这些系统调用是在虚拟机内调用的吗?或者这些是由主机操作系统本身调用以响应VM调用的调用吗?
答案 0 :(得分:0)
poll()
正在执行qemu
次调用,以检查虚拟机需要处理的事件。
在虚拟机中执行的系统调用通常对主机操作系统不可见。 (请记住,虚拟机可能正在运行Linux以外的操作系统,甚至可能根本不运行操作系统。)如果要跟踪这些调用,则可能需要在其中运行perf
VM。