|
@@ -222,32 +222,6 @@ static int intel_pt_do_fix_overlap(struct intel_pt *pt, struct auxtrace_buffer *
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static void intel_pt_use_buffer_pid_tid(struct intel_pt_queue *ptq,
|
|
|
- struct auxtrace_queue *queue,
|
|
|
- struct auxtrace_buffer *buffer)
|
|
|
-{
|
|
|
- if (queue->cpu == -1 && buffer->cpu != -1)
|
|
|
- ptq->cpu = buffer->cpu;
|
|
|
-
|
|
|
- ptq->pid = buffer->pid;
|
|
|
- ptq->tid = buffer->tid;
|
|
|
-
|
|
|
- intel_pt_log("queue %u cpu %d pid %d tid %d\n",
|
|
|
- ptq->queue_nr, ptq->cpu, ptq->pid, ptq->tid);
|
|
|
-
|
|
|
- thread__zput(ptq->thread);
|
|
|
-
|
|
|
- if (ptq->tid != -1) {
|
|
|
- if (ptq->pid != -1)
|
|
|
- ptq->thread = machine__findnew_thread(ptq->pt->machine,
|
|
|
- ptq->pid,
|
|
|
- ptq->tid);
|
|
|
- else
|
|
|
- ptq->thread = machine__find_thread(ptq->pt->machine, -1,
|
|
|
- ptq->tid);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/* This function assumes data is processed sequentially only */
|
|
|
static int intel_pt_get_trace(struct intel_pt_buffer *b, void *data)
|
|
|
{
|
|
@@ -311,10 +285,6 @@ next:
|
|
|
b->consecutive = true;
|
|
|
}
|
|
|
|
|
|
- if (ptq->use_buffer_pid_tid && (ptq->pid != buffer->pid ||
|
|
|
- ptq->tid != buffer->tid))
|
|
|
- intel_pt_use_buffer_pid_tid(ptq, queue, buffer);
|
|
|
-
|
|
|
if (ptq->step_through_buffers)
|
|
|
ptq->stop = true;
|
|
|
|
|
@@ -958,12 +928,9 @@ static int intel_pt_setup_queue(struct intel_pt *pt,
|
|
|
ptq->cpu = queue->cpu;
|
|
|
ptq->tid = queue->tid;
|
|
|
|
|
|
- if (pt->sampling_mode) {
|
|
|
- if (pt->timeless_decoding)
|
|
|
- ptq->step_through_buffers = true;
|
|
|
- if (pt->timeless_decoding || !pt->have_sched_switch)
|
|
|
- ptq->use_buffer_pid_tid = true;
|
|
|
- }
|
|
|
+ if (pt->sampling_mode && !pt->snapshot_mode &&
|
|
|
+ pt->timeless_decoding)
|
|
|
+ ptq->step_through_buffers = true;
|
|
|
|
|
|
ptq->sync_switch = pt->sync_switch;
|
|
|
}
|