mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-14 13:59:51 +00:00
perf python: Remove python 2 scripting support
Python2 was deprecated 4 years ago, remove support and workarounds. Signed-off-by: Ian Rogers <irogers@google.com> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Colin Ian King <colin.i.king@gmail.com> Cc: Dapeng Mi <dapeng1.mi@linux.intel.com> Cc: Howard Chu <howardchu95@gmail.com> Cc: Ilya Leoshkevich <iii@linux.ibm.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Veronika Molnarova <vmolnaro@redhat.com> Cc: Weilin Wang <weilin.wang@intel.com> Link: https://lore.kernel.org/r/20241119011644.971342-2-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
4c7f9ee2eb
commit
e7e9943c87
@@ -26,40 +26,14 @@
|
||||
#include <internal/lib.h>
|
||||
#include "../builtin.h"
|
||||
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
#define _PyUnicode_FromString(arg) \
|
||||
PyString_FromString(arg)
|
||||
#define _PyUnicode_AsString(arg) \
|
||||
PyString_AsString(arg)
|
||||
#define _PyUnicode_FromFormat(...) \
|
||||
PyString_FromFormat(__VA_ARGS__)
|
||||
#define _PyLong_FromLong(arg) \
|
||||
PyInt_FromLong(arg)
|
||||
|
||||
#else
|
||||
|
||||
#define _PyUnicode_FromString(arg) \
|
||||
PyUnicode_FromString(arg)
|
||||
#define _PyUnicode_FromFormat(...) \
|
||||
PyUnicode_FromFormat(__VA_ARGS__)
|
||||
#define _PyLong_FromLong(arg) \
|
||||
PyLong_FromLong(arg)
|
||||
#endif
|
||||
|
||||
#ifndef Py_TYPE
|
||||
#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
|
||||
#endif
|
||||
|
||||
/* Define PyVarObject_HEAD_INIT for python 2.5 */
|
||||
#ifndef PyVarObject_HEAD_INIT
|
||||
# define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,
|
||||
#endif
|
||||
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyMODINIT_FUNC initperf(void);
|
||||
#else
|
||||
PyMODINIT_FUNC PyInit_perf(void);
|
||||
#endif
|
||||
|
||||
#define member_def(type, member, ptype, help) \
|
||||
{ #member, ptype, \
|
||||
@@ -117,7 +91,7 @@ static PyObject *pyrf_mmap_event__repr(struct pyrf_event *pevent)
|
||||
pevent->event.mmap.pgoff, pevent->event.mmap.filename) < 0) {
|
||||
ret = PyErr_NoMemory();
|
||||
} else {
|
||||
ret = _PyUnicode_FromString(s);
|
||||
ret = PyUnicode_FromString(s);
|
||||
free(s);
|
||||
}
|
||||
return ret;
|
||||
@@ -148,7 +122,7 @@ static PyMemberDef pyrf_task_event__members[] = {
|
||||
|
||||
static PyObject *pyrf_task_event__repr(struct pyrf_event *pevent)
|
||||
{
|
||||
return _PyUnicode_FromFormat("{ type: %s, pid: %u, ppid: %u, tid: %u, "
|
||||
return PyUnicode_FromFormat("{ type: %s, pid: %u, ppid: %u, tid: %u, "
|
||||
"ptid: %u, time: %" PRI_lu64 "}",
|
||||
pevent->event.header.type == PERF_RECORD_FORK ? "fork" : "exit",
|
||||
pevent->event.fork.pid,
|
||||
@@ -181,7 +155,7 @@ static PyMemberDef pyrf_comm_event__members[] = {
|
||||
|
||||
static PyObject *pyrf_comm_event__repr(struct pyrf_event *pevent)
|
||||
{
|
||||
return _PyUnicode_FromFormat("{ type: comm, pid: %u, tid: %u, comm: %s }",
|
||||
return PyUnicode_FromFormat("{ type: comm, pid: %u, tid: %u, comm: %s }",
|
||||
pevent->event.comm.pid,
|
||||
pevent->event.comm.tid,
|
||||
pevent->event.comm.comm);
|
||||
@@ -212,7 +186,7 @@ static PyObject *pyrf_throttle_event__repr(struct pyrf_event *pevent)
|
||||
{
|
||||
struct perf_record_throttle *te = (struct perf_record_throttle *)(&pevent->event.header + 1);
|
||||
|
||||
return _PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64
|
||||
return PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64
|
||||
", stream_id: %" PRI_lu64 " }",
|
||||
pevent->event.header.type == PERF_RECORD_THROTTLE ? "" : "un",
|
||||
te->time, te->id, te->stream_id);
|
||||
@@ -247,7 +221,7 @@ static PyObject *pyrf_lost_event__repr(struct pyrf_event *pevent)
|
||||
pevent->event.lost.id, pevent->event.lost.lost) < 0) {
|
||||
ret = PyErr_NoMemory();
|
||||
} else {
|
||||
ret = _PyUnicode_FromString(s);
|
||||
ret = PyUnicode_FromString(s);
|
||||
free(s);
|
||||
}
|
||||
return ret;
|
||||
@@ -274,7 +248,7 @@ static PyMemberDef pyrf_read_event__members[] = {
|
||||
|
||||
static PyObject *pyrf_read_event__repr(struct pyrf_event *pevent)
|
||||
{
|
||||
return _PyUnicode_FromFormat("{ type: read, pid: %u, tid: %u }",
|
||||
return PyUnicode_FromFormat("{ type: read, pid: %u, tid: %u }",
|
||||
pevent->event.read.pid,
|
||||
pevent->event.read.tid);
|
||||
/*
|
||||
@@ -309,7 +283,7 @@ static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent)
|
||||
if (asprintf(&s, "{ type: sample }") < 0) {
|
||||
ret = PyErr_NoMemory();
|
||||
} else {
|
||||
ret = _PyUnicode_FromString(s);
|
||||
ret = PyUnicode_FromString(s);
|
||||
free(s);
|
||||
}
|
||||
return ret;
|
||||
@@ -343,7 +317,7 @@ tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field)
|
||||
}
|
||||
if (field->flags & TEP_FIELD_IS_STRING &&
|
||||
is_printable_array(data + offset, len)) {
|
||||
ret = _PyUnicode_FromString((char *)data + offset);
|
||||
ret = PyUnicode_FromString((char *)data + offset);
|
||||
} else {
|
||||
ret = PyByteArray_FromStringAndSize((const char *) data + offset, len);
|
||||
field->flags &= ~TEP_FIELD_IS_STRING;
|
||||
@@ -432,7 +406,7 @@ static PyObject *pyrf_context_switch_event__repr(struct pyrf_event *pevent)
|
||||
!!(pevent->event.header.misc & PERF_RECORD_MISC_SWITCH_OUT)) < 0) {
|
||||
ret = PyErr_NoMemory();
|
||||
} else {
|
||||
ret = _PyUnicode_FromString(s);
|
||||
ret = PyUnicode_FromString(s);
|
||||
free(s);
|
||||
}
|
||||
return ret;
|
||||
@@ -918,17 +892,8 @@ static PyObject *pyrf_evlist__get_pollfd(struct pyrf_evlist *pevlist,
|
||||
|
||||
for (i = 0; i < evlist->core.pollfd.nr; ++i) {
|
||||
PyObject *file;
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
FILE *fp = fdopen(evlist->core.pollfd.entries[i].fd, "r");
|
||||
|
||||
if (fp == NULL)
|
||||
goto free_list;
|
||||
|
||||
file = PyFile_FromFile(fp, "perf", "r", NULL);
|
||||
#else
|
||||
file = PyFile_FromFd(evlist->core.pollfd.entries[i].fd, "perf", "r", -1,
|
||||
NULL, NULL, NULL, 0);
|
||||
#endif
|
||||
if (file == NULL)
|
||||
goto free_list;
|
||||
|
||||
@@ -1234,9 +1199,9 @@ static PyObject *pyrf__tracepoint(struct pyrf_evsel *pevsel,
|
||||
|
||||
tp_format = trace_event__tp_format(sys, name);
|
||||
if (IS_ERR(tp_format))
|
||||
return _PyLong_FromLong(-1);
|
||||
return PyLong_FromLong(-1);
|
||||
|
||||
return _PyLong_FromLong(tp_format->id);
|
||||
return PyLong_FromLong(tp_format->id);
|
||||
#endif // HAVE_LIBTRACEEVENT
|
||||
}
|
||||
|
||||
@@ -1250,18 +1215,11 @@ static PyMethodDef perf__methods[] = {
|
||||
{ .ml_name = NULL, }
|
||||
};
|
||||
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyMODINIT_FUNC initperf(void)
|
||||
#else
|
||||
PyMODINIT_FUNC PyInit_perf(void)
|
||||
#endif
|
||||
{
|
||||
PyObject *obj;
|
||||
int i;
|
||||
PyObject *dict;
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyObject *module = Py_InitModule("perf", perf__methods);
|
||||
#else
|
||||
static struct PyModuleDef moduledef = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
"perf", /* m_name */
|
||||
@@ -1274,7 +1232,6 @@ PyMODINIT_FUNC PyInit_perf(void)
|
||||
NULL, /* m_free */
|
||||
};
|
||||
PyObject *module = PyModule_Create(&moduledef);
|
||||
#endif
|
||||
|
||||
if (module == NULL ||
|
||||
pyrf_event__setup_types() < 0 ||
|
||||
@@ -1282,11 +1239,7 @@ PyMODINIT_FUNC PyInit_perf(void)
|
||||
pyrf_evsel__setup_types() < 0 ||
|
||||
pyrf_thread_map__setup_types() < 0 ||
|
||||
pyrf_cpu_map__setup_types() < 0)
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
return;
|
||||
#else
|
||||
return module;
|
||||
#endif
|
||||
|
||||
/* The page_size is placed in util object. */
|
||||
page_size = sysconf(_SC_PAGE_SIZE);
|
||||
@@ -1335,7 +1288,7 @@ PyMODINIT_FUNC PyInit_perf(void)
|
||||
goto error;
|
||||
|
||||
for (i = 0; perf__constants[i].name != NULL; i++) {
|
||||
obj = _PyLong_FromLong(perf__constants[i].value);
|
||||
obj = PyLong_FromLong(perf__constants[i].value);
|
||||
if (obj == NULL)
|
||||
goto error;
|
||||
PyDict_SetItemString(dict, perf__constants[i].name, obj);
|
||||
@@ -1345,9 +1298,7 @@ PyMODINIT_FUNC PyInit_perf(void)
|
||||
error:
|
||||
if (PyErr_Occurred())
|
||||
PyErr_SetString(PyExc_ImportError, "perf: Init failed!");
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
return module;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user