From: "Américo Wang" <xiyou.wangcong@gmail.com>
To: Renzo Davoli <renzo@cs.unibo.it>
Cc: "Américo Wang" <xiyou.wangcong@gmail.com>,
linux-kernel@vger.kernel.org, "Jeff Dike" <jdike@addtoit.com>,
user-mode-linux-devel@lists.sourceforge.net,
mtk.manpages@gmail.com, "Roland McGrath" <roland@redhat.com>
Subject: Re: [PATCH 0/2] ptrace_vm: ptrace for syscall emulation virtual machines
Date: Tue, 14 Apr 2009 00:36:03 +0800 [thread overview]
Message-ID: <20090413163603.GG2391@hack> (raw)
In-Reply-To: <20090408121851.GE24173@cs.unibo.it>
On Wed, Apr 08, 2009 at 02:18:51PM +0200, Renzo Davoli wrote:
>> > #endif
>> > #ifdef PTRACE_SINGLEBLOCK
>> > case PTRACE_SINGLEBLOCK:
>> > #endif
>> > #ifdef PTRACE_SYSEMU
>> > case PTRACE_SYSEMU:
>> > case PTRACE_SYSEMU_SINGLESTEP:
>> > #endif
>> > case PTRACE_SYSCALL:
>> > case PTRACE_CONT:
>> > return ptrace_resume(child, request, 0, data);
>> >+/* statements added for PTRACE_VM management */
>> >+#ifdef PTRACE_VM
>> >+ case PTRACE_VM:
>> >+#ifdef PTRACE_VM_SINGLESTEP
>> >+ case PTRACE_VM_SINGLESTEP:
>> >+#endif
>> >+#ifdef PTRACE_VM_SINGLEBLOCK
>> >+ case PTRACE_VM_SINGLEBLOCK:
>> >+#endif
>> >+ return ptrace_resume(child, PTRACE_VM_TAGS_MAPPING(request), addr, data);
>> >+#endif
>> >....
>> >
>>
>> Hmmm, I see your points. Thanks for your analysis.
>>
>The "resume tags" SYSCALL, SINGLESTEP/SINGLEBLOCK, CONT give to ptrace
>the command to resume and indicate when ptrace must stop next time.
>The VM_SKIPCALL, VM_SKIPEXIT tags refer to the current system call.
>The two sets are independent, orthogonal.
I see.
>
>I may want to skip this system call and stop either at the next system call
>or at the next block, instruction or never.
>As usual, everything is possible with or without some tags, the difference
>in in this case in terms of clearness of the interface.
Yes, sure.
>
>If we'd provide only a PTRACE_VM call (namely a PTRACE_VM_SYSCALL)
>to resume up to the next syscall it was not possible to use it
>to implement a virtualized "ptrace".
>The virtual ptrace call may need to stop the process after an instruction
>or a block as it was requested to do so.
>In this case the VM monitor should use PTRACE_SINGLE* without the
>VM_SKIP* optimization (maybe faking the execution of a getpid
>to skip a system call, like in the old times of User mode Linux).
>For a similar reason PTRACE_SYSEMY_SINGLESTEP was added in the kernel.
>
>WHy we should make life harder to VM monitor designer?
>
>We could also have a unique PTRACE_VM tag and encode both
>SYSCALL/SINGLESTEP/SINGLEBLOCK/BLOCK
>and
>SKIPCALL/SKIPEXIT
>in different bits inside the addr field.
>
>Again, this is a trick to use just one tag.
>It is a matter of values.
>Efficiency is the meaning of this patch, so it is a conditio
>sine qua non.
>Apart from efficiency, what do we want most?
>Clearness of interface design?
>Back compatibility for very improbable cases?
>
>I bet on the former, usually it is an insurance for the future.
This is almost exactly what I said in my first mail, I
have no objection to your patch, I like it, I just wanted to try
to find a balance.
Anyway, I will test your patch tomorrow, and will send you more
feedbacks soon.
Thanks.
--
Live like a child, think like the god.
next prev parent reply other threads:[~2009-04-13 16:35 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-04 8:02 [PATCH 0/2] ptrace_vm: ptrace for syscall emulation virtual machines Renzo Davoli
2009-03-10 21:44 ` Renzo Davoli
2009-03-13 7:42 ` Américo Wang
2009-03-16 7:45 ` Américo Wang
2009-03-24 23:47 ` Renzo Davoli
2009-03-29 16:32 ` Américo Wang
2009-04-04 10:17 ` Renzo Davoli
2009-04-07 17:36 ` Américo Wang
2009-04-08 12:18 ` Renzo Davoli
2009-04-13 16:36 ` Américo Wang [this message]
2009-04-17 8:18 ` Américo Wang
2009-04-25 9:19 ` Renzo Davoli
2009-04-30 8:27 ` Américo Wang
2009-05-18 9:45 ` Amerigo Wang
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=20090413163603.GG2391@hack \
--to=xiyou.wangcong@gmail.com \
--cc=jdike@addtoit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=renzo@cs.unibo.it \
--cc=roland@redhat.com \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/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