【发布时间】:2019-01-15 14:18:06
【问题描述】:
尝试启动 perf ftrace 时出现以下错误
write '' to tracing/tracing_cpumask failed: Invalid argument
failed to reset ftrace
但是我的内核配置了启用 ftrace 并且 trace-cmd ftrace 前端也可以正常工作。
由于某种原因,在write_tracing_file 函数中的perf/builtin-ftrace.c 文件中我得到了
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 掩码部分出了点问题,但我不知道是什么。
编辑: 看起来它在多核系统上工作没有问题,但在单核系统上没有问题。奇怪……
【问题讨论】: