]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - tools/perf/util/intel-pt.c
perf intel-pt: Fix "Unexpected indirect branch" error
[linux.git] / tools / perf / util / intel-pt.c
index 3db7f0ee52a81430a7b0bea4729c7a92ede50664..aec68908d60428314f73bc04c749520c1d96fd06 100644 (file)
@@ -749,6 +749,7 @@ static struct intel_pt_queue *intel_pt_alloc_queue(struct intel_pt *pt,
                                                   unsigned int queue_nr)
 {
        struct intel_pt_params params = { .get_trace = 0, };
+       struct perf_env *env = pt->machine->env;
        struct intel_pt_queue *ptq;
 
        ptq = zalloc(sizeof(struct intel_pt_queue));
@@ -830,6 +831,9 @@ static struct intel_pt_queue *intel_pt_alloc_queue(struct intel_pt *pt,
                }
        }
 
+       if (env->cpuid && !strncmp(env->cpuid, "GenuineIntel,6,92,", 18))
+               params.flags |= INTEL_PT_FUP_WITH_NLIP;
+
        ptq->decoder = intel_pt_decoder_new(&params);
        if (!ptq->decoder)
                goto out_free;