[PATCH 18/23] perf script: Use pr_err() for error messages

From: Namhyung Kim
Date: Tue Mar 07 2017 - 10:38:08 EST


There are many open calls to fprintf() for error logging. use pr_err()
instead so that they can be treated at once (e.g. with -q option).

Also convert perror() to pr_err() + str_error_r().

Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
---
tools/perf/builtin-script.c | 41 +++++++++++++++++++++--------------------
1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index c0783b4f7b6c..d1c95f0b8a0f 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1394,14 +1394,14 @@ static int parse_scriptname(const struct option *opt __maybe_unused,
if (script) {
len = script - str;
if (len >= PATH_MAX) {
- fprintf(stderr, "invalid language specifier");
+ pr_err("invalid language specifier");
return -1;
}
strncpy(spec, str, len);
spec[len] = '\0';
scripting_ops = script_spec__lookup(spec);
if (!scripting_ops) {
- fprintf(stderr, "invalid language specifier");
+ pr_err("invalid language specifier");
return -1;
}
script++;
@@ -1409,12 +1409,12 @@ static int parse_scriptname(const struct option *opt __maybe_unused,
script = str;
ext = strrchr(script, '.');
if (!ext) {
- fprintf(stderr, "invalid script extension");
+ pr_err("invalid script extension");
return -1;
}
scripting_ops = script_spec__lookup(++ext);
if (!scripting_ops) {
- fprintf(stderr, "invalid script extension");
+ pr_err("invalid script extension");
return -1;
}
}
@@ -1472,8 +1472,7 @@ static int parse_output_fields(const struct option *opt __maybe_unused,
} else {
tok = str;
if (strlen(str) == 0) {
- fprintf(stderr,
- "Cannot set fields to 'none' for all event types.\n");
+ pr_err("Cannot set fields to 'none' for all event types.\n");
rc = -EINVAL;
goto out;
}
@@ -1498,7 +1497,7 @@ static int parse_output_fields(const struct option *opt __maybe_unused,
continue;
}
if (i == imax) {
- fprintf(stderr, "Invalid field requested.\n");
+ pr_err("Invalid field requested.\n");
rc = -EINVAL;
goto out;
}
@@ -1516,7 +1515,7 @@ static int parse_output_fields(const struct option *opt __maybe_unused,
}
} else {
if (output[type].invalid_fields & all_output_options[i].field) {
- fprintf(stderr, "\'%s\' not valid for %s events.\n",
+ pr_err("\'%s\' not valid for %s events.\n",
all_output_options[i].str, event_type(type));

rc = -EINVAL;
@@ -1722,8 +1721,7 @@ static int list_available_scripts(const struct option *opt __maybe_unused,

scripts_dir = opendir(scripts_path);
if (!scripts_dir) {
- fprintf(stdout,
- "open(%s) failed.\n"
+ pr_err("open(%s) failed.\n"
"Check \"PERF_EXEC_PATH\" env to set scripts dir.\n",
scripts_path);
exit(-1);
@@ -2205,6 +2203,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
"perf script [<options>] <top-script> [script-args]",
NULL
};
+ char errbuf[STRERR_BUFSIZE];

setup_scripting();

@@ -2223,8 +2222,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
if (argc > 1 && !strncmp(argv[0], "rep", strlen("rep"))) {
rep_script_path = get_script_path(argv[1], REPORT_SUFFIX);
if (!rep_script_path) {
- fprintf(stderr,
- "Please specify a valid report script"
+ pr_err("Please specify a valid report script"
"(see 'perf script -l' for listing)\n");
return -1;
}
@@ -2267,13 +2265,15 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
}

if (pipe(live_pipe) < 0) {
- perror("failed to create pipe");
+ pr_err("failed to create pipe: %s\n",
+ str_error_r(errno, errbuf, sizeof(errbuf)));
return -1;
}

pid = fork();
if (pid < 0) {
- perror("failed to fork");
+ pr_err("failed to fork: %s\n",
+ str_error_r(errno, errbuf, sizeof(errbuf)));
return -1;
}

@@ -2424,8 +2424,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
int input;

if (output_set_by_user()) {
- fprintf(stderr,
- "custom fields not supported for generated scripts");
+ pr_err("custom fields not supported for generated scripts");
err = -EINVAL;
goto out_delete;
}
@@ -2433,24 +2432,26 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
input = open(file.path, O_RDONLY); /* input_name */
if (input < 0) {
err = -errno;
- perror("failed to open file");
+ pr_err("failed to open file: %s\n",
+ str_error_r(errno, errbuf, sizeof(errbuf)));
goto out_delete;
}

err = fstat(input, &perf_stat);
if (err < 0) {
- perror("failed to stat file");
+ pr_err("failed to stat file: %s\n",
+ str_error_r(errno, errbuf, sizeof(errbuf)));
goto out_delete;
}

if (!perf_stat.st_size) {
- fprintf(stderr, "zero-sized file, nothing to do!\n");
+ pr_err("zero-sized file, nothing to do!\n");
goto out_delete;
}

scripting_ops = script_spec__lookup(generate_script_lang);
if (!scripting_ops) {
- fprintf(stderr, "invalid language specifier");
+ pr_err("invalid language specifier");
err = -ENOENT;
goto out_delete;
}
--
2.11.0