perf工具可以提供在VM内调用的系统调用列表吗?

时间:2016-10-12 19:19:18

标签: linux linux-kernel system-calls tracing perf

我正在尝试监视从主机操作系统在虚拟机内调用的所有系统调用。我在主持人那里试过这个:

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调用的调用吗?

1 个答案:

答案 0 :(得分:0)

poll()正在执行qemu次调用,以检查虚拟机需要处理的事件。

在虚拟机中执行的系统调用通常对主机操作系统不可见。 (请记住,虚拟机可能正在运行Linux以外的操作系统,甚至可能根本不运行操作系统。)如果要跟踪这些调用,则可能需要在其中运行perf VM。