From: Mark Mielke <mark@mark.mielke.cc>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: context switch vs. signal delivery [was: Re: Accelerating user mode linux]
Date: Tue, 6 Aug 2002 01:31:12 -0400 [thread overview]
Message-ID: <20020806013112.A3228@mark.mielke.cc> (raw)
In-Reply-To: <ail2qh$bf0$1@penguin.transmeta.com>; from torvalds@transmeta.com on Mon, Aug 05, 2002 at 05:35:13AM +0000
On Mon, Aug 05, 2002 at 05:35:13AM +0000, Linus Torvalds wrote:
> And yes, this signal handler thing is clearly visible on benchmarks.
> MUCH too clearly visible. I just didn't see any safe alternatives
> (and I still don't ;( )
To some degree, the original approach taken by Intel may be an alternative...
That is, the signal handler is responsible for saving state of all CPU
resources that it intends to use, and restoring state before returning
control to the caller. (the 'interupt' qualifier from C)
I could see this offered as a GCC optimization, but without the compiler
smarts to detect what is needed and what is not, it would be very difficult
to add this support in a seamless manner.
For example:
typedef void (*__fastsighandler_t) (int) __attribute__ ((signal_handler));
#define signal(number, handler) \
(__attribute_enabled__((handler, signal_handler)) \
? __signal_fast(number, handler) \
: __signal(number, handler))
void handle_sigint (int) __attribute__ ((signal_handler))
{
sigint_received++;
}
mark
--
mark@mielke.cc/markm@ncf.ca/markm@nortelnetworks.com __________________________
. . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder
|\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ |
| | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada
One ring to rule them all, one ring to find them, one ring to bring them all
and in the darkness bind them...
http://mark.mielke.cc/
next prev parent reply other threads:[~2002-08-06 5:28 UTC|newest]
Thread overview: 56+ 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
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 ` Mark Mielke [this message]
2002-08-05 10:40 ` context switch vs. signal delivery [was: Re: Accelerating user mode linux] Ingo Molnar
2002-08-05 14:59 ` Larry McVoy
2002-08-05 15:41 ` Jamie Lokier
2002-08-05 15:44 ` Jamie Lokier
[not found] <1028294887.18635.71.camel@irongate.swansea.linux.org.uk.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.44.0208031332120.7531-100000@localhost.localdomain.suse.lists.linux.kernel>
[not found] ` <m3u1mb5df3.fsf@averell.firstfloor.org.suse.lists.linux.kernel>
[not found] ` <ail2qh$bf0$1@penguin.transmeta.com.suse.lists.linux.kernel>
2002-08-05 8:38 ` Andi Kleen
2002-08-05 14:24 ` Jeff Dike
2002-08-05 16:19 ` Linus Torvalds
[not found] <20020805163910.C7130@kushida.apsleyroad.org.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.44.0208050922570.1753-100000@home.transmeta.com.suse.lists.linux.kernel>
2002-08-05 16:46 ` Andi Kleen
2002-08-05 21:30 ` Jamie Lokier
2002-08-05 21:35 ` Andi Kleen
2002-08-05 22:09 ` Jamie Lokier
2002-08-05 22:16 ` Andi Kleen
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=20020806013112.A3228@mark.mielke.cc \
--to=mark@mark.mielke.cc \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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®