From: "Udo A. Steinberg" <us15@os.inf.tu-dresden.de>
To: Richard Zidlicky <rz@linux-m68k.org>
Cc: jdike@karaya.com, alan@redhat.com, mingo@elte.hu,
linux-kernel@vger.kernel.org
Subject: Re: context switch vs. signal delivery [was: Re: Accelerating user mode
Date: Tue, 6 Aug 2002 00:34:19 +0200 [thread overview]
Message-ID: <20020806003419.3457fcb9.us15@os.inf.tu-dresden.de> (raw)
In-Reply-To: <20020805224415.A579@linux-m68k.org>
On Mon, 5 Aug 2002 22:44:15 +0200
Richard Zidlicky <rz@linux-m68k.org> wrote:
> very interesting, what is the handiest way to do "syscalls" in this model?
> Ptrace is still basically signal driven so I would expect it has still some
> unnecessary overhead?
Task wants to do a syscall (i.e. int 0x30 in Fiasco), the kernel process tracing
the task sees the signal in its SIGCHLD handler. It pulls the registers out of the
task's address space using PTRACE_GETREGS and sets up an interrupt frame on the
kernel stack. EIP and ESP in the saved signal context are frobbed in a way that
the signal handler falls right into the correct interrupt gate when it returns.
iret works the other way round. SIGSEGV handler in the kernel process copies registers
back to task and restarts the task's process after restoring kernel state.
> > I would also very much like an extension that would allow one process to modify
> > the MM of another, possibly via an extended ptrace interface or a new syscall.
> > Also it would be nice if there was an alternate way to get at the cr2 register,
> > trap number and error code other than from a SIGSEGV handler.
>
> that's what signals are for, too bad they are slow.
As it is now, in order to get at the page fault address one has to invoke a SIGSEGV
handler in the task, then look at the task's signal context to determine the pagefault
address, trapno etc. It would be much faster if the kernel could cancel the SIGSEGV signal
in the task's process and read out the the pagefault info from the TCB via a ptrace
extension. Saves the cost of a running a signal handler in the task and a bunch of context
switches.
> they are very expensive because of the way ptrace accesses the other process
> memory, did you try a piece of shared memory ?
Yes, trampoline page is shared between kernel and task. Nevertheless there are
context switches that wouldn't be necessary if the kernel could tweak the task's
mm directly.
-Udo.
next prev parent reply other threads:[~2002-08-05 22:31 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-01 20:16 Accelerating user mode linux Alan Cox
2002-08-02 4:40 ` Jeff Dike
2002-08-02 9:50 ` Alan Cox
2002-08-02 18:28 ` Jeff Dike
2002-08-02 17:48 ` Alan Cox
2002-08-02 22:33 ` Jeff Dike
2002-08-02 21:57 ` Alan Cox
2002-08-03 0:54 ` Jeff Dike
2002-08-02 11:34 ` Richard Zidlicky
2002-08-02 13:28 ` Alan Cox
2002-08-03 11:38 ` context switch vs. signal delivery [was: Re: Accelerating user mode linux] Ingo Molnar
2002-08-03 12:33 ` context switch vs. signal delivery [was: Re: Accelerating user mode Alan Cox
2002-08-03 15:29 ` Jeff Dike
2002-08-05 13:46 ` Udo A. Steinberg
2002-08-05 20:44 ` Richard Zidlicky
2002-08-05 22:34 ` Udo A. Steinberg [this message]
2002-08-06 0:42 ` Jeff Dike
2002-08-06 0:16 ` Udo A. Steinberg
2002-08-06 2:55 ` Jeff Dike
2002-08-06 8:10 ` Udo A. Steinberg
2002-08-06 11:20 ` Jeff Dike
2002-08-06 11:13 ` Udo A. Steinberg
2002-08-06 12:53 ` Jeff Dike
2002-08-06 13:04 ` Udo A. Steinberg
2002-08-06 14:12 ` Jeff Dike
2002-08-06 16:02 ` Udo A. Steinberg
2002-08-06 17:42 ` Jeff Dike
2002-08-06 18:01 ` Udo A. Steinberg
2002-08-08 1:27 ` Udo A. Steinberg
2002-08-08 3:14 ` Jeff Dike
2002-08-08 2:21 ` Benjamin LaHaise
2002-08-08 9:03 ` Udo A. Steinberg
2002-08-08 17:19 ` Jeff Dike
2002-08-05 22:06 ` Martin Waitz
2002-08-06 0:49 ` Jeff Dike
2002-08-04 6:46 ` context switch vs. signal delivery [was: Re: Accelerating user mode linux] Andi Kleen
2002-08-05 5:35 ` Linus Torvalds
2002-08-05 5:42 ` Arnaldo Carvalho de Melo
2002-08-05 6:37 ` Lincoln Dale
2002-08-05 15:39 ` Jamie Lokier
2002-08-05 16:38 ` Linus Torvalds
2002-08-05 20:01 ` context switch vs. signal delivery [was: Re: Accelerating usermode linux] Oliver Neukum
2002-08-05 20:23 ` Linus Torvalds
2002-08-06 5:31 ` context switch vs. signal delivery [was: Re: Accelerating user mode linux] Mark Mielke
2002-08-05 10:40 ` Ingo Molnar
2002-08-05 14:59 ` Larry McVoy
2002-08-05 15:41 ` Jamie Lokier
2002-08-05 15:44 ` 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=20020806003419.3457fcb9.us15@os.inf.tu-dresden.de \
--to=us15@os.inf.tu-dresden.de \
--cc=alan@redhat.com \
--cc=jdike@karaya.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rz@linux-m68k.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®