On Mon, Mar 17, 2014 at 04:25:15PM +0900, Namhyung Kim wrote: > On Fri, 14 Mar 2014 15:00:06 +0100, Jiri Olsa wrote: > > + if (!mg) { > > + struct thread *leader = thread__get_leader(thread); > > + > > + if (!leader) > > + return NULL; > > + > > + if (leader->mg) > > + mg = leader->mg; > > + else > > + mg = thread__map_groups_alloc(leader); > > + > > + if (leader != thread) > > + thread->mg = mg; > > + > > + mg->refcnt++; > > What's the value of mg->refcnt here in case of leader != thread and > leader->mg was not allocated originally? I think it's 1 - but shouldn't > it be 2 since it's referenced from both of leader and the thread now? right you are.. I need to initialize refcnt to 1 in thread__map_groups_alloc and increase it only for the '(leader != thread)' case I'll add some test for this thanks, jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/