能否在perf record中排除指定PID?过滤命令报错求语法指导
解决perf record过滤PID的问题
你的命令语法确实有问题,而且--filter选项并不适合用来给硬件事件(比如cycles)做PID过滤,这也是你报错的核心原因:
This CPU does not support address filtering
正确的PID过滤方法
直接排除指定PID(推荐,perf 4.14及以上版本支持)
用--exclude-pid选项直接跳过目标PID的事件:perf record -e cycles --exclude-pid 514900如果要排除多个PID,用逗号分隔:
--exclude-pid 514900,514901只监控指定PID
如果你明确知道要监控的PID,反过来用-p参数指定,间接排除其他PID:perf record -e cycles -p 1234,5678
为什么你的命令不行?
--filter选项主要是给tracepoint事件(比如sched:sched_process_exec这类内核跟踪点)设计的过滤规则,对硬件性能计数器事件(比如cycles)的支持非常有限,而且需要CPU具备特定的硬件过滤能力,你的CPU不支持,所以触发了报错。
内容的提问来源于stack exchange,提问作者kshitij
相关产品推荐
相关产品推荐

