From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kan Liang <kan.liang@linux.intel.com>,
James Clark <james.clark@linaro.org>,
Howard Chu <howardchu95@gmail.com>,
Athira Jajeev <atrajeev@linux.vnet.ibm.com>,
Michael Petlan <mpetlan@redhat.com>,
Veronika Molnarova <vmolnaro@redhat.com>,
Dapeng Mi <dapeng1.mi@linux.intel.com>,
Thomas Richter <tmricht@linux.ibm.com>,
Ilya Leoshkevich <iii@linux.ibm.com>,
Colin Ian King <colin.i.king@gmail.com>,
Weilin Wang <weilin.wang@intel.com>,
Andi Kleen <ak@linux.intel.com>,
Josh Poimboeuf <jpoimboe@redhat.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v5 02/21] perf python: Constify variables and parameters
Date: Thu, 31 Oct 2024 16:21:24 -0300 [thread overview]
Message-ID: <ZyPYtE3dGYUFReVQ@x1> (raw)
In-Reply-To: <20241031014252.753588-3-irogers@google.com>
On Wed, Oct 30, 2024 at 06:42:33PM -0700, Ian Rogers wrote:
> Opportunistically constify variables and parameters when possible.
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> tools/perf/util/python.c | 55 +++++++++++++++++++++-------------------
> 1 file changed, 29 insertions(+), 26 deletions(-)
>
> diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c
> index 02279ab4967c..13dad27169a0 100644
> --- a/tools/perf/util/python.c
> +++ b/tools/perf/util/python.c
> @@ -62,7 +62,7 @@ struct pyrf_event {
> sample_member_def(sample_period, period, T_ULONGLONG, "event period"), \
> sample_member_def(sample_cpu, cpu, T_UINT, "event cpu"),
>
> -static char pyrf_mmap_event__doc[] = PyDoc_STR("perf mmap event object.");
> +static const char pyrf_mmap_event__doc[] = PyDoc_STR("perf mmap event object.");
>
> static PyMemberDef pyrf_mmap_event__members[] = {
> sample_members
> @@ -77,7 +77,7 @@ static PyMemberDef pyrf_mmap_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_mmap_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_mmap_event__repr(const struct pyrf_event *pevent)
> {
> PyObject *ret;
> char *s;
> @@ -106,7 +106,7 @@ static PyTypeObject pyrf_mmap_event__type = {
> .tp_repr = (reprfunc)pyrf_mmap_event__repr,
> };
>
> -static char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event object.");
> +static const char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event object.");
>
> static PyMemberDef pyrf_task_event__members[] = {
> sample_members
> @@ -119,7 +119,7 @@ static PyMemberDef pyrf_task_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_task_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_task_event__repr(const struct pyrf_event *pevent)
> {
> return PyUnicode_FromFormat("{ type: %s, pid: %u, ppid: %u, tid: %u, "
> "ptid: %u, time: %" PRI_lu64 "}",
> @@ -141,7 +141,7 @@ static PyTypeObject pyrf_task_event__type = {
> .tp_repr = (reprfunc)pyrf_task_event__repr,
> };
>
> -static char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object.");
> +static const char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object.");
>
> static PyMemberDef pyrf_comm_event__members[] = {
> sample_members
> @@ -152,7 +152,7 @@ static PyMemberDef pyrf_comm_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_comm_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_comm_event__repr(const struct pyrf_event *pevent)
> {
> return PyUnicode_FromFormat("{ type: comm, pid: %u, tid: %u, comm: %s }",
> pevent->event.comm.pid,
> @@ -170,7 +170,7 @@ static PyTypeObject pyrf_comm_event__type = {
> .tp_repr = (reprfunc)pyrf_comm_event__repr,
> };
>
> -static char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object.");
> +static const char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object.");
>
> static PyMemberDef pyrf_throttle_event__members[] = {
> sample_members
> @@ -181,9 +181,10 @@ static PyMemberDef pyrf_throttle_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_throttle_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_throttle_event__repr(const struct pyrf_event *pevent)
> {
> - struct perf_record_throttle *te = (struct perf_record_throttle *)(&pevent->event.header + 1);
> + const struct perf_record_throttle *te = (const struct perf_record_throttle *)
> + (&pevent->event.header + 1);
>
> return PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64
> ", stream_id: %" PRI_lu64 " }",
> @@ -201,7 +202,7 @@ static PyTypeObject pyrf_throttle_event__type = {
> .tp_repr = (reprfunc)pyrf_throttle_event__repr,
> };
>
> -static char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object.");
> +static const char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object.");
>
> static PyMemberDef pyrf_lost_event__members[] = {
> sample_members
> @@ -210,7 +211,7 @@ static PyMemberDef pyrf_lost_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_lost_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_lost_event__repr(const struct pyrf_event *pevent)
> {
> PyObject *ret;
> char *s;
> @@ -236,7 +237,7 @@ static PyTypeObject pyrf_lost_event__type = {
> .tp_repr = (reprfunc)pyrf_lost_event__repr,
> };
>
> -static char pyrf_read_event__doc[] = PyDoc_STR("perf read event object.");
> +static const char pyrf_read_event__doc[] = PyDoc_STR("perf read event object.");
>
> static PyMemberDef pyrf_read_event__members[] = {
> sample_members
> @@ -245,7 +246,7 @@ static PyMemberDef pyrf_read_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_read_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_read_event__repr(const struct pyrf_event *pevent)
> {
> return PyUnicode_FromFormat("{ type: read, pid: %u, tid: %u }",
> pevent->event.read.pid,
> @@ -266,7 +267,7 @@ static PyTypeObject pyrf_read_event__type = {
> .tp_repr = (reprfunc)pyrf_read_event__repr,
> };
>
> -static char pyrf_sample_event__doc[] = PyDoc_STR("perf sample event object.");
> +static const char pyrf_sample_event__doc[] = PyDoc_STR("perf sample event object.");
>
> static PyMemberDef pyrf_sample_event__members[] = {
> sample_members
> @@ -274,7 +275,7 @@ static PyMemberDef pyrf_sample_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_sample_event__repr(const struct pyrf_event *pevent)
> {
> PyObject *ret;
> char *s;
> @@ -289,13 +290,13 @@ static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent)
> }
>
> #ifdef HAVE_LIBTRACEEVENT
> -static bool is_tracepoint(struct pyrf_event *pevent)
> +static bool is_tracepoint(const struct pyrf_event *pevent)
> {
> return pevent->evsel->core.attr.type == PERF_TYPE_TRACEPOINT;
> }
>
> static PyObject*
> -tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field)
> +tracepoint_field(const struct pyrf_event *pe, struct tep_format_field *field)
> {
> struct tep_handle *pevent = field->event->tep;
> void *data = pe->sample.raw_data;
> @@ -384,7 +385,7 @@ static PyTypeObject pyrf_sample_event__type = {
> .tp_getattro = (getattrofunc) pyrf_sample_event__getattro,
> };
>
> -static char pyrf_context_switch_event__doc[] = PyDoc_STR("perf context_switch event object.");
> +static const char pyrf_context_switch_event__doc[] = PyDoc_STR("perf context_switch event object.");
>
> static PyMemberDef pyrf_context_switch_event__members[] = {
> sample_members
> @@ -394,7 +395,7 @@ static PyMemberDef pyrf_context_switch_event__members[] = {
> { .name = NULL, },
> };
>
> -static PyObject *pyrf_context_switch_event__repr(struct pyrf_event *pevent)
> +static PyObject *pyrf_context_switch_event__repr(const struct pyrf_event *pevent)
> {
> PyObject *ret;
> char *s;
> @@ -474,7 +475,7 @@ static PyTypeObject *pyrf_event__type[] = {
> [PERF_RECORD_SWITCH_CPU_WIDE] = &pyrf_context_switch_event__type,
> };
>
> -static PyObject *pyrf_event__new(union perf_event *event)
> +static PyObject *pyrf_event__new(const union perf_event *event)
> {
> struct pyrf_event *pevent;
> PyTypeObject *ptype;
> @@ -542,7 +543,7 @@ static PySequenceMethods pyrf_cpu_map__sequence_methods = {
> .sq_item = pyrf_cpu_map__item,
> };
>
> -static char pyrf_cpu_map__doc[] = PyDoc_STR("cpu map object.");
> +static const char pyrf_cpu_map__doc[] = PyDoc_STR("cpu map object.");
>
> static PyTypeObject pyrf_cpu_map__type = {
> PyVarObject_HEAD_INIT(NULL, 0)
> @@ -611,7 +612,7 @@ static PySequenceMethods pyrf_thread_map__sequence_methods = {
> .sq_item = pyrf_thread_map__item,
> };
>
> -static char pyrf_thread_map__doc[] = PyDoc_STR("thread map object.");
> +static const char pyrf_thread_map__doc[] = PyDoc_STR("thread map object.");
>
> static PyTypeObject pyrf_thread_map__type = {
> PyVarObject_HEAD_INIT(NULL, 0)
> @@ -795,7 +796,7 @@ static PyMethodDef pyrf_evsel__methods[] = {
> { .ml_name = NULL, }
> };
>
> -static char pyrf_evsel__doc[] = PyDoc_STR("perf event selector list object.");
> +static const char pyrf_evsel__doc[] = PyDoc_STR("perf event selector list object.");
>
> static PyTypeObject pyrf_evsel__type = {
> PyVarObject_HEAD_INIT(NULL, 0)
> @@ -1078,7 +1079,7 @@ static PySequenceMethods pyrf_evlist__sequence_methods = {
> .sq_item = pyrf_evlist__item,
> };
>
> -static char pyrf_evlist__doc[] = PyDoc_STR("perf event selector list object.");
> +static const char pyrf_evlist__doc[] = PyDoc_STR("perf event selector list object.");
>
> static PyTypeObject pyrf_evlist__type = {
> PyVarObject_HEAD_INIT(NULL, 0)
> @@ -1100,10 +1101,12 @@ static int pyrf_evlist__setup_types(void)
>
> #define PERF_CONST(name) { #name, PERF_##name }
>
> -static struct {
> +struct perf_constant {
> const char *name;
> int value;
> -} perf__constants[] = {
> +};
> +
> +static const struct perf_constant perf__constants[] = {
> PERF_CONST(TYPE_HARDWARE),
> PERF_CONST(TYPE_SOFTWARE),
> PERF_CONST(TYPE_TRACEPOINT),
> --
> 2.47.0.163.g1226f6d8fa-goog
>
next prev parent reply other threads:[~2024-10-31 19:21 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-31 1:42 [PATCH v5 00/21] Python module cleanup Ian Rogers
2024-10-31 1:42 ` [PATCH v5 01/21] perf python: Remove python 2 scripting support Ian Rogers
2024-10-31 19:19 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 02/21] perf python: Constify variables and parameters Ian Rogers
2024-10-31 19:21 ` Arnaldo Carvalho de Melo [this message]
2024-10-31 1:42 ` [PATCH v5 03/21] perf python: Remove unused #include Ian Rogers
2024-10-31 19:19 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 04/21] perf script: Move scripting_max_stack out of builtin Ian Rogers
2024-10-31 19:20 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 05/21] perf kvm: Move functions used in util " Ian Rogers
2024-10-31 19:24 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 06/21] perf script: Move find_scripts to browser/scripts.c Ian Rogers
2024-10-31 19:18 ` Arnaldo Carvalho de Melo
2024-10-31 20:51 ` Ian Rogers
2024-11-04 19:47 ` Namhyung Kim
2024-11-04 20:34 ` Ian Rogers
2024-11-04 20:39 ` Arnaldo Carvalho de Melo
2024-11-04 20:48 ` Ian Rogers
2024-11-04 21:00 ` Namhyung Kim
2024-11-04 21:06 ` Ian Rogers
2024-11-04 22:09 ` Namhyung Kim
2024-11-04 22:20 ` Ian Rogers
2024-11-04 23:22 ` Namhyung Kim
2024-11-04 23:28 ` Ian Rogers
2024-11-05 6:14 ` Namhyung Kim
2024-10-31 1:42 ` [PATCH v5 07/21] perf stat: Move stat_config into config.c Ian Rogers
2024-10-31 19:19 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 08/21] perf script: Move script_spec code to trace-event-scripting.c Ian Rogers
2024-10-31 19:21 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 09/21] perf script: Move script_fetch_insn " Ian Rogers
2024-10-31 19:33 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 10/21] perf script: Move perf_sample__sprintf_flags " Ian Rogers
2024-10-31 1:42 ` [PATCH v5 11/21] perf x86: Define arch_fetch_insn in NO_AUXTRACE builds Ian Rogers
2024-10-31 9:14 ` Adrian Hunter
2024-10-31 1:42 ` [PATCH v5 12/21] perf intel-pt: Remove stale build comment Ian Rogers
2024-10-31 9:13 ` Adrian Hunter
2024-10-31 1:42 ` [PATCH v5 13/21] perf env: Move arch errno function to only use in env Ian Rogers
2024-10-31 19:34 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 14/21] perf lock: Move common lock contention code to new file Ian Rogers
2024-10-31 19:36 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 15/21] perf bench: Remove reference to cmd_inject Ian Rogers
2024-10-31 1:42 ` [PATCH v5 16/21] perf kwork: Make perf_kwork_add_work a callback Ian Rogers
2024-10-31 1:42 ` [PATCH v5 17/21] perf build: Remove test library from python shared object Ian Rogers
2024-10-31 19:21 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 18/21] perf python: Add parse_events function Ian Rogers
2024-10-31 1:42 ` [PATCH v5 19/21] perf python: Add __str__ and __repr__ functions to evlist Ian Rogers
2024-10-31 19:22 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 20/21] perf python: Add __str__ and __repr__ functions to evsel Ian Rogers
2024-10-31 19:38 ` Arnaldo Carvalho de Melo
2024-10-31 1:42 ` [PATCH v5 21/21] perf python: Correctly throw IndexError Ian Rogers
2024-10-31 19:23 ` Arnaldo Carvalho de Melo
2024-10-31 19:39 ` [PATCH v5 00/21] Python module cleanup Arnaldo Carvalho de Melo
2024-10-31 20:55 ` Ian Rogers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZyPYtE3dGYUFReVQ@x1 \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=colin.i.king@gmail.com \
--cc=dapeng1.mi@linux.intel.com \
--cc=howardchu95@gmail.com \
--cc=iii@linux.ibm.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=mpetlan@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=tmricht@linux.ibm.com \
--cc=vmolnaro@redhat.com \
--cc=weilin.wang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).