Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Feb 2005 01:10:29 +0200
From:      Maxim Sobolev <sobomax@portaone.com>
To:        John Baldwin <jhb@FreeBSD.ORG>
Cc:        cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/alpha/linux linux_sysvec.csrc/sys/alpha/osf1 src/sys/compat/ia32imgact_svr4.c svr4_sysvec.c ...
Message-ID:  <41FEBAE5.7010201@portaone.com>
In-Reply-To: <200501311441.24275.jhb@FreeBSD.org>
References:  <200501292312.j0TNC0VE052634@repoman.freebsd.org> <200501311441.24275.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
> On Saturday 29 January 2005 06:12 pm, Maxim Sobolev wrote:
> 
>>sobomax     2005-01-29 23:12:00 UTC
>>
>>  FreeBSD src repository
>>
>>  Modified files:
>>    sys/alpha/linux      linux_sysvec.c
>>    sys/alpha/osf1       imgact_osf1.c osf1_sysvec.c
>>    sys/amd64/linux32    linux32_sysvec.c
>>    sys/compat/ia32      ia32_sysvec.c
>>    sys/compat/pecoff    imgact_pecoff.c
>>    sys/compat/svr4      imgact_svr4.c svr4_sysvec.c
>>    sys/i386/ibcs2       ibcs2_sysvec.c imgact_coff.c
>>    sys/i386/linux       imgact_linux.c linux_sysvec.c
>>                         linux_machdep.c
>>    sys/kern             imgact_aout.c imgact_elf.c imgact_gzip.c
>>                         imgact_shell.c kern_exec.c kern_kse.c
>>    sys/modules          Makefile
>>    sys/sys              imgact.h syscallsubr.h
>>  Log:
>>  o Split out kernel part of execve(2) syscall into two parts: one that
>>    copies arguments into the kernel space and one that operates
>>    completely in the kernel space;
>>
>>  o use kernel-only version of execve(2) to kill another stackgap in
>>    linuxlator/i386.
>>
>>  Obtained from:  DragonFlyBSD (partially)
>>  MFC after:      2 weeks
> 
> 
> Cool, this had been on my anti-stackgap todo list as well.

:-)

We have been tolerating this stackgap hack for too long.

Right now linuxlator/i386 is almost stackgap-free. The only remaining 
stackgap is in semctl(2) syscal, which in my opinion it is very 
over/under engineered API, so that there is no a good clean way to do 
the split. At the same time, it's not the one used oftenly, so that  I 
can wait when I (or somebody else) is in the right mood to do the 
remaining work.

Other arches/emulation layers are awaiting for somebody (maintainers?) 
to do the work, which will be very easy one, since most popular kernel 
interfaces that work on userland structures/buffers have been split.

-Maxim



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