[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-kernel
Subject:    Re: [patch] fastcall-2.3.32-B6, SYSENTER/SYSEXIT support
From:       Richard Gooch <rgooch () ras ! ucalgary ! ca>
Date:       1999-12-16 15:51:28
[Download RAW message or body]

Richard Guenther writes:
> On Wed, 15 Dec 1999, Richard Gooch wrote:
> 
> > Richard Guenther writes:
> > > Richard Gooch writes:
> > > > I propose a much simpler abstraction: set up a global page (which
> > > > always appears at a fixed address in user-space), and set up a jump
> > > > table. Have one jump vector per system call. That's the ABI. End of
> > > > story.
> > > 
> > > While I like the idea in general, a more generic solution would to
> > > tell the dynamic linker about this page and have a global symbol
> > > like __linux_ia32_entry and have it fixup the syscall entry addresses
> > > at runtime. This way you could override the magic symbol with
> > > LD_PRELOAD and implement strace and friends via a intermediate
> > > jump table.
> > > 
> > > You could switch from a jump-table to a destination-address-table
> > > and have either indirect calls or let the dynamic linker fixup 
> > > direct calls by reading addresses (of course they have to have fixed
> > > values after boot then...) from the global page - no indirect or
> > > double jump penalty.
> > 
> > This doesn't affect the kernel. The kernel just provides the jump
> > table in a known location. User-space can decide what to do with that.
> > You can have your __linux_ia32_entry symbol or not, as you like.
> 
> It does affect the kernel, because if you want to do neat tricks
> you have to ensure that the contents of the page (the contents of
> the jump-table) is constant during runtime of any program - If this
> is the case, of course, rest is completely user-space.

Maybe we're talking past each other? The kernel-provided jump table
would be constant multiple versions of the kernel, let alone across
reboots or during the lifetime of a single programme. The jump table
would only change if a new syscall was added, in which case the would
be a new entry appended to the jump table.

				Regards,

					Richard....
Permanent: rgooch@atnf.csiro.au
Current:   rgooch@ras.ucalgary.ca


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic