From: Andrew Vagin <avagin@gmail.com>
To: Pedro Alves <palves@redhat.com>
Cc: Oleg Nesterov <oleg@redhat.com>,
Pavel Emelyanov <xemul@parallels.com>,
Jan Kratochvil <jan.kratochvil@redhat.com>,
Tejun Heo <tj@kernel.org>, Andrew Vagin <avagin@openvz.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Cyrill Gorcunov <gorcunov@openvz.org>
Subject: Re: [PATCH] ptrace: add ability to get clear_tid_address
Date: Wed, 08 Feb 2012 17:41:45 +0400 [thread overview]
Message-ID: <4F327B99.7020602@gmail.com> (raw)
In-Reply-To: <4F31848A.9070406@redhat.com>
Hi All,
> Off hand, I'm not picturing a use. But that may well just mean I'm lacking
> imagination. Andrew, Pavel, did you have a particular idea in mind when you
> said it may be useful for debugging a multithreading program / gdb?
For example:
pthread_join() waits on a futex (child_tid_address), but a thread is
dead already.
Where is the problem? At first I would want to check, that
pthread_join() uses the correct address of the futex. The simple way is
to connect to this process via gdb
and get it.
I want to say, that when you have trouble with child_tid_address, you
may want to get it.
If the code is your, you may get it via prctl, but if it's not, what
will you do?
Yes, we have lived without this for a long time, so I can assume that
all what I tell is useless.
But one more reason why I want to add this in ptrace.
I want use this functionality to dump a process state.
Now we do a few actions in a context of the process which we want to
dump. A parasite code is injected for that. This way is dangerous,
because it may affect a target process (It may occur due to a bug in
parasite). We use this way, because we want to add minimum functionality
in the kernel. Our current goal is to make a full functional prototype
and when everyone will understand that this project works and it's
usefull, we will do improvements. And I hope in future we will save
state of processes without parasite.
For this reason I avoid adding new actions in a parasite code, but
prctl() can be executed only from parasite code.
If after all you are not sure that this functionality should be in
ptrace, I will add it in prctl, it's not a problem.
Thanks.
next prev parent reply other threads:[~2012-02-08 13:41 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-03 11:11 [PATCH] ptrace: add ability to get clear_tid_address Andrew Vagin
2012-02-03 16:25 ` Tejun Heo
2012-02-03 16:30 ` Cyrill Gorcunov
2012-02-03 16:41 ` Oleg Nesterov
2012-02-03 16:54 ` Cyrill Gorcunov
2012-02-03 16:45 ` Pavel Emelyanov
2012-02-03 16:51 ` Oleg Nesterov
2012-02-07 20:07 ` Pedro Alves
2012-02-07 20:56 ` Cyrill Gorcunov
2012-02-07 21:15 ` Pedro Alves
2012-02-07 21:51 ` Cyrill Gorcunov
2012-02-08 12:30 ` Pedro Alves
2012-02-08 12:42 ` Cyrill Gorcunov
2012-02-08 17:31 ` Oleg Nesterov
2012-02-08 18:04 ` Pedro Alves
2012-02-08 19:02 ` Oleg Nesterov
2012-02-08 19:20 ` Cyrill Gorcunov
2012-02-08 19:21 ` Jan Kratochvil
2012-02-08 19:42 ` Pedro Alves
2012-02-08 13:41 ` Andrew Vagin [this message]
2012-02-08 18:12 ` Jan Kratochvil
2012-02-10 3:02 ` Jamie Lokier
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=4F327B99.7020602@gmail.com \
--to=avagin@gmail.com \
--cc=avagin@openvz.org \
--cc=gorcunov@openvz.org \
--cc=jan.kratochvil@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=palves@redhat.com \
--cc=tj@kernel.org \
--cc=xemul@parallels.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox