Date: Wed, 18 Apr 2012 17:22:04 +0200 From: Giovanni Trematerra <gianni@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Jung-uk Kim <jkim@freebsd.org> Subject: Re: svn commit: r234352 - in head/sys: amd64/linux32 compat/linux i386/linux kern Message-ID: <CACfq093zRxGHOiZCa3VqdqsEj9Oy0M5r=RcVzzNxuSRbqpttmQ@mail.gmail.com> In-Reply-To: <20120418121559.GY2358@deviant.kiev.zoral.com.ua> References: <201204162122.q3GLM23E051048@svn.freebsd.org> <CACfq090w3-iGT=aHREuipXUxmZSxXnGt4gDARFQbZfL5pSsgxQ@mail.gmail.com> <20120418121559.GY2358@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
2012/4/18 Konstantin Belousov <kostikbel@gmail.com>: > On Wed, Apr 18, 2012 at 01:52:24PM +0200, Giovanni Trematerra wrote: >> On Mon, Apr 16, 2012 at 11:22 PM, Jung-uk Kim <jkim@freebsd.org> wrote: >> > Author: jkim >> > Date: Mon Apr 16 21:22:02 2012 >> > New Revision: 234352 >> > URL: http://svn.freebsd.org/changeset/base/234352 >> > >> > Log: >> > - Implement pipe2 syscall for Linuxulator. This syscall appeared in 2.6.27 >> > but GNU libc used it without checking its kernel version, e. g., Fedora 10. >> > - Move pipe(2) implementation for Linuxulator from MD files to MI file, >> > sys/compat/linux/linux_file.c. There is no MD code for this syscall at all. >> > - Correct an argument type for pipe() from l_ulong * to l_int *. Probably >> > this was the source of MI/MD confusion. >> > >> > Reviewed by: emulation >> > >> > Modified: >> > head/sys/amd64/linux32/linux32_dummy.c >> > head/sys/amd64/linux32/linux32_machdep.c >> > head/sys/amd64/linux32/syscalls.master >> > head/sys/compat/linux/linux_file.c >> > head/sys/i386/linux/linux_dummy.c >> > head/sys/i386/linux/linux_machdep.c >> > head/sys/i386/linux/syscalls.master >> > head/sys/kern/sys_pipe.c >> > >> >> I don't think it's worth to change sys/kern/sys_pipe.c just to implement >> linux_pipe2 in linuxator. >> You can just revert the changes in sys_pipe.c and call kern_fcntl in linux_pipe2 >> to set appropriate flags for the pipes after you created them with kern_pipe. >> Please, take a look at this patch >> http://www.trematerra.net/patches/linux_pipe2.patch >> >> It's only test-compiled though. >> Thank you. > > I do think that what Jung-uk did is the right approach, and your suggestion > is wrong. The way it is done in r234352 serves the purpose of pipe2(2), > namely, the atomicity of setting O_CLOEXEC and O_NONBLOCK with respect > to execve(2). Uhm I'm overlooked that linux threads in linuxolator are actual processes as you pointed me out in private. Sorry for the noise.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACfq093zRxGHOiZCa3VqdqsEj9Oy0M5r=RcVzzNxuSRbqpttmQ>
