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

Richard Guenther (zxmpm11@student.uni-tuebingen.de)
Wed, 15 Dec 1999 11:13:52 +0100 (MET)


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.

Richard.

--
Richard Guenther <richard.guenther@student.uni-tuebingen.de>
PGP: 2E829319 - 2F 83 FC 93 E9 E4 19 E2 93 7A 32 42 45 37 23 57
WWW: http://www.anatom.uni-tuebingen.de/~richi/

- 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/