cvs commit: src/sys/alpha/linux linux_sysvec.csrc/sys/alpha/osf1 src/sys/compat/ia32imgact_svr4.c svr4_sysvec.c ...

Maxim Sobolev sobomax at portaone.com
Mon Jan 31 15:10:47 PST 2005


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


More information about the cvs-src mailing list