Commit 6302aad4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Ingo, a man of few words, writes:
  "perf fixes:

   misc perf tooling fixes"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf record: Use unmapped IP for inline callchain cursors
  perf python: Use -Wno-redundant-decls to build with PYTHON=python3
  perf report: Don't try to map ip to invalid map
  perf script python: Fix export-to-sqlite.py sample columns
  perf script python: Fix export-to-postgresql.py occasional failure
parents 9dcd936c c1883f10
...@@ -204,14 +204,23 @@ from ctypes import * ...@@ -204,14 +204,23 @@ from ctypes import *
libpq = CDLL("libpq.so.5") libpq = CDLL("libpq.so.5")
PQconnectdb = libpq.PQconnectdb PQconnectdb = libpq.PQconnectdb
PQconnectdb.restype = c_void_p PQconnectdb.restype = c_void_p
PQconnectdb.argtypes = [ c_char_p ]
PQfinish = libpq.PQfinish PQfinish = libpq.PQfinish
PQfinish.argtypes = [ c_void_p ]
PQstatus = libpq.PQstatus PQstatus = libpq.PQstatus
PQstatus.restype = c_int
PQstatus.argtypes = [ c_void_p ]
PQexec = libpq.PQexec PQexec = libpq.PQexec
PQexec.restype = c_void_p PQexec.restype = c_void_p
PQexec.argtypes = [ c_void_p, c_char_p ]
PQresultStatus = libpq.PQresultStatus PQresultStatus = libpq.PQresultStatus
PQresultStatus.restype = c_int
PQresultStatus.argtypes = [ c_void_p ]
PQputCopyData = libpq.PQputCopyData PQputCopyData = libpq.PQputCopyData
PQputCopyData.restype = c_int
PQputCopyData.argtypes = [ c_void_p, c_void_p, c_int ] PQputCopyData.argtypes = [ c_void_p, c_void_p, c_int ]
PQputCopyEnd = libpq.PQputCopyEnd PQputCopyEnd = libpq.PQputCopyEnd
PQputCopyEnd.restype = c_int
PQputCopyEnd.argtypes = [ c_void_p, c_void_p ] PQputCopyEnd.argtypes = [ c_void_p, c_void_p ]
sys.path.append(os.environ['PERF_EXEC_PATH'] + \ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
......
...@@ -440,7 +440,11 @@ def branch_type_table(*x): ...@@ -440,7 +440,11 @@ def branch_type_table(*x):
def sample_table(*x): def sample_table(*x):
if branches: if branches:
bind_exec(sample_query, 18, x) for xx in x[0:15]:
sample_query.addBindValue(str(xx))
for xx in x[19:22]:
sample_query.addBindValue(str(xx))
do_query_(sample_query)
else: else:
bind_exec(sample_query, 22, x) bind_exec(sample_query, 22, x)
......
...@@ -2286,7 +2286,8 @@ static int append_inlines(struct callchain_cursor *cursor, ...@@ -2286,7 +2286,8 @@ static int append_inlines(struct callchain_cursor *cursor,
if (!symbol_conf.inline_name || !map || !sym) if (!symbol_conf.inline_name || !map || !sym)
return ret; return ret;
addr = map__rip_2objdump(map, ip); addr = map__map_ip(map, ip);
addr = map__rip_2objdump(map, addr);
inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr); inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr);
if (!inline_node) { if (!inline_node) {
...@@ -2312,7 +2313,7 @@ static int unwind_entry(struct unwind_entry *entry, void *arg) ...@@ -2312,7 +2313,7 @@ static int unwind_entry(struct unwind_entry *entry, void *arg)
{ {
struct callchain_cursor *cursor = arg; struct callchain_cursor *cursor = arg;
const char *srcline = NULL; const char *srcline = NULL;
u64 addr; u64 addr = entry->ip;
if (symbol_conf.hide_unresolved && entry->sym == NULL) if (symbol_conf.hide_unresolved && entry->sym == NULL)
return 0; return 0;
...@@ -2324,6 +2325,7 @@ static int unwind_entry(struct unwind_entry *entry, void *arg) ...@@ -2324,6 +2325,7 @@ static int unwind_entry(struct unwind_entry *entry, void *arg)
* Convert entry->ip from a virtual address to an offset in * Convert entry->ip from a virtual address to an offset in
* its corresponding binary. * its corresponding binary.
*/ */
if (entry->map)
addr = map__map_ip(entry->map, entry->ip); addr = map__map_ip(entry->map, entry->ip);
srcline = callchain_srcline(entry->map, entry->sym, addr); srcline = callchain_srcline(entry->map, entry->sym, addr);
......
...@@ -35,7 +35,7 @@ class install_lib(_install_lib): ...@@ -35,7 +35,7 @@ class install_lib(_install_lib):
cflags = getenv('CFLAGS', '').split() cflags = getenv('CFLAGS', '').split()
# switch off several checks (need to be at the end of cflags list) # switch off several checks (need to be at the end of cflags list)
cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter' ] cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter', '-Wno-redundant-decls' ]
if cc != "clang": if cc != "clang":
cflags += ['-Wno-cast-function-type' ] cflags += ['-Wno-cast-function-type' ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment