Re: [patch] fastcall-2.3.32-B6, SYSENTER/SYSEXIT support

Richard Gooch (rgooch@ras.ucalgary.ca)
Wed, 15 Dec 1999 22:19:42 -0700


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.

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/