linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tony Jones <tonyj@suse.de>
To: Jiri Olsa <jolsa@redhat.com>,
	Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
Cc: peterz@infradead.org, mingo@redhat.com, acme@kernel.org,
	alexander.shishkin@linux.intel.com, namhyung@kernel.org,
	linux-kernel@vger.kernel.org,
	Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Subject: Re: [PATCH v2] perf scripts python: Add Python 3 support to check-perf-trace.py
Date: Fri, 18 Jan 2019 18:05:45 -0800	[thread overview]
Message-ID: <7d5e8be1-b2dc-7654-744b-5ddbe2faf5b2@suse.de> (raw)
In-Reply-To: <0d8a6ddc-9755-2b50-4023-26f6c84a33d1@suse.de>

On 1/18/19 4:29 PM, Tony Jones wrote:

> I'd been simultaneously working on a patch set to fix up Python3.  
> 
> It's actually already in our Factory and SLE15-SP1 releases as we had a deadline to kill Python2 usage for internal rpms. 
> 
> I was going to post once I'd fixed the last remaining issue ('import perf' is still failing [test #18]).   
> 
> I guess "you snooze you lose" :-)
> 
> https://build.opensuse.org/package/view_file/devel:tools/perf/perf.changes?expand=1

Seeteena, I'm than happy to forward my patches via email. Alternatively, as I said in another post,  the full series is in SLE15-SP1/beta2 (should apply to tip) which IBM has access to and they've been backported to v4.19 (Factory) at https://build.opensuse.org/package/show/openSUSE:Factory/perf.  Everything has been tested against python2 and python3.

Also, in this series there are patches to: 
- port tests/attr.py to Python3
- remove shebangs from the .py scripts and change to mode 644 as IMO it makes no sense to explicitly have #!/usr/bin/python since per pep-0394 this refers to version2 and the system may only have python3 installed
- remove the shebang from setup.py since it's explicitly invoked via call to ${PYTHON_WORD}

Also I found in testing that the following fix is also needed. I'm not 100% sure on it and was going to revisit before posting but _PyUnicode_FromStringAndSize() is definitely unsafe to use on attr.

----

Fixes: 66dfdff03d196e51322c6a85c0d8db8bb2bdd655

With Python3.  PyUnicode_FromStringAndSize is unsafe to call on attr and will
return NULL.  Use _PyBytes_FromStringAndSize (as with raw_buf).

$ perf script -s perf-script.py -i perf.data
in trace_begin
Segmentation fault (core dumped)
---
 tools/perf/util/scripting-engines/trace-event-python.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/tools/perf/util/scripting-engines/trace-event-python.c
+++ b/tools/perf/util/scripting-engines/trace-event-python.c
@@ -733,8 +733,7 @@ static PyObject *get_perf_sample_dict(st
                Py_FatalError("couldn't create Python dictionary");

        pydict_set_item_string_decref(dict, "ev_name", _PyUnicode_FromString(perf_evsel__name(evsel)));
-       pydict_set_item_string_decref(dict, "attr", _PyUnicode_FromStringAndSize(
-                       (const char *)&evsel->attr, sizeof(evsel->attr)));
+       pydict_set_item_string_decref(dict, "attr", _PyBytes_FromStringAndSize((const char *)&evsel->attr, sizeof(evsel->attr)));

        pydict_set_item_string_decref(dict_sample, "pid",
                        _PyLong_FromLong(sample->pid));

  reply	other threads:[~2019-01-19  2:06 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-17  9:45 [PATCH v2] perf scripts python: Add Python 3 support to check-perf-trace.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to event_analyzing_sample.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to exported-sql-viewer.py Seeteena Thoufeek
2019-01-19  0:45   ` Tony Jones
2019-01-20 19:27     ` Jonathan Corbet
2019-01-20 20:50       ` Tony Jones
2019-01-21 10:45     ` seeteena
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to export-to-sqlite.py Seeteena Thoufeek
2019-01-19  1:05   ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to failed-syscalls-by-pid.py Seeteena Thoufeek
2019-01-19  1:12   ` Tony Jones
2019-01-19  2:37     ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to futex-contention.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to intel-pt-events.py Seeteena Thoufeek
2019-01-19  1:16   ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to mem-phys-addr.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to netdev-times.py Seeteena Thoufeek
2019-01-19  1:21   ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to net_dropmonitor.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to powerpc-hcalls.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to sctop.py Seeteena Thoufeek
2019-01-19  1:27   ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to stackcollapse.py Seeteena Thoufeek
2019-01-19  1:46   ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to stat-cpi.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to syscall-counts-by-pid.py Seeteena Thoufeek
2019-01-19  0:53   ` Tony Jones
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to syscall-counts.py Seeteena Thoufeek
2019-01-17  9:45 ` [PATCH v2] perf scripts python: Add Python 3 support to export-to-postgresql.py Seeteena Thoufeek
2019-01-17 12:32 ` [PATCH v2] perf scripts python: Add Python 3 support to check-perf-trace.py Jiri Olsa
2019-01-17 13:23   ` Ravi Bangoria
2019-01-19  0:29   ` Tony Jones
2019-01-19  2:05     ` Tony Jones [this message]
2019-01-19  0:59 ` Tony Jones

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=7d5e8be1-b2dc-7654-744b-5ddbe2faf5b2@suse.de \
    --to=tonyj@suse.de \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=s1seetee@linux.vnet.ibm.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).