All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roland McGrath <roland@redhat.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: eranian@googlemail.com, linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org, x86@kernel.org, andi@firstfloor.org,
	eranian@gmail.com, sfr@canb.auug.org.au,
	Oleg Nesterov <oleg@redhat.com>
Subject: Re: [patch 20/24] perfmon: system calls interface
Date: Tue,  2 Dec 2008 18:02:22 -0800 (PST)	[thread overview]
Message-ID: <20081204005203.6B80BFC3BF@magilla.sf.frob.com> (raw)
In-Reply-To: Ingo Molnar's message of  Wednesday, 26 November 2008 15:00:27 +0100 <20081126140027.GC6562@elte.hu>

> > +	/*
> > +	 * cannot attach to a kernel thread
> > +	 */
> > +	if (!task->mm) {

This should test (task->flags & PF_KTHREAD).  (But it's superfluous anyway.)

> > +	/*
> > +	 * cannot attach to a zombie task
> > +	 */
> > +	if (task->exit_state == EXIT_ZOMBIE || task->exit_state == EXIT_DEAD) {

The usual test to write here is just "if (task->exit_state)".
(But it's superfluous anyway.)

> Thirdly, the check for ->exit_state in pfm_task_incompatible() is not 
> needed: we've just passed ptrace_check_attach() so we know we just 
> transitioned the task to task->state == TASK_TRACED.

Correct.

> If you _ever_ see a task exit TASK_TRACED and go zombie or dead from 
> there without this code allowing it that means the whole state machine 
> with ptrace is borked up by perfmon. 

Is always possible for a TASK_TRACED task to suddenly die via SIGKILL, and
it's even possible it will be reaped (EXIT_DEAD) despite ptrace, in the
de_thread() (MT exec) case.  This race is tolerable for everything ptrace
does (it holds a task ref, and the arch code copes).  It must also be
tolerated by the perfmon code.

> For example i dont see where the perfmon-control task parents itself as
> the exclusive debugger (parent) of the debuggee-task.

ptrace_check_attach() ensures that this is so.  


Thanks,
Roland

  parent reply	other threads:[~2008-12-04  0:55 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-26  8:42 [patch 20/24] perfmon: system calls interface eranian
2008-11-26 12:02 ` Andi Kleen
2008-11-26 13:43 ` Ingo Molnar
2008-11-26 14:00 ` Ingo Molnar
2008-11-26 16:59   ` Oleg Nesterov
2008-11-27 12:25     ` stephane eranian
2008-11-27 12:41       ` Andi Kleen
2008-11-27 14:22   ` stephane eranian
2008-11-27 14:42     ` Ingo Molnar
2008-11-27 15:16       ` stephane eranian
2008-12-01  0:49     ` Paul Mackerras
2008-12-01  6:05       ` stephane eranian
2008-12-03  2:02   ` Roland McGrath [this message]
2008-12-04  1:05   ` Roland McGrath
2008-11-26 14:02 ` Ingo Molnar
2008-11-26 14:08 ` Ingo Molnar
2008-11-27 14:28   ` stephane eranian
2008-11-26 14:11 ` Ingo Molnar
2008-11-26 14:13 ` Ingo Molnar
2008-11-27 14:01 ` Thomas Gleixner
2008-11-27 14:07   ` stephane eranian
2008-12-01  6:10   ` stephane eranian
  -- strict thread matches above, loose matches on Subject: below --
2008-11-25 21:36 eranian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081204005203.6B80BFC3BF@magilla.sf.frob.com \
    --to=roland@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=eranian@gmail.com \
    --cc=eranian@googlemail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=oleg@redhat.com \
    --cc=sfr@canb.auug.org.au \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.