public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: renzo@cs.unibo.it (Renzo Davoli)
To: Ulrich Drepper <drepper@gmail.com>, Andi Kleen <ak@suse.de>,
	osd@cs.unibo.it, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 2-ptrace_multi
Date: Fri, 19 May 2006 19:45:34 +0200	[thread overview]
Message-ID: <20060519174534.GA22346@cs.unibo.it> (raw)
In-Reply-To: <20060519130952.GA1242@nevyn.them.org>

On Fri, May 19, 2006 at 09:09:52AM -0400, Daniel Jacobowitz wrote:
> On Fri, May 19, 2006 at 11:07:26AM +0200, Renzo Davoli wrote:
> > On Thu, May 18, 2006 at 07:23:13PM -0700, Ulrich Drepper wrote:
> > > On 5/18/06, Renzo Davoli <renzo@cs.unibo.it> wrote:
> > > >e.g. To virtualize a write you'd have to call PTRACE_PEEKDATA for each
> > > >word of the buffer, very many hundreds cycles lost.
> > > 
> > > No, this is not how programs should do it.  Just open /proc/PID/mem
> > > and use pread() with an offset corresponding to the address.  Now,
> > > repeat your timings using this technique.
> > 
> > That would be faster to access the memory but:
> > - the manager has to keep one open file per controlled process
> 
> No, it doesn't.  It can open it as needed.  It can even maintain a
> cache of open mem files.
> 
> GDB's been opening it as needed for years.  It works very well and is
> drastically faster than PTRACE_PEEKDATA.
> 
Over all I could speed up just half of the calls because I cannot write
in /proc/<pid>/mem !
You are proposing a solution which speeds up writes but not reads.

(from fs/proc/base.c)
#define mem_write NULL

#ifndef mem_write
/* This is a security hazard */
static ssize_t mem_write(struct file * file, const char * buf,
       size_t count, loff_t *ppos)
....
#endif

My proposals should not add any threats which is not already in 
PTRACE_POKEDATA. Now, either the threat do currently exist and my
proposed patch makes is exploitable in a faster way, or it did not
exist and it still does not exist.
PTRACE_MULTI just executes several ptrace requests in a single call.

Other projects would benefit from a similar patch:
see: www.cs.wisc.edu/condor/doc/parrot-agm2003.pdf 
http://www.cse.nd.edu/~dthain/papers/ibox-sc05.pdf
They had the very same problem.

	renzo

  reply	other threads:[~2006-05-19 17:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-18 15:53 ptrace enhancements for VM support (patch proposals follow in sep.msgs) Renzo Davoli
2006-05-18 15:56 ` [PATCH] 1-access_process_vm_user Renzo Davoli
2006-05-18 15:58 ` [PATCH] 2-ptrace_multi Renzo Davoli
2006-05-18 20:17   ` Andi Kleen
2006-05-18 21:13     ` Renzo Davoli
2006-05-19  2:23       ` Ulrich Drepper
2006-05-19  9:07         ` Renzo Davoli
2006-05-19 13:09           ` Daniel Jacobowitz
2006-05-19 17:45             ` Renzo Davoli [this message]
2006-05-19 19:15               ` Renzo Davoli
2006-05-19 20:15               ` Daniel Jacobowitz
2006-05-19 20:17                 ` Andi Kleen
2006-05-20  6:44                   ` Ulrich Drepper
2006-05-20 14:37                   ` Alan Cox
2006-05-20 18:30                     ` Renzo Davoli
2006-05-20 20:23                       ` Ulrich Drepper
2006-05-20 21:39                       ` Jeff Dike
2006-05-21 12:38                         ` Avi Kivity
2006-05-21 15:28                         ` Renzo Davoli
2006-05-22 13:02                           ` Daniel Jacobowitz
2006-05-22 15:05                             ` Renzo Davoli
2006-05-22 15:26                               ` Daniel Jacobowitz
2006-05-18 16:07 ` [PATCH] 3-ptrace_vm Renzo Davoli
2006-05-21  8:03 ` ptrace enhancements for VM support (patch proposals follow in sep.msgs) Peter Chubb

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=20060519174534.GA22346@cs.unibo.it \
    --to=renzo@cs.unibo.it \
    --cc=ak@suse.de \
    --cc=drepper@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=osd@cs.unibo.it \
    /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