<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/compat/linux/linux_emul.h, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2012-05-05T19:42:38Z</updated>
<entry>
<title>- &gt;500 static DTrace probes for the linuxulator</title>
<updated>2012-05-05T19:42:38Z</updated>
<author>
<name>Alexander Leidinger</name>
<email>netchild@FreeBSD.org</email>
</author>
<published>2012-05-05T19:42:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=19e252baebe7a7466b33c27560420b7d95fe294d'/>
<id>urn:sha1:19e252baebe7a7466b33c27560420b7d95fe294d</id>
<content type='text'>
- DTrace scripts to check for errors, performance, ...
  they serve mostly as examples of what you can do with the static probe;s
  with moderate load the scripts may be overwhelmed, excessive lock-tracing
  may influence program behavior (see the last design decission)

Design decissions:
 - use "linuxulator" as the provider for the native bitsize; add the
   bitsize for the non-native emulation (e.g. "linuxuator32" on amd64)
 - Add probes only for locks which are acquired in one function and released
   in another function. Locks which are aquired and released in the same
   function should be easy to pair in the code, inter-function
   locking is more easy to verify in DTrace.
 - Probes for locks should be fired after locking and before releasing to
   prevent races (to provide data/function stability in DTrace, see the
   man-page of "dtrace -v ..." and the corresponding DTrace docs).
</content>
</entry>
<entry>
<title>Extend struct sysvec with new method sv_schedtail, which is used for an</title>
<updated>2011-03-08T19:01:45Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2011-03-08T19:01:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e5d81ef1b54984374275ca5e414f80689b491f70'/>
<id>urn:sha1:e5d81ef1b54984374275ca5e414f80689b491f70</id>
<content type='text'>
explicit process at fork trampoline path instead of eventhadler(schedtail)
invocation for each child process.

Remove eventhandler(schedtail) code and change linux ABI to use newly added
sysvec method.

While here replace explicit comparing of module sysentvec structure with the
newly created process sysentvec to detect the linux ABI.

Discussed with:	kib

MFC after:	2 Week
</content>
</entry>
<entry>
<title>Rename used_requeue and use it as bitwise field to store more flags.</title>
<updated>2011-02-12T20:58:59Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2011-02-12T20:58:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d14cc07d0777c5fa2579d588ec9a62e26330474d'/>
<id>urn:sha1:d14cc07d0777c5fa2579d588ec9a62e26330474d</id>
<content type='text'>
Reimplement used_requeue logic with LINUX_XDEPR_REQUEUEOP flag.
</content>
</entry>
<entry>
<title>By using the 32-bit Linux version of Sun's Java Development Kit 1.6</title>
<updated>2010-11-22T09:06:59Z</updated>
<author>
<name>Alexander Leidinger</name>
<email>netchild@FreeBSD.org</email>
</author>
<published>2010-11-22T09:06:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bb63fdde6dbfd6d953b1c7547237dfcfae8d9364'/>
<id>urn:sha1:bb63fdde6dbfd6d953b1c7547237dfcfae8d9364</id>
<content type='text'>
on FreeBSD (amd64), invocations of "javac" (or "java") eventually
end with the output of "Killed" and exit code 137.

This is caused by:
1. After calling exec() in multithreaded linux program threads are not
   destroyed and continue running. They get killed after program being
   executed finishes.

2. linux_exit_group doesn't return correct exit code when called not
   from group leader. Which happens regularly using sun jvm.

The submitters fix this in a similar way to how NetBSD handles this.

I took the PRs away from dchagin, who seems to be out of touch of
this since a while (no response from him).

The patches committed here are from [2], with some little modifications
from me to the style.

PR:		141439 [1], 144194 [2]
Submitted by:	Stefan Schmidt &lt;stefan.schmidt@stadtbuch.de&gt;, gk
Reviewed by:	rdivacky (in april 2010)
MFC after:	5 days
</content>
</entry>
<entry>
<title>Remove support for FUTEX_REQUEUE operation.</title>
<updated>2009-04-19T13:48:42Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2009-04-19T13:48:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b1121623d27b2f0011259f3a391bc900ffb70765'/>
<id>urn:sha1:b1121623d27b2f0011259f3a391bc900ffb70765</id>
<content type='text'>
Glibc does not use this operation since 2.3.3 version (Jun 2004),
as it is racy and replaced by FUTEX_CMP_REQUEUE operation.
Glibc versions prior to 2.3.3 fall back to FUTEX_WAKE when
FUTEX_REQUEUE returned EINVAL.

Any application directly using FUTEX_REQUEUE without return
value checking are definitely broken.

Limit quantity of messages per process about unsupported
operation.

Approved by:	kib (mentor)
MFC after:	1 month
</content>
</entry>
<entry>
<title>Include linux_futex.h before linux_emul.h</title>
<updated>2009-03-15T19:16:12Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2009-03-15T19:16:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b8cbbded3775e2248aae43c3f236e6dbaa11095'/>
<id>urn:sha1:3b8cbbded3775e2248aae43c3f236e6dbaa11095</id>
<content type='text'>
Approved by:	kib (mentor)
MFC after:	6 days
</content>
</entry>
<entry>
<title>Implement robust futexes. Most of the code is modelled after</title>
<updated>2008-05-13T20:01:27Z</updated>
<author>
<name>Roman Divacky</name>
<email>rdivacky@FreeBSD.org</email>
</author>
<published>2008-05-13T20:01:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4732e446fbed17b57193d849f254e1280ad8cfb5'/>
<id>urn:sha1:4732e446fbed17b57193d849f254e1280ad8cfb5</id>
<content type='text'>
what Linux does. This is because robust futexes are mostly
userspace thing which we cannot alter. Two syscalls maintain
pointer to userspace list and when process exits a routine
walks this list waking up processes sleeping on futexes
from that list.

Reviewed by:	kib (mentor)
MFC after:	1 month
</content>
</entry>
<entry>
<title>MFP4:	Turn emul_lock into a mutex.</title>
<updated>2007-04-02T18:38:13Z</updated>
<author>
<name>Jung-uk Kim</name>
<email>jkim@FreeBSD.org</email>
</author>
<published>2007-04-02T18:38:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=357afa71139263ad214da3ceea164c974129735c'/>
<id>urn:sha1:357afa71139263ad214da3ceea164c974129735c</id>
<content type='text'>
Submitted by:	rdivacky
</content>
</entry>
<entry>
<title>MFp4 (112498):</title>
<updated>2007-01-07T19:00:38Z</updated>
<author>
<name>Alexander Leidinger</name>
<email>netchild@FreeBSD.org</email>
</author>
<published>2007-01-07T19:00:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1c65504ca8bb2d3696e328120de762d764e10cdf'/>
<id>urn:sha1:1c65504ca8bb2d3696e328120de762d764e10cdf</id>
<content type='text'>
Rename the locking flags to EMUL_DOLOCK and EMUL_DONTLOCK to prevent confusion.

Submitted by:	rdivacky
</content>
</entry>
<entry>
<title>MFp4:</title>
<updated>2006-12-31T12:42:55Z</updated>
<author>
<name>Alexander Leidinger</name>
<email>netchild@FreeBSD.org</email>
</author>
<published>2006-12-31T12:42:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a628609ee92f8627aca40a7094a0349d18a19360'/>
<id>urn:sha1:a628609ee92f8627aca40a7094a0349d18a19360</id>
<content type='text'>
 - semi-automatic style fixes
</content>
</entry>
</feed>
