lkml.org 
[lkml]   [1999]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] fastcall-2.3.32-B6, SYSENTER/SYSEXIT support
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:55    [W:0.039 / U:0.304 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site