]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
perf python: Add evlist.config to set up record options
authorIan Rogers <irogers@google.com>
Fri, 28 Feb 2025 22:23:07 +0000 (14:23 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 12 Mar 2025 01:55:38 +0000 (18:55 -0700)
Add access to evlist__config that is used to configure an evlist with
record options.

Reviewed-by: Howard Chu <howardchu95@gmail.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Link: https://lore.kernel.org/r/20250228222308.626803-11-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/python.c

index c55c8392bc077a39236cfe15399e9b43b6ca68d4..69ec2ad60d98ba3856096512ea2872d6eb8713d2 100644 (file)
@@ -9,10 +9,12 @@
 #include <event-parse.h>
 #endif
 #include <perf/mmap.h>
+#include "callchain.h"
 #include "evlist.h"
 #include "evsel.h"
 #include "event.h"
 #include "print_binary.h"
+#include "record.h"
 #include "strbuf.h"
 #include "thread_map.h"
 #include "trace-event.h"
@@ -1052,6 +1054,31 @@ static PyObject *pyrf_evlist__open(struct pyrf_evlist *pevlist,
        return Py_None;
 }
 
+static PyObject *pyrf_evlist__config(struct pyrf_evlist *pevlist)
+{
+       struct record_opts opts = {
+               .sample_time         = true,
+               .mmap_pages          = UINT_MAX,
+               .user_freq           = UINT_MAX,
+               .user_interval       = ULLONG_MAX,
+               .freq                = 4000,
+               .target              = {
+                       .uses_mmap   = true,
+                       .default_per_cpu = true,
+               },
+               .nr_threads_synthesize = 1,
+               .ctl_fd              = -1,
+               .ctl_fd_ack          = -1,
+               .no_buffering        = true,
+               .no_inherit          = true,
+       };
+       struct evlist *evlist = &pevlist->evlist;
+
+       evlist__config(evlist, &opts, &callchain_param);
+       Py_INCREF(Py_None);
+       return Py_None;
+}
+
 static PyObject *pyrf_evlist__disable(struct pyrf_evlist *pevlist)
 {
        evlist__disable(&pevlist->evlist);
@@ -1109,6 +1136,12 @@ static PyMethodDef pyrf_evlist__methods[] = {
                .ml_flags = METH_VARARGS | METH_KEYWORDS,
                .ml_doc   = PyDoc_STR("reads an event.")
        },
+       {
+               .ml_name  = "config",
+               .ml_meth  = (PyCFunction)pyrf_evlist__config,
+               .ml_flags = METH_NOARGS,
+               .ml_doc   = PyDoc_STR("Apply default record options to the evlist.")
+       },
        {
                .ml_name  = "disable",
                .ml_meth  = (PyCFunction)pyrf_evlist__disable,