mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Roland McGrath <roland@redhat.com>
To: Davide Libenzi <davidel@xmailserver.org>
Cc: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
	mingo@redhat.com, cagney@redhat.com,
	Daniel Jacobowitz <drow@false.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH] x86 single-step (TF) vs system calls & traps
Date: Thu, 1 Jul 2004 13:24:51 -0700	[thread overview]
Message-ID: <200407012024.i61KOp3J021841@magilla.sf.frob.com> (raw)
In-Reply-To: Davide Libenzi's message of  Thursday, 1 July 2004 08:14:54 -0700 <Pine.LNX.4.58.0407010808010.19793@bigblue.dev.mdolabs.com>

> That's documented in x86 manuals and I don't think we should even try to
> have the userspace-TF to have a different behaviour from what x86 describe.

The behavior described for the chip is that it traps after executing one
instruction.  From the user-mode perspective, the system call instruction
is one instruction that does not normally generate any kind of exception.
It just does one magic thing, that being having the kernel do something for
you.  If someone sets TF in user mode then they probably expect that they
will get a trap after executing one instruction, even that one.

> Here I meant that if you set SINGLESTEP|SYSGOOD, the patch will give you 
> SIGTRAP|0x80, while if you set only SINGLESTEP the patch will give you 
> SIGTRAP. Enforcing the SINGLESTEP|SYSGOOD is invalid or only gives SIGTRAP 
> should be no more that three lines of code out of the fast path.

There is no "set SINGLESTEP|SYSGOOD".  PTRACE_SINGLESTEP is a one-time
operation.  PTRACE_O_TRACESYSGOOD is a persistent flag you set when you
intend to at some point use the PTRACE_SYSCALL operation.


  reply	other threads:[~2004-07-01 20:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-29  1:55 Roland McGrath
2004-06-29  2:05 ` Davide Libenzi
2004-06-29  3:42 ` Linus Torvalds
2004-06-29  3:46   ` Roland McGrath
2004-06-29  3:55     ` Linus Torvalds
2004-06-29  4:15       ` Andrew Morton
2004-06-29  4:37         ` Roland McGrath
2004-06-29  7:00           ` Davide Libenzi
2004-07-01  7:47             ` Roland McGrath
2004-07-01 15:14               ` Davide Libenzi
2004-07-01 20:24                 ` Roland McGrath [this message]
2004-07-01 21:47                   ` Davide Libenzi
2004-07-01 20:34               ` Daniel Jacobowitz
2004-07-01 21:59                 ` Roland McGrath
2004-07-02  4:22                   ` Daniel Jacobowitz
2004-06-29  4:32       ` Roland McGrath
2004-06-29  5:15         ` Linus Torvalds
2004-07-01  8:09           ` Roland McGrath

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=200407012024.i61KOp3J021841@magilla.sf.frob.com \
    --to=roland@redhat.com \
    --cc=akpm@osdl.org \
    --cc=cagney@redhat.com \
    --cc=davidel@xmailserver.org \
    --cc=drow@false.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=torvalds@osdl.org \
    /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

all inboxes | Powered by JetHome®