0

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

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

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


出于某种原因,我得到了函数中的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 掩码部分出了点问题,但我不知道是什么。


编辑:看起来它在多核系统上的工作没有问题,但在单核系统中却没有。奇怪的...

4

2 回答 2

0

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

如果你通过 yum 安装 perf。它将安装最新的版本性能。您需要从网上下载匹配的性能并安装它。

于 2020-04-17T07:59:59.727 回答
0

我以某种方式解决了这个问题。perf安装了包括等的所有依赖项libnuma-dev。现在它可以工作了。

于 2019-01-17T07:32:36.753 回答