linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf ftrace: Fix the buffer size in __write_tracing_file
@ 2017-12-26  9:26 changbin.du
  2018-01-08  3:05 ` Du, Changbin
  0 siblings, 1 reply; 5+ messages in thread
From: changbin.du @ 2017-12-26  9:26 UTC (permalink / raw)
  To: peterz, mingo, acme, alexander.shishkin, jolsa
  Cc: linux-kernel, linux-perf-users, Changbin Du

From: Changbin Du <changbin.du@intel.com>

The terminal character '\0' should take into account as size of the string
buffer. Without this fix, the '--graph-funcs', '--nograph-funcs' and
'--trace-funcs' options didn't work as expected when the <func> doesn't
exist.

I didn't dive into kernel ftrace fops, but strace shows that if usersapce
writes a non-terminated string, the kernel side will return success but
no filter applied. After this fix in userspace, the kernel will return an
error.

$ sudo ./perf ftrace -a --graph-depth 1 --graph-funcs abcdefg
 0)   0.140 us    |  rcu_all_qs();
 3)   0.304 us    |  mutex_unlock();
 0)   0.153 us    |  find_vma();
 3)   0.088 us    |  __fsnotify_parent();
 0)   6.145 us    |  handle_mm_fault();
 3)   0.089 us    |  fsnotify();
 3)   0.161 us    |  __sb_end_write();
 3)   0.710 us    |  SyS_close();
 3)   7.848 us    |  exit_to_usermode_loop();

On above example, I specified function filter 'abcdefg' but all functions
are enabled.

Signed-off-by: Changbin Du <changbin.du@intel.com>
---
 tools/perf/builtin-ftrace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c
index 25a42ac..2604a64 100644
--- a/tools/perf/builtin-ftrace.c
+++ b/tools/perf/builtin-ftrace.c
@@ -69,7 +69,7 @@ static int __write_tracing_file(const char *name, const char *val, bool append)
 {
 	char *file;
 	int fd, ret = -1;
-	ssize_t size = strlen(val);
+	ssize_t size = strlen(val) + 1;
 	int flags = O_WRONLY;
 	char errbuf[512];
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-01-09  6:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-26  9:26 [PATCH] perf ftrace: Fix the buffer size in __write_tracing_file changbin.du
2018-01-08  3:05 ` Du, Changbin
2018-01-08 14:34   ` Jiri Olsa
2018-01-09  6:10     ` Du, Changbin
2018-01-09  6:35     ` Namhyung Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).