lkml.org 
[lkml]   [2009]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [tip:perfcounters/core] perf_counter: Use PID namespaces properly
From
Date
On Tue, 2009-06-02 at 17:55 +0200, Oleg Nesterov wrote:
> On 06/02, tip-bot for Peter Zijlstra wrote:
> >
> > +static u32 perf_counter_pid(struct perf_counter *counter, struct task_struct *p)
> > +{
> > + /*
> > + * only top level counters have the pid namespace they were created in
> > + */
> > + if (counter->parent)
> > + counter = counter->parent;
> > +
> > + return task_tgid_nr_ns(p, counter->ns);
> > +}
> > +
> > +static u32 perf_counter_tid(struct perf_counter *counter, struct task_struct *p)
> > +{
> > + /*
> > + * only top level counters have the pid namespace they were created in
> > + */
> > + if (counter->parent)
> > + counter = counter->parent;
> > +
> > + return task_pid_nr_ns(p, counter->ns);
>
> Perhaps this should be
>
> return task_pid_nr_ns(p->group_leader);
>
> ?

That seems to be exactly what task_tgid_nr_ns() does.

so pid = task->group_leader->pids[PIDTYPE_PID].pid
and tid = task->pids[PIDTYPE_PID].pid

> > + tid_entry.pid = perf_counter_pid(counter, current);
> > + tid_entry.tid = perf_counter_tid(counter, current);
>
>
> Otherwise we seem to always report .pid == .tid

tgid vs pid, I don't think they end up being equal. Are they?



\
 
 \ /
  Last update: 2009-06-02 18:31    [W:0.090 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site