RE: [PATCH RFC V2 05/10] perf tools: lock to protect thread list

From: Liang, Kan
Date: Mon Sep 18 2017 - 12:18:48 EST


>
> SNIP
>
> > + pthread_mutex_unlock(&thread->namespaces_lock);
> > +
> > return 0;
> > }
> >
> > -void thread__namespaces_id(const struct thread *thread,
> > +void thread__namespaces_id(struct thread *thread,
> > u64 *dev, u64 *ino)
> > {
> > struct namespaces *ns;
> >
> > + pthread_mutex_lock(&thread->namespaces_lock);
> > ns = thread__namespaces(thread);
>
> isn't it just thread__namespaces that needs this lock?

I also wanted to protect
*dev = ns ? ns->link_info[CGROUP_NS_INDEX].dev : 0;
*ino = ns ? ns->link_info[CGROUP_NS_INDEX].ino : 0;
Because I was not sure if ns is still accurate when we try to use
it later.
But for our case (perf top event synthesizing), it looks I worried too much.
Namespaces event isn't processed at all.
So yes, we don't need patch 4 for the optimization.

Based on the same reason, I used comm_str in patch 3.
It's not help for the optimization either, but should be useful for future.

Anyway, I think I will drop patch 3 & 4 for V3.

Thanks,
Kan

>
> if that's the case we don't need the change for __hists__add_entry in
> previous patch
>
> jirka