[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-12 18:51:26
[Download RAW message or body]

Kai Henningsen writes:
> 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.

Thanks.

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

I know: I listed this as one of the disadvantages.

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

Yeah, the standard syscall interface, as I mentioned. This isn't so
bad, as we need to support the standard interface for a long time
anyway. Otherwise we break binary compatibility for *everything*.
Red rag to David Parsons ;->

> This is madness.

I wouldn't go quite that far.

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

Yeah, I agree it's not as clean as the kernel doing it. I don't really
like any of the three options I presented. I'm just tossing out ideas.

				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