svn commit: r215664 - in head/sys: compat/linux kern
Alexander Leidinger
netchild at FreeBSD.org
Mon Nov 22 11:29:16 UTC 2010
Moving the thread to emulation@, adding Roman (please see at the end).
Quoting Kostik Belousov <kostikbel at gmail.com> (from Mon, 22 Nov 2010
12:42:32 +0200):
> On Mon, Nov 22, 2010 at 11:13:06AM +0100, Alexander Leidinger wrote:
>> Quoting Kostik Belousov <kostikbel at gmail.com> (from Mon, 22 Nov 2010
>> 11:31:34 +0200):
>>
>> >On Mon, Nov 22, 2010 at 09:07:00AM +0000, Alexander Leidinger wrote:
>> >>Author: netchild
>> >>Date: Mon Nov 22 09:06:59 2010
>> >>New Revision: 215664
>> >>URL: http://svn.freebsd.org/changeset/base/215664
>> >>
>> >>Log:
>> >> By using the 32-bit Linux version of Sun's Java Development Kit 1.6
>> >> on FreeBSD (amd64), invocations of "javac" (or "java") eventually
>> >> end with the output of "Killed" and exit code 137.
>> >>+
>> >> if (child_clear_tid != NULL) {
>> >> struct linux_sys_futex_args cup;
>> >> int null = 0;
>> >>@@ -257,6 +265,9 @@ linux_proc_exec(void *arg __unused, stru
>> >> if (__predict_false(imgp->sysent == &elf_linux_sysvec
>> >> && p->p_sysent != &elf_linux_sysvec))
>> >> linux_proc_init(FIRST_THREAD_IN_PROC(p), p->p_pid, 0);
>> >>+ if (__predict_false(p->p_sysent == &elf_linux_sysvec))
>> >>+ /* Kill threads regardless of imgp->sysent value */
>> >>+ linux_kill_threads(FIRST_THREAD_IN_PROC(p), SIGKILL);
>> >Regardless of this mostly cosmetic issue, this is racy. Other
>> >linux thread in the same process might do an execve(3).
>> >More, if execve(3) call fails, then you return into the process
>> >that lacks all threads except the one that called execve(3).
>>
>> How critical is this in your opinion (relative to the issue this patch
>> is fixing)? Do you prefer a backout or do you think the probability
>> that the someone wins the race is low enough?
>>
>> Do you see a solution for the race?
> I did not asked for backout, nor I am asking now.
>
> Most likely, the semantic of linux thread groups cannot be implemented
> by only using event handlers that linux.ko hooks now. How linux handles
> single-threading when doing execve(2) from multithreaded process ?
Roman, can your memory help out here?
Bye,
Alexander.
--
http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
BOFH excuse #344:
Network failure - call NBC
More information about the freebsd-emulation
mailing list