aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (Google) <rostedt@goodmis.org>2024-01-08 18:41:23 -0500
committerSteven Rostedt (Google) <rostedt@goodmis.org>2024-01-10 13:49:49 -0500
commitb86599e459618f858d5d596ac3854a8c529fad84 (patch)
treecc9edcaaca001d7e49c43fffd6fda3f430a310e3
parent7d8b3c02c6583bdf8d39e5f32ada33edbd437669 (diff)
downloadtrace-cmd-b86599e459618f858d5d596ac3854a8c529fad84.tar.gz
trace-cmd stat: Add sub-buffer size
Show the sub-buffer size if the file system supports it and it is different than the architecture page size. This requires libtracefs 1.8, so update the Makefile with that requirement. Link: https://lore.kernel.org/linux-trace-devel/20240108184123.62f9be6b@gandalf.local.home Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-rw-r--r--Makefile2
-rw-r--r--meson.build2
-rw-r--r--tracecmd/trace-stat.c7
3 files changed, 9 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 7058159c..54298597 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ export LIBTRACECMD_VERSION
VERSION_FILE = ltc_version.h
LIBTRACEEVENT_MIN_VERSION = 1.5
-LIBTRACEFS_MIN_VERSION = 1.6
+LIBTRACEFS_MIN_VERSION = 1.8
MAKEFLAGS += --no-print-directory
diff --git a/meson.build b/meson.build
index fbdf016f..aadfe277 100644
--- a/meson.build
+++ b/meson.build
@@ -25,7 +25,7 @@ htmldir = join_paths(prefixdir, get_option('htmldir'))
conf = configuration_data()
libtraceevent_dep = dependency('libtraceevent', version: '>= 1.5.0', required: true)
-libtracefs_dep = dependency('libtracefs', version: '>= 1.6.0', required: true)
+libtracefs_dep = dependency('libtracefs', version: '>= 1.8.0', required: true)
threads_dep = dependency('threads', required: true)
dl_dep = cc.find_library('dl', required : false)
diff --git a/tracecmd/trace-stat.c b/tracecmd/trace-stat.c
index 9a6e2225..1d95d993 100644
--- a/tracecmd/trace-stat.c
+++ b/tracecmd/trace-stat.c
@@ -633,6 +633,8 @@ static void report_buffers(struct buffer_instance *instance)
char *str;
char *cont;
char file[FILE_SIZE];
+ int pagesize;
+ int bufsize;
int cpu;
str = tracefs_instance_file_read(instance->tracefs, "buffer_size_kb", NULL);
@@ -678,6 +680,11 @@ static void report_buffers(struct buffer_instance *instance)
printf("\nBuffer total size in kilobytes:\n");
printf(" %s\n", str);
+ pagesize = getpagesize();
+ bufsize = tracefs_instance_get_subbuf_size(instance->tracefs);
+ if (bufsize > 0 && bufsize * 1024 != pagesize)
+ printf("\nSub-buffer size in kilobytes:\n %d\n", bufsize);
+
out:
free(str);
}