From: Christoph Hellwig <hch@lst.de>
To: Roland McGrath <roland@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>,
oleg@redhat.com, akpm@linux-foundation.org,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
mattst88@gmail.com, ink@jurassic.park.msu.ru, rth@twiddle.net,
linux@arm.linux.org.uk, hskinnemoen@atmel.com, vapier@gentoo.org,
starvik@axis.com, jesper.nilsson@axis.com,
ysato@users.sourceforge.jp, takata@linux-m32r.org,
gerg@uclinux.org, monstr@monstr.eu, ralf@linux-mips.org,
jdike@addtoit.com, chris@zankel.net
Subject: Re: [PATCH 1/14] move user_enable_single_step & co prototypes to linux/ptrace.h
Date: Wed, 10 Feb 2010 23:03:23 +0100 [thread overview]
Message-ID: <20100210220323.GA10365@lst.de> (raw)
In-Reply-To: <20100208195125.27ADD1AF@magilla.sf.frob.com>
On Mon, Feb 08, 2010 at 11:51:25AM -0800, Roland McGrath wrote:
> The original thought there was that user_enable_single_step() et al might
> well be only an instruction or three on a sane machine (as if we have any
> of those!), and since there is only one call site inlining would be
> beneficial. But I agree that there is no strong reason to care about
> inlining it.
In fact many of the implementations are small enough to inline them, but
not no architecture so far decided to inline them, and in the end it's
not exactly a fast-path. This at least keeps the prototype the same
everywhere.
> As to the arch changes, there is only one thought I'd add to the record.
> It was always my thinking that for an arch where PTRACE_SINGLESTEP does
> text-modifying breakpoint insertion, user_enable_single_step() should not
> be provided. That is, arch_has_single_step()=>true means that there is an
> arch facility with "pure" semantics that does not have any unexpected side
> effects. Inserting a breakpoint might do very unexpected strange things in
> multi-threaded situations. Aside from that, it is a peculiar side effect
> that user_{enable,disable}_single_step() should cause COW de-sharing of
> text pages and so forth. For PTRACE_SINGLESTEP, all these peculiarities
> are the status quo ante for that arch, so having arch_ptrace() itself do
> those is one thing. But for building other things in the future, it is
> nicer to have a uniform "pure" semantics that arch-independent code can
> expect.
For now the ptrace code is the same for real or software singlestepping.
If we grow users that care we can add a arch_has_hw_single_step macro
or just overload arch_has_single_step with different postitive return
values for the exact same type of single stepping supported.
prev parent reply other threads:[~2010-02-10 22:08 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-02 18:57 [PATCH 1/14] move user_enable_single_step & co prototypes to linux/ptrace.h Christoph Hellwig
2010-02-02 18:58 ` [PATCH 2/14] alpha: use generic ptrace_resume code Christoph Hellwig
2010-02-03 4:35 ` Matt Turner
2010-02-02 18:58 ` [PATCH 3/14] arm: " Christoph Hellwig
2010-02-02 18:58 ` [PATCH 4/14] avr32: " Christoph Hellwig
2010-02-03 3:17 ` Haavard Skinnemoen
2010-02-03 8:36 ` Christoph Hellwig
2010-02-03 19:22 ` Oleg Nesterov
2010-02-03 19:28 ` Christoph Hellwig
2010-02-02 18:59 ` [PATCH 5/14] blackfin: " Christoph Hellwig
2010-02-02 20:29 ` Mike Frysinger
2010-02-03 19:36 ` Mike Frysinger
2010-02-03 19:42 ` Christoph Hellwig
2010-02-11 9:43 ` [PATCH 0/2] Blackfin: " Mike Frysinger
2010-02-11 9:43 ` [PATCH 1/2] Blackfin: initial tracehook support Mike Frysinger
2010-02-11 20:46 ` Roland McGrath
2010-02-11 23:54 ` Mike Frysinger
2010-02-12 3:24 ` Roland McGrath
2010-02-12 4:33 ` Mike Frysinger
2010-02-12 15:24 ` Oleg Nesterov
2010-02-12 20:44 ` Roland McGrath
2010-02-13 9:41 ` Mike Frysinger
2010-02-15 7:36 ` Mike Frysinger
2010-02-15 20:07 ` Roland McGrath
2010-02-11 9:43 ` [PATCH 2/2] Blackfin: use generic ptrace_resume code Mike Frysinger
2010-02-02 18:59 ` [PATCH 6/14] h8300: " Christoph Hellwig
2010-02-02 18:59 ` [PATCH 7/14] m68knommu: " Christoph Hellwig
2010-02-03 6:54 ` Greg Ungerer
2010-02-02 18:59 ` [PATCH 8/14] microblaze: " Christoph Hellwig
2010-02-03 11:00 ` Michal Simek
2010-02-02 18:59 ` [PATCH 9/14] mips: " Christoph Hellwig
2010-02-02 19:19 ` Ralf Baechle
2010-02-02 19:00 ` [PATCH 10/14] um: " Christoph Hellwig
2010-02-02 19:00 ` [PATCH 11/14] xtensa: " Christoph Hellwig
2010-02-02 19:00 ` [PATCH 12/14] cris arch-v10: " Christoph Hellwig
2010-02-02 19:00 ` [PATCH, RFC 13/14] cris arch-v32: " Christoph Hellwig
2010-02-02 19:00 ` [PATCH, RFC 14/14] m32r: " Christoph Hellwig
2010-02-03 8:42 ` [PATCH 1/14] move user_enable_single_step & co prototypes to linux/ptrace.h Mike Frysinger
2010-02-03 8:56 ` Christoph Hellwig
2010-02-08 10:50 ` David Howells
2010-02-08 19:51 ` Roland McGrath
2010-02-10 22:03 ` Christoph Hellwig [this message]
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=20100210220323.GA10365@lst.de \
--to=hch@lst.de \
--cc=akpm@linux-foundation.org \
--cc=chris@zankel.net \
--cc=gerg@uclinux.org \
--cc=hskinnemoen@atmel.com \
--cc=ink@jurassic.park.msu.ru \
--cc=jdike@addtoit.com \
--cc=jesper.nilsson@axis.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mattst88@gmail.com \
--cc=monstr@monstr.eu \
--cc=oleg@redhat.com \
--cc=ralf@linux-mips.org \
--cc=roland@redhat.com \
--cc=rth@twiddle.net \
--cc=starvik@axis.com \
--cc=takata@linux-m32r.org \
--cc=vapier@gentoo.org \
--cc=ysato@users.sourceforge.jp \
/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;
as well as URLs for NNTP newsgroup(s).