Messages in this thread | | | Date | Thu, 11 Nov 2021 15:41:48 +0800 | From | Leo Yan <> | Subject | Re: [PATCH v2 4/4] perf arm-spe: Support hardware-based PID tracing |
| |
On Wed, Nov 10, 2021 at 11:28:48PM -0800, Namhyung Kim wrote:
[...]
> > +static void arm_spe_set_pid_tid_cpu(struct arm_spe *spe, > > + struct auxtrace_queue *queue) > > +{ > > + struct arm_spe_queue *speq = queue->priv; > > + pid_t tid; > > + > > + tid = machine__get_current_tid(spe->machine, speq->cpu); > > + if (tid != -1) { > > + speq->tid = tid; > > + thread__zput(speq->thread); > > + } else > > + speq->tid = queue->tid; > > + > > + if ((!speq->thread) && (speq->tid != -1)) { > > + speq->thread = machine__find_thread(spe->machine, -1, > > + speq->tid); > > + } > > + > > + if (speq->thread) { > > + speq->pid = speq->thread->pid_; > > + if (queue->cpu == -1) > > + speq->cpu = speq->thread->cpu; > > + } > > +} > > + > > +static int arm_spe_set_tid(struct arm_spe_queue *speq, pid_t tid) > > +{ > > + struct arm_spe *spe = speq->spe; > > + int err = machine__set_current_tid(spe->machine, speq->cpu, tid, tid); > > I think we should pass -1 as pid as we don't know the real pid.
AFAICT, I observe one case for machine__set_current_tid() returning error is 'speq->cpu' is -1 (this is the case for per-thread tracing). In this case, if pass '-1' for pid/tid, it still will return failure.
So here should return the error as it is. Am I missing anything?
Thanks, Leo
| |