[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:       kaih () khms ! westfalen ! de (Kai Henningsen)
Date:       1999-12-12 15:24:00
[Download RAW message or body]

rgooch@ras.ucalgary.ca (Richard Gooch)  wrote on 12.12.99 in <199912120704.AAA12363@vindaloo.ras.ucalgary.ca>:

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

I really like that.

> So I suggest a few possibilities for working around this:
>
> 1) the kernel reserves a page (or pages) which is mapped into each
>    process at the same VA, but is written to by user-space. Perhaps a
>    syscall/ioctl to write-protect the region once initialised
>
> 2) have a single module which contains all the code data variants and
>    writes the appropriate selection to the global page(s)
>
> 3) have a collection of modules, one for each CPU (implementation)
>    type, and user-space picks the correct one to load. The module
>    initialises the global page.

All of these share a serious problem: they depend on userspace code to  
initialize the userspace-kernel interface.

That means you need a _different_ userspace-kernel interface just so these  
solutions can be made to work.

This is madness.

Now, you could go around this by having the kernel put default code there  
that's exchanged during boot - but it still seems to me it's far better to  
just have the kernel do the right thing from the start.

MfG Kai

-
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