From: Oleg Nesterov <oleg@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: jan.kratochvil@redhat.com, vda.linux@googlemail.com,
linux-kernel@vger.kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, indan@nul.nu
Subject: Re: [PATCH 04/11] ptrace: implement PTRACE_INTERRUPT
Date: Tue, 10 May 2011 20:08:11 +0200 [thread overview]
Message-ID: <20110510180811.GB32637@redhat.com> (raw)
In-Reply-To: <20110510142033.GY1661@htj.dyndns.org>
On 05/10, Tejun Heo wrote:
>
> > And, you know, I am not sure this is very clear. What if we change the
> > rules so that PTRACE_SEIZE always reports PTRACE_EVENT_INTERRUPT like
> > PTRACE_INTERRUPT? This looks more symmetrical and simple to me. IOW,
> > ptrace(PTRACE_SEIZE) simply implies the implicit PTRACE_INTERRUPT.
>
> Actually, that was my initial implementation but as we don't guarantee
> that the first trap would be an INTERRUPT one,
Yes, and ptrace(PTRACE_INTERRUPT) doesn't guarantee this too,
> so it seemed nicer to
> avoid double trapping after SEIZE.
Why? We can simply say that ptrace(PTRACE_SEIZE) == attach + INTERRUPT,
the rules are the same.
Hmm. Suddenly I got lost. Perhaps instead JOBCTL_TRAP_INTERRUPT should
be cleared on any trap too, like SEIZE.
Again, agaian, I don't have the strong opinion, I am asking.
> Maybe we can make sure that
> INTERRUPT is always the trap to be taken
I don't know. Personally, I do not think this will make the API much
better.
> but it would be a tad bit
> more complex than the current implementation.
Yes.
> > Oh. And this reminds me the previous discussion. Should PTRACE_SEIZE
> > stop the tracee? Perhaps it should only attach or do PTRACE_INTERRUPT
> > depending on flags? Personally I think it should stop...
> >
> > To clarify, personally I do not know. Jan, Denys, all, please comment.
> > If PTRACE_SEIZE doesn't stop the tracee, then we should probably pass
> > more options.
>
> I'm rather strongly against not trapping and somebody would have to
> give me _very_ convincing rationales to change my mind on the subject.
Yes, I agree.
> > Either way, these changes do not handle the auto-attach case correctly.
> > tracehook_report_clone() shouldn't send SIGSTOP unconditionally, we
> > should check PT_SEIZED. And perhaps we can do auto-attach better, but
> > right now this is off-topic.
>
> Oh yeah, that's something I meant to ask you but forgot. The SEIZE
> behaviors are not complete after this patchset and thus there's no
> patch to remove the DEVEL flag yet. ISTR you telling me there are two
> or three conditions where the reporting/stopping isn't transparent in
> a previous mail, which I can't find anymore.
Hmm. No, I can't recall anything related...
> One apparently is clone.
> What were the others?
clone() is special because (I think) auto-attach should obviously
inherit PT_SEIZED. ptrace_init_task() copies PT_SEIZED correctly, so
we should only change tracehook_report_clone().
Another special (and nasty!) case is PTRACE_TRACEME. I do not know
how often it is used, but probabaly it is important enough. At least,
iirc, it is used by strace. Probably we need PTRACE_SEIZEME as well.
> > Well. Perhaps PTRACE_INTERRUPT should return -EALREADY or something if
> > JOBCTL_TRAP_INTERRUPT is already set? Again, again, it is not that I think
> > this is really useful. But since we are going to add the new API it is
> > better to discuss every detail.
>
> At first I made PTRACE_INTERRUPT noop if it was already in INTERRUPT
> trap but then changed my mind because guaranteeing that there will be
> at least one PTRACE_EVENT_INTERRUPT trap after PTRACE_INTERRUPT seems
> better than having subtle behavior difference which might be nicer in
> limited use cases.
No, I meant -EALREADY if JOBCTL_TRAP_INTERRUPT is pending set but not
yet reported. But anyway, this is really minor.
Oleg.
next prev parent reply other threads:[~2011-05-10 18:09 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-08 15:48 [PATCHSET ptrace] ptrace: implement PTRACE_SEIZE/INTERRUPT and group stop notification Tejun Heo
2011-05-08 15:48 ` [PATCH 01/11] job control: rename signal->group_stop and flags to jobctl and rearrange flags Tejun Heo
2011-05-08 15:48 ` [PATCH 02/11] ptrace: implement PTRACE_SEIZE Tejun Heo
2011-05-09 16:18 ` Oleg Nesterov
2011-05-10 9:46 ` Tejun Heo
2011-05-10 13:20 ` Oleg Nesterov
2011-05-10 13:47 ` Tejun Heo
2011-05-10 18:19 ` Oleg Nesterov
2011-05-15 15:56 ` PTRACE_SEIZE should not stop [Re: [PATCH 02/11] ptrace: implement PTRACE_SEIZE] Jan Kratochvil
2011-05-15 16:26 ` Tejun Heo
2011-05-15 17:15 ` Jan Kratochvil
2011-05-15 17:25 ` Tejun Heo
2011-05-15 19:48 ` Jan Kratochvil
2011-05-16 8:31 ` Tejun Heo
2011-05-16 12:26 ` Jan Kratochvil
2011-05-16 12:42 ` Tejun Heo
2011-05-16 13:03 ` Jan Kratochvil
2011-05-16 13:51 ` Tejun Heo
2011-05-16 13:21 ` Jan Kratochvil
2011-05-16 13:45 ` Tejun Heo
2011-05-16 13:48 ` Jan Kratochvil
2011-05-16 13:54 ` Tejun Heo
2011-05-08 15:48 ` [PATCH 03/11] ptrace: ptrace_check_attach(): rename @kill to @ignore_state and add comments Tejun Heo
2011-05-08 15:48 ` [PATCH 04/11] ptrace: implement PTRACE_INTERRUPT Tejun Heo
2011-05-08 21:58 ` Denys Vlasenko
2011-05-09 10:09 ` Tejun Heo
2011-05-09 10:55 ` Denys Vlasenko
2011-05-09 16:58 ` Oleg Nesterov
2011-05-10 9:50 ` Tejun Heo
2011-05-10 14:06 ` Oleg Nesterov
2011-05-10 14:20 ` Tejun Heo
2011-05-10 18:08 ` Oleg Nesterov [this message]
2011-05-11 8:29 ` Tejun Heo
2011-05-12 17:06 ` Oleg Nesterov
2011-05-12 17:21 ` Tejun Heo
2011-05-10 21:59 ` Denys Vlasenko
2011-05-11 9:19 ` Tejun Heo
2011-05-11 12:23 ` Denys Vlasenko
2011-05-11 13:22 ` Tejun Heo
2011-05-11 16:20 ` Bryan Donlan
2011-05-11 19:24 ` Tejun Heo
2011-05-15 16:10 ` PTRACE_DETACH without stop [Re: [PATCH 04/11] ptrace: implement PTRACE_INTERRUPT] Jan Kratochvil
2011-05-15 16:35 ` Tejun Heo
2011-05-15 17:39 ` Jan Kratochvil
2011-05-16 9:01 ` Tejun Heo
2011-05-16 12:08 ` Jan Kratochvil
2011-05-16 12:24 ` Tejun Heo
2011-05-08 15:48 ` [PATCH 05/11] ptrace: restructure ptrace_getsiginfo() Tejun Heo
2011-05-08 15:49 ` [PATCH 06/11] ptrace: make group stop state visible via PTRACE_GETSIGINFO Tejun Heo
2011-05-10 16:55 ` Oleg Nesterov
2011-05-10 17:11 ` Oleg Nesterov
2011-05-11 8:08 ` Tejun Heo
2011-05-12 16:47 ` Oleg Nesterov
2011-05-12 17:15 ` Tejun Heo
2011-05-08 15:49 ` [PATCH 07/11] ptrace: add JOBCTL_TRAPPED Tejun Heo
2011-05-08 15:49 ` [PATCH 08/11] ptrace: move fallback JOBCTL_TRAPPING clearing to get_signal_to_deliver() Tejun Heo
2011-05-11 15:48 ` Oleg Nesterov
2011-05-11 19:17 ` Tejun Heo
2011-05-12 15:40 ` Oleg Nesterov
2011-05-08 15:49 ` [PATCH 09/11] job control: reorganize wait_task_stopped() Tejun Heo
2011-05-11 15:48 ` Oleg Nesterov
2011-05-11 19:29 ` Tejun Heo
2011-05-12 15:42 ` Oleg Nesterov
2011-05-12 16:02 ` Tejun Heo
2011-05-12 17:25 ` Oleg Nesterov
2011-05-12 17:32 ` Tejun Heo
2011-05-12 17:33 ` Tejun Heo
2011-05-12 18:33 ` Oleg Nesterov
2011-05-13 8:46 ` Tejun Heo
2011-05-13 17:21 ` Oleg Nesterov
2011-05-14 10:56 ` Tejun Heo
2011-05-15 14:40 ` waitpid(WNOHANG) should report SIGCHLD-notified signals [Re: [PATCH 09/11] job control: reorganize wait_task_stopped()] Jan Kratochvil
2011-05-15 16:47 ` Tejun Heo
2011-05-15 17:01 ` Tejun Heo
2011-05-15 17:47 ` Jan Kratochvil
2011-05-16 9:13 ` Tejun Heo
2011-05-16 12:11 ` Jan Kratochvil
2011-05-16 12:27 ` Tejun Heo
2011-05-16 12:39 ` Jan Kratochvil
2011-05-16 12:46 ` Tejun Heo
2011-05-08 15:49 ` [PATCH 10/11] ptrace: move JOBCTL_TRAPPING wait to wait(2) and ptrace_check_attach() Tejun Heo
2011-05-11 16:49 ` Oleg Nesterov
2011-05-11 17:00 ` Oleg Nesterov
2011-05-11 19:45 ` Tejun Heo
2011-05-11 19:53 ` Tejun Heo
2011-05-12 10:23 ` Tejun Heo
2011-05-12 16:06 ` Oleg Nesterov
2011-05-12 15:59 ` Oleg Nesterov
2011-05-12 16:07 ` Tejun Heo
2011-05-12 18:20 ` Oleg Nesterov
2011-05-13 9:13 ` Tejun Heo
2011-05-13 18:34 ` Oleg Nesterov
2011-05-08 15:49 ` [PATCH 11/11] ptrace: implement group stop notification for ptracer Tejun Heo
2011-05-08 22:42 ` Denys Vlasenko
2011-05-09 10:10 ` Tejun Heo
2011-05-10 22:37 ` Denys Vlasenko
2011-05-11 9:05 ` Tejun Heo
2011-05-11 12:01 ` Denys Vlasenko
2011-05-11 13:13 ` Tejun Heo
2011-05-11 19:58 ` Oleg Nesterov
2011-05-11 20:18 ` Tejun Heo
2011-05-11 20:21 ` Tejun Heo
2011-05-12 10:24 ` Tejun Heo
2011-05-15 14:02 ` getter PTRACE_GETSIGINFO should not modify anything [Re: [PATCH 11/11] ptrace: implement group stop notification for ptracer] Jan Kratochvil
2011-05-15 14:28 ` Tejun Heo
2011-05-15 17:17 ` Jan Kratochvil
2011-05-15 17:28 ` Tejun Heo
2011-05-15 20:06 ` Jan Kratochvil
2011-05-16 8:43 ` Tejun Heo
2011-05-16 12:17 ` Jan Kratochvil
2011-05-16 12:56 ` Tejun Heo
2011-05-16 13:00 ` Ingo Molnar
2011-05-08 22:27 ` [PATCHSET ptrace] ptrace: implement PTRACE_SEIZE/INTERRUPT and group stop notification Denys Vlasenko
2011-05-09 9:48 ` Tejun Heo
2011-05-15 13:55 ` ptrace-testsuite status [Re: [PATCHSET ptrace] ptrace: implement PTRACE_SEIZE/INTERRUPT and group stop notification] Jan Kratochvil
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=20110510180811.GB32637@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=indan@nul.nu \
--cc=jan.kratochvil@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=vda.linux@googlemail.com \
/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.