Whitespace-only fixes, translators please ignore.

This commit is contained in:
Warren Block 2016-04-18 03:18:27 +00:00
parent 6277bc7876
commit 381104455f
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48663

View file

@ -375,15 +375,25 @@
<ul>
<li>I2C</li>
<li>HDMI output</li>
<li>Basic AXP209 support (Power Management Unit)</li>
<li>Switch to upstream DTS for most boards</li>
<li>Basic Support for A31/A31S SoC</li>
<li>RTC</li>
<li>Proper Pinmux/GPIO support</li>
<li>Audio Codec / Audio HDMI</li>
<li>A10/A20 DMA support</li>
<li>A20 now uses the GIC (General Interrupt Controller)</li>
<li>A20 now uses the ARM Generic Timer</li>
</ul>
@ -696,15 +706,15 @@
previous quarter, the team remained busy and work on KDE
Frameworks 5 and Plasma 5 continues.</p>
<p>Tobias Berner, who has been driving our KDE
Frameworks 5 and Plasma 5 efforts from the beginning, received
a KDE commit bit, and has been putting it to good use by
upstreaming FreeBSD across several KDE repositories. Another
team highlight in the beginning of this year is the
(re)addition of another committer to our experimental
repository: Adriaan de Groot, a longtime KDE contributor who
also used to work on KDE and FreeBSD almost a decade ago when
our team was first formed. Welcome back, Ade!</p>
<p>Tobias Berner, who has been driving our KDE Frameworks 5 and
Plasma 5 efforts from the beginning, received a KDE commit
bit, and has been putting it to good use by upstreaming
FreeBSD across several KDE repositories. Another team
highlight in the beginning of this year is the (re)addition of
another committer to our experimental repository: Adriaan de
Groot, a longtime KDE contributor who also used to work on KDE
and FreeBSD almost a decade ago when our team was first
formed. Welcome back, Ade!</p>
<p>The following big updates were landed in the ports tree this
quarter. In many cases, we have also contributed patches to
@ -770,15 +780,16 @@
</contact>
<body>
<p>POSIX specifies several kinds of <tt>pthread</tt> locks. For this
report, the private and process-shared variants are considered.
Private locks can be used only by the threads of the same
process, which share the address space. Process-shared locks
can be used by threads from any process, assuming the process
can map the lock memory into its address space.</p>
<p>POSIX specifies several kinds of <tt>pthread</tt> locks. For
this report, the private and process-shared variants are
considered. Private locks can be used only by the threads of
the same process, which share the address space.
Process-shared locks can be used by threads from any process,
assuming the process can map the lock memory into its address
space.</p>
<p>Our <tt>libthr</tt>, the library implementing the POSIX threads and
locking operations, uses a pointer as the internal
<p>Our <tt>libthr</tt>, the library implementing the POSIX
threads and locking operations, uses a pointer as the internal
representation behind a lock. The pointer contains the
address of the actual structure carrying the lock. This has
unfortunate consequences for implementing the
@ -787,11 +798,11 @@
distinct address spaces.</p>
<p>A common opinion was that we have no choice but to break the
<tt>libthr</tt> Application Binary Interface (ABI) by changing the lock
types to be the actual lock structures (and padding for future
ABI extension). This is very painful for users, as our
previous experience with non-versioned <tt>libc</tt> and <tt>libc_r</tt>
has shown.</p>
<tt>libthr</tt> Application Binary Interface (ABI) by changing
the lock types to be the actual lock structures (and padding
for future ABI extension). This is very painful for users, as
our previous experience with non-versioned <tt>libc</tt> and
<tt>libc_r</tt> has shown.</p>
<p>Instead, I proposed and implemented a scheme where
process-shared locks can be implemented without breaking the
@ -799,14 +810,14 @@
hash of the shared memory objects (off-pages), which carry the
real lock structures.</p>
<p>New <tt>umtx</tt> operations to create or look up the shared object,
by the memory key were added. <tt>libthr</tt> is modified to look up
the object and use it for shared locks, instead of using
<tt>malloc()</tt> as for private locks.</p>
<p>New <tt>umtx</tt> operations to create or look up the shared
object, by the memory key were added. <tt>libthr</tt> is
modified to look up the object and use it for shared locks,
instead of using <tt>malloc()</tt> as for private locks.</p>
<p>The pointer value in the user-visible lock type contains a
canary for shared locks. <tt>libthr</tt> detects the canary and
switches into the shared-lock mode.</p>
canary for shared locks. <tt>libthr</tt> detects the canary
and switches into the shared-lock mode.</p>
<p>The proposal of inlining the lock structures, besides the
drawbacks of breaking ABI, has its merits. Most important,
@ -820,11 +831,12 @@
existence for shared locks backed by files, however unlikely
they may be.</p>
<p><tt>libthr</tt> with inlined locks became informally known as the <tt>libthr2</tt>
project, since it is better to change the library name than just
bumping the library version. <tt>rtld</tt> should ensure that
<tt>libthr</tt> and <tt>libthr2</tt> are not simultaneously loaded into a
single address space.</p>
<p><tt>libthr</tt> with inlined locks became informally known as
the <tt>libthr2</tt> project, since it is better to change the
library name than just bumping the library version.
<tt>rtld</tt> should ensure that <tt>libthr</tt> and
<tt>libthr2</tt> are not simultaneously loaded into a single
address space.</p>
</body>
<sponsor>The FreeBSD Foundation</sponsor>
@ -1607,7 +1619,8 @@
<body>
<p>I wrote a small and straightforward yet feature-packed patch
to implement ASLR for &os; which is now available for broader testing.</p>
to implement ASLR for &os; which is now available for broader
testing.</p>
<p>With this change, randomization is applied to all non-fixed
mappings. By randomization I mean the base address for the
@ -1629,35 +1642,36 @@
<p>To not spoil coalescing optimizations, to reduce the page
table fragmentation inherent to ASLR, and to keep the
transient superpage promotion for the <tt>malloc</tt>ed memory, the
locality is implemented for anonymous private mappings, which
are automatically grouped until fragmentation kicks in. The
initial location for the anon group range is, of course,
randomized. After some additional tuning, the measures
appeared to be quite effective. In particular, a very
address-space-hungry build of PyPy 5.0 on i386 successfully
finished with the most aggressive functionality of the patch
activated.</p>
transient superpage promotion for the <tt>malloc</tt>ed
memory, the locality is implemented for anonymous private
mappings, which are automatically grouped until fragmentation
kicks in. The initial location for the anon group range is,
of course, randomized. After some additional tuning, the
measures appeared to be quite effective. In particular, a
very address-space-hungry build of PyPy 5.0 on i386
successfully finished with the most aggressive functionality
of the patch activated.</p>
<p>The default mode keeps the <tt>sbrk</tt> area unpopulated by other
mappings, but this can be turned off, which gives much more
breathing bits on the small AS architectures (funny that
<p>The default mode keeps the <tt>sbrk</tt> area unpopulated by
other mappings, but this can be turned off, which gives much
more breathing bits on the small AS architectures (funny that
32 bits is considered small). This is tied with the question
of following an application's hint about the <tt>mmap(2)</tt>
base address. Testing shows that ignoring the hint does not
affect the function of common applications, but I would expect
more demanding code could break. By default <tt>sbrk</tt> is preserved
and <tt>mmap</tt> hints are satisfied, which can be changed by using
the <tt>kern.elf{32,64}.aslr_care_sbrk</tt> sysctl (currently enabled
by default for wider testing).</p>
more demanding code could break. By default <tt>sbrk</tt> is
preserved and <tt>mmap</tt> hints are satisfied, which can be
changed by using the <tt>kern.elf{32,64}.aslr_care_sbrk</tt>
sysctl (currently enabled by default for wider testing).</p>
<p>Stack gap, W^X, shared page randomization, KASLR and other
techniques are explicitly out of scope of this work.</p>
<p>The <tt>paxtest</tt> results for the run with the previous version 5
of the patch applied and aggressively tuned can be seen at
<a href="https://www.kib.kiev.ua/kib/aslr/paxtest.log"><tt>paxtest.log</tt></a>. For
comparison, the run on Fedora 23 on the same machine is at
<p>The <tt>paxtest</tt> results for the run with the previous
version 5 of the patch applied and aggressively tuned can be
seen at
<a href="https://www.kib.kiev.ua/kib/aslr/paxtest.log"><tt>paxtest.log</tt></a>.
For comparison, the run on Fedora 23 on the same machine is at
<a href="https://www.kib.kiev.ua/kib/aslr/fedora.log"><tt>fedora.log</tt></a>.</p>
<p>ASLR is enabled on a per-ABI basis, and currently is only
@ -2328,10 +2342,10 @@
<body>
<p>The FreeBSD Foundation is a 501(c)(3) non-profit organization
dedicated to supporting and promoting the FreeBSD Project and
community worldwide. Funding comes from individual and
community worldwide. Funding comes from individual and
corporate donations and is used to fund and manage development
projects, conferences and developer summits, and provide
travel grants to FreeBSD developers. The Foundation purchases
travel grants to FreeBSD developers. The Foundation purchases
hardware to improve and maintain FreeBSD infrastructure and
publishes FreeBSD white papers and marketing material to
promote, educate, and advocate for the FreeBSD Project. The
@ -2352,13 +2366,13 @@
<p>OS Improvements</p>
<p>The Foundation improves
FreeBSD by funding software development projects approved through our proposal
submission process and our three software developer staff
members. Two Foundation-funded projects were started last
quarter, the first to improve stability of the vnet network
stack virtualization infrastructure, and the second for phase
two of the FreeBSD/arm64 port project.</p>
<p>The Foundation improves FreeBSD by funding software
development projects approved through our proposal submission
process and our three software developer staff members. Two
Foundation-funded projects were started last quarter, the
first to improve stability of the vnet network stack
virtualization infrastructure, and the second for phase two of
the FreeBSD/arm64 port project.</p>
<p>Foundation staff members were responsible for many changes
over the quarter. Some notable items include process-shared
@ -2367,7 +2381,7 @@
bug fixes in the <tt>autofs</tt> automount daemon, an updated
version of the ELF Tool Chain, investigation of the
<tt>lld</tt> linker, improved X86 hardware support, and VM
subsystem stability improvements. Several of these projects
subsystem stability improvements. Several of these projects
are described elsewhere in this quarterly report.</p>
<p>Release Engineering</p>
@ -2413,20 +2427,21 @@
<a href="https://www.freebsdfoundation.org/blog/initial-freebsd-risc-v-architecture-port-committed/">the FreeBSD RISC-V</a>
work being done.</p>
<p>Assistance was provided to Mellanox for their press release highlighting
<p>Assistance was provided to Mellanox for their press release
highlighting
<a href="http://www.mellanox.com/page/press_release_item?id=1688">their work with NetFlix</a>.</p>
<p>Conferences and Events</p>
<p>The FreeBSD Foundation sponsors many conferences, events, and summits around the
globe.  These events can be BSD-related, open source, or technology
events geared towards underrepresented groups. We provide
financial support to the major BSD conferences like BSDCan,
AsiaBSDCon, and EuroBSDCon, and give financial and/or other
support for smaller events like BSDDays, FreeBSD Summits, and
FreeBSD workshops, camps, and hackathons. For open source
conferences, we will attend when we can get a free non-profit
booth.</p>
<p>The FreeBSD Foundation sponsors many conferences, events, and
summits around the globe. These events can be BSD-related,
open source, or technology events geared towards
underrepresented groups. We provide financial support to the
major BSD conferences like BSDCan, AsiaBSDCon, and EuroBSDCon,
and give financial and/or other support for smaller events
like BSDDays, FreeBSD Summits, and FreeBSD workshops, camps,
and hackathons. For open source conferences, we will attend
when we can get a free non-profit booth.</p>
<p>The year kicked off with sending Ed Maste, Benedict
Reuschling, and George Neville-Neil to promote and give talks
@ -2436,27 +2451,29 @@
various people about reproducible builds in FreeBSD.</p>
<p>Dru Lavigne and Deb Goodkin promoted FreeBSD at SCALE in
Pasadena, California. Dru gave a presentation called "Doc Like an
Egyptian." We were a Gold Sponsor for AsiaBSDCon in Tokyo, and five
Foundation members attended. Kirk McKusick taught a two-day
FreeBSD Kernel tutorial and gave a talk on the history
of the BSD filesystem. Dru Lavigne and Benedict Reuschling
gave a documentation tutorial. Board members Hiroki Sato and
George Neville-Neil helped organize the conference. BSDnow.tv
interviewed Benedict at AsiaBSDCon about his role as a new
Foundation board member and the Foundation's work.</p>
Pasadena, California. Dru gave a presentation called "Doc
Like an Egyptian." We were a Gold Sponsor for AsiaBSDCon in
Tokyo, and five Foundation members attended. Kirk McKusick
taught a two-day FreeBSD Kernel tutorial and gave a talk on
the history of the BSD filesystem. Dru Lavigne and Benedict
Reuschling gave a documentation tutorial. Board members
Hiroki Sato and George Neville-Neil helped organize the
conference. BSDnow.tv interviewed Benedict at AsiaBSDCon
about his role as a new Foundation board member and the
Foundation's work.</p>
<p>We planned and organized our first-ever FreeBSD Storage
Summit in association with the USENIX FAST
Conference. Led by our President and Founder, Justin Gibbs,
we had over 50 attendees participating and working together on
technically focused topics.  Benedict was busy promoting
FreeBSD in Europe, where he also attended Linuxtage in
Chemnitz, Germany to give a talk on FreeBSD (in German):
Summit in association with the USENIX FAST Conference. Led by
our President and Founder, Justin Gibbs, we had over 50
attendees participating and working together on technically
focused topics. Benedict was busy promoting FreeBSD in
Europe, where he also attended Linuxtage in Chemnitz, Germany
to give a talk on FreeBSD (in German):
<a href="https://chemnitzer.linux-tage.de/2016/de/programm/beitrag/194">FreeBSD The Power to Serve a Community</a>.</p>
<p>The Foundation committed to being a Gold Sponsor for BSDCan and the
upcoming Hackathon/DevSummit in Essen, Germany in April.</p>
<p>The Foundation committed to being a Gold Sponsor for BSDCan
and the upcoming Hackathon/DevSummit in Essen, Germany in
April.</p>
<p>Legal/FreeBSD IP</p>
@ -2481,17 +2498,17 @@
can recruit more women to FreeBSD and offer Intro to FreeBSD
workshops.</p>
<p>Meetings were held with a number of commercial vendors to help facilitate
collaboration with the Project. This included presenting how
the Project is organized, and how companies can get help,
contribute back to the Project, promote their use of FreeBSD,
and for us to get their feedback on the work we are doing to
help with our fundraising efforts.</p>
<p>Meetings were held with a number of commercial vendors to
help facilitate collaboration with the Project. This included
presenting how the Project is organized, and how companies can
get help, contribute back to the Project, promote their use of
FreeBSD, and for us to get their feedback on the work we are
doing to help with our fundraising efforts.</p>
<p>The new Foundation website and logo was launched, signaling the ongoing
evolution of the Foundation identity and ability to better
serve the FreeBSD Project and community. Find our more about
our
<p>The new Foundation website and logo was launched, signaling
the ongoing evolution of the Foundation identity and ability
to better serve the FreeBSD Project and community. Find our
more about our
<a href="https://www.freebsdfoundation.org/blog/introducing-a-new-look-for-the-foundation/">new look</a>.</p>
</body>
</project>