> > 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