Skip site navigation (1)Skip section navigation (2)
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>

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

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.


home | help

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