perf ftrace falis开始

时间:2019-01-15 14:18:06

标签: kernel perf ftrace

尝试启动perf ftrace时出现以下错误

write '' to tracing/tracing_cpumask failed: Invalid argument
failed to reset ftrace

但是我的内核配置了ftrace启用,并且trace-cmd ftrace前端也可以正常工作。


出于某种原因,我在perf/builtin-ftrace.c函数的write_tracing_file文件中获得了

static int __write_tracing_file(const char *name, const char *val, bool append)
{
        char *file;
        int fd, ret = -1;
        ssize_t size = strlen(val);

我得到了val ==一个空字符串,因此size == 0

然后在下一节

if (write(fd, val_copy, size + 1) == size + 1)
                ret = 0;
        else
                pr_debug("write '%s' to tracing/%s failed: %s\n",
                         val, name, str_error_r(errno, errbuf, sizeof(errbuf)));

我得到了size = 0,但还不行。所以CPU遮罩部分出了点问题,但是我不知道是什么。


编辑:看起来它可以在多核系统上正常工作,但不能在单核系统上工作。奇怪...

2 个答案:

答案 0 :(得分:0)

我以某种方式解决了这个问题。安装了from collections import defaultdict res = defaultdict(list) for x, y, z in array: res[(y,z)].append(x) 的所有依赖项,包括print(list(res.values())) #=> [[0, 7], [1, 2], [3], [4, 6], [5, 8]] 等。现在可以使用了。

答案 1 :(得分:0)

因为perf版本与当前内核不匹配。

如果您按yum安装perf。它将安装最新的verison性能。您需要从网上下载匹配的性能并进行安装。