Commit-ID:  7354ec7a86c0cc03bebb7f86af8f20a88b27c262
Gitweb:     http://git.kernel.org/tip/7354ec7a86c0cc03bebb7f86af8f20a88b27c262
Author:     Stefano Sanfilippo <[email protected]>
AuthorDate: Thu, 13 Oct 2016 03:59:38 -0700
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 24 Oct 2016 11:07:38 -0300

perf jit: Make perf skip unknown records

The behavior before this commit was to skip the remaining portion of the
jitdump in case an unknown record was found, including those records
that perf could handle.

With this change, parsing a record with an unknown id will cause a
warning to be emitted, the record will be skipped and parsing will
resume from the next (valid) one.

The patch aims at making perf more future proof, by extracting as much
information as possible from jitdumps.

Signed-off-by: Stefano Sanfilippo <[email protected]>
Signed-off-by: Ross McIlroy <[email protected]>
Reviewed-by: Stephane Eranian <[email protected]>
Cc: Anton Blanchard <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: 
http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/util/jitdump.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c
index f3ed3c9..75b66bb 100644
--- a/tools/perf/util/jitdump.c
+++ b/tools/perf/util/jitdump.c
@@ -263,8 +263,7 @@ jit_get_next_entry(struct jit_buf_desc *jd)
                return NULL;
 
        if (id >= JIT_CODE_MAX) {
-               pr_warning("next_entry: unknown prefix %d, skipping\n", id);
-               return NULL;
+               pr_warning("next_entry: unknown record type %d, skipping\n", 
id);
        }
        if (bs > jd->bufsize) {
                void *n;
@@ -322,7 +321,8 @@ jit_get_next_entry(struct jit_buf_desc *jd)
                break;
        case JIT_CODE_MAX:
        default:
-               return NULL;
+               /* skip unknown record (we have read them) */
+               break;
        }
        return jr;
 }

Reply via email to