<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/erts/emulator/sys/win32, branch maint</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge pull request #2046 from jhogberg/john/erts/mark-pooled-free-blocks-unused/OTP-15075</title>
<updated>2018-12-07T11:31:33+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2018-12-07T11:31:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=689f9d5cf041ed9c16b4b31a66c50eac57b2f6f0'/>
<id>689f9d5cf041ed9c16b4b31a66c50eac57b2f6f0</id>
<content type='text'>
Mark free blocks in pooled carriers as unused</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark free blocks in pooled carriers as unused</pre>
</div>
</content>
</entry>
<entry>
<title>Mark free blocks in pooled carriers as unused (MADV_FREE)</title>
<updated>2018-12-07T11:28:51+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2018-08-29T14:21:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1d549eddbeeccf7d108310466de5f63af04b004c'/>
<id>1d549eddbeeccf7d108310466de5f63af04b004c</id>
<content type='text'>
This lets the OS reclaim the physical memory associated with these
blocks which reduces the impact of long-lived awkward allocations.
A small allocated block will still keep a huge carrier alive, but
the unused part of the carrier will now be available to the OS.

Co-authored-by: Dmytro Lytovchenko &lt;dmytro.lytovchenko@erlang-solutions.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This lets the OS reclaim the physical memory associated with these
blocks which reduces the impact of long-lived awkward allocations.
A small allocated block will still keep a huge carrier alive, but
the unused part of the carrier will now be available to the OS.

Co-authored-by: Dmytro Lytovchenko &lt;dmytro.lytovchenko@erlang-solutions.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Move fds with active true behaviour to own pollset</title>
<updated>2018-12-06T10:40:14+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2018-10-12T16:16:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c6498571109b524fb319300e1b177b942e556f1b'/>
<id>c6498571109b524fb319300e1b177b942e556f1b</id>
<content type='text'>
At start of the VM a poll-set that the schedulers
will check is created where fds that have triggered
many (at the moment, many means 10) times without
being deselected inbetween. In this scheduler specific
poll-set fds do not use ONESHOT, which means that the
number of syscalls goes down dramatically for such fds.

This pollset is introduced in order to handle fds that
are used by the erlang distribution and that never
change their state from {active, true}.

This pollset only handles ready_input events,
ready_output is still handled by the poll threads.

During overload, polling the scheduler poll-set is done
on a 10ms timer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At start of the VM a poll-set that the schedulers
will check is created where fds that have triggered
many (at the moment, many means 10) times without
being deselected inbetween. In this scheduler specific
poll-set fds do not use ONESHOT, which means that the
number of syscalls goes down dramatically for such fds.

This pollset is introduced in order to handle fds that
are used by the erlang distribution and that never
change their state from {active, true}.

This pollset only handles ready_input events,
ready_output is still handled by the poll threads.

During overload, polling the scheduler poll-set is done
on a 10ms timer.
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Pass thread progress data where possible</title>
<updated>2018-10-23T07:58:38+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2018-10-09T14:11:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=090f9543f66cc0c4ea4d1ca63902c300b103f271'/>
<id>090f9543f66cc0c4ea4d1ca63902c300b103f271</id>
<content type='text'>
The poll thread does a lot of waking up and then going
back to sleep. A large part of the waking up is managing
thread progress and a large part of that was using thread
specific data to get the thread progress data pointer.
With this refactor the tpd is passed to each of the functions
which greatly decreases the number of ethr_get_tsd calls
which in turn halves the CPU usage of the poller thread in
certain scenarios.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The poll thread does a lot of waking up and then going
back to sleep. A large part of the waking up is managing
thread progress and a large part of that was using thread
specific data to get the thread progress data pointer.
With this refactor the tpd is passed to each of the functions
which greatly decreases the number of ethr_get_tsd calls
which in turn halves the CPU usage of the poller thread in
certain scenarios.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright year</title>
<updated>2018-09-21T10:23:25+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2018-09-21T10:23:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d04b53936d5e9f84a3066ecd466993671b1428bf'/>
<id>d04b53936d5e9f84a3066ecd466993671b1428bf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Fix bug where break would not trigger on windows</title>
<updated>2018-07-13T16:02:20+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2018-07-13T16:01:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c027e5300a2eea89232a77ec28d8c7e59dd8b9a7'/>
<id>c027e5300a2eea89232a77ec28d8c7e59dd8b9a7</id>
<content type='text'>
This bug was introduced in 988f5f5e8061ce2. The aux_thread
needs to be poked as it is the thread that handles all
break actions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This bug was introduced in 988f5f5e8061ce2. The aux_thread
needs to be poked as it is the thread that handles all
break actions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright year</title>
<updated>2018-06-18T12:51:18+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2018-06-18T12:51:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5ca92e2eac1e84fd22f60e7abc3aa2b0ff1cb42b'/>
<id>5ca92e2eac1e84fd22f60e7abc3aa2b0ff1cb42b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Alter erl_ddll:load dependency search path on Windows</title>
<updated>2018-01-03T07:14:28+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2017-11-29T11:54:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=65df0ce5cec5fdee60c80409f322a58092526537'/>
<id>65df0ce5cec5fdee60c80409f322a58092526537</id>
<content type='text'>
The standard search order does not include the directory that the
loaded DLL resides in, requiring dirty $PATH hacks to get things
working, which is not an option now that os:putenv/2 is divorced
from the OS environment.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The standard search order does not include the directory that the
loaded DLL resides in, requiring dirty $PATH hacks to get things
working, which is not an option now that os:putenv/2 is divorced
from the OS environment.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace the libc environment with a thread-safe emulation</title>
<updated>2018-01-03T07:14:28+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2017-11-22T12:19:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c2d70945dce9cb09d5d7120d6e9ddf7faac8d230'/>
<id>c2d70945dce9cb09d5d7120d6e9ddf7faac8d230</id>
<content type='text'>
putenv(3) and friends aren't thread-safe regardless of how you slice
it; a global lock around all environment operations (like before)
keeps things safe as far as our own operations go, but we have
absolutely no control over what libc or a library dragged in by a
driver/NIF does -- they're free to call getenv(3) or putenv(3)
without honoring our lock.

This commit solves this by setting up an "emulated" environment which
can't be touched without going through our interfaces. Third-party
libraries can still shoot themselves in the foot but benign uses of
os:putenv/2 will no longer risk crashing the emulator.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
putenv(3) and friends aren't thread-safe regardless of how you slice
it; a global lock around all environment operations (like before)
keeps things safe as far as our own operations go, but we have
absolutely no control over what libc or a library dragged in by a
driver/NIF does -- they're free to call getenv(3) or putenv(3)
without honoring our lock.

This commit solves this by setting up an "emulated" environment which
can't be touched without going through our interfaces. Third-party
libraries can still shoot themselves in the foot but benign uses of
os:putenv/2 will no longer risk crashing the emulator.
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Fix msacc testcase with new poll-thread</title>
<updated>2017-10-02T08:35:53+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2017-08-31T10:59:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4989ca90cac9ee7782c470ce14e4843225db5db4'/>
<id>4989ca90cac9ee7782c470ce14e4843225db5db4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
