Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Aug 2002 12:06:32 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Ian Dowse <iedowse@maths.tcd.ie>
Cc:        arch@FreeBSD.ORG
Subject:   Re: Solving the stack gap issue
Message-ID:  <200208171906.g7HJ6WiA068153@apollo.backplane.com>
References:   <200208171918.aa72556@salmon.maths.tcd.ie>

next in thread | previous in thread | raw e-mail | index | archive | help

:A few approaches have been suggested:
:- Lock access to the stack gap, so that only one thread at a time
:  can use it.
:- Use a different address region for each thread.
:- Avoid the need for the stack gap by providing kernel-callable versions
:  of all syscalls.
:
:...
:I have attempted to implement the third approach. It requires more
:extensive changes than the others, but it has the advantage of
:aiming to remove the stack gap hack instead of just adding another
:bad-aid to it. That said, it does add some overhead to normal system
:calls, so it may be that some ugliness is necessary to balance this
:tradeoff.

    Good god!  Ian, you've done the grunge work that nobody else wanted
    to do!  This is great!  It will also make the ABI work discussed a few
    months ago far easier to accomplish.

    I believe that your patch and approach is not only convenient, it is
    a necessary prerequisit for current and future ABI work in -current.
    I think you should commit it as soon as you think it's safe.  Is there
    any specific kind of testing you would like done?

    Now that I have the TCP stuff comitted, the next thing on my agenda
    is the 64 bit ABI.  Your work simplifies my task enormously.  For
    example it allows me to make sys_*() functions take 64 bit arguments
    natively where appropriate and make the 32 bit syscalls convert.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

:Anyway, there's a patch against -current at:
:
:	http://www.maths.tcd.ie/~iedowse/FreeBSD/stackgap.diff
:
:This removes 80-90% of the stack gap uses in the i386 Linux emulation
:code. I haven't done more than a basic level of testing though. I'm
:also not particularly attached to any of the approaches taken here
:- it is really just a proof of concept for this approach. Any
:comments welcome!
:
:Ian


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208171906.g7HJ6WiA068153>