svn commit: r49144 - head/en_US.ISO8859-1/htdocs/news/status

Benjamin Kaduk bjk at FreeBSD.org
Fri Jul 22 05:19:46 UTC 2016


Author: bjk
Date: Fri Jul 22 05:19:45 2016
New Revision: 49144
URL: https://svnweb.freebsd.org/changeset/doc/49144

Log:
  Make an editing pass through the 2016Q2 report

Modified:
  head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml

Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml
==============================================================================
--- head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml	Fri Jul 22 00:03:44 2016	(r49143)
+++ head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml	Fri Jul 22 05:19:45 2016	(r49144)
@@ -97,8 +97,8 @@
 
       <p>The &os; Release Engineering Team completed the 10.3-RELEASE
 	cycle late April, led by &a.marius;.  The release was one week
-	behind the original schedule, to accommodate for a few last
-	minute critical issues that were essential to include in the
+	behind the original schedule, to accommodate for a few
+	last-minute critical issues that were essential to include in the
 	final release.</p>
 
       <p>The &os; 11.0-RELEASE cycle started late May, one month
@@ -106,10 +106,10 @@
 	to accommodate for packaging the &os; base system with the
 	<tt>pkg(8)</tt> utility.  However, as work on this progressed,
 	it became apparent that there were too many outstanding
-	issues.  As a result, packaged base will be a "beta" feature
+	issues.  As a result, packaged base will be a "beta" feature
 	for 11.0-RELEASE, with the goal of promoting it to a
-	first-class feature in 11.1-RELEASE, with additional
-	provisions to ensure a seamless transition for earlier
+	first-class feature in 11.1-RELEASE.  It is expected that
+	provisions will be made to ensure a seamless transition from older
 	supported releases.</p>
 
       <p>Despite the fact that packaged base is not going to be a
@@ -120,7 +120,7 @@
     </body>
 
     <sponsor>
-	The &os; Foundation
+      The &os; Foundation
     </sponsor>
   </project>
 
@@ -144,10 +144,10 @@
 	come to switch to 4.2.</p>
 
       <p>While there is ongoing progress to remove Rails 3.2 from
-	the ports tree, there are some major updates blocking this
-	process.  The most recent blocker was the outstanding update
-	of <tt>www/redmine</tt> from 2.6 to 3.2. This has completed
-	successfully, so we can now move on.</p>
+	the ports tree, there are some ports for which this is a major
+	update that block the overall process.  The most recent blocker
+	was the outstanding update of <tt>www/redmine</tt> from 2.6 to
+	3.2. This has completed successfully, so we can now move on.</p>
 
       <p>To help with porting or testing, feel free to contact me or
 	the <tt>ruby at FreeBSD.org</tt> mailing list.</p>
@@ -180,26 +180,26 @@
 
     <body>
       <p>Allwinner SoCs are used in multiple hobbyist devboards and
-	single board computers.  Recently, support for these SoCs
+	single-board computers.  Recently, support for these SoCs
 	received many updates.</p>
 
       <p>Theses tasks were completed during the second quarter of
 	2016:</p>
 
       <ul>
-	<li>Switch to upstream DTS is complete</li>
+	<li>Switch to upstream DTS</li>
 
 	<li>A83T SoC support</li>
 
 	<li>H3 SoC support</li>
 
-	<li>Switch to new clock framework</li>
+	<li>Switch to the new clock framework</li>
 
-	<li>Convert A10 interrupt controller to INTRNG</li>
+	<li>Convert the A10 interrupt controller to <tt>INTRNG</tt></li>
 
 	<li>OHCI support</li>
 
-	<li>Generic ALLWINNER kernel config file</li>
+	<li>A generic <tt>ALLWINNER</tt> kernel config file</li>
 
 	<li>A20/A31 NMI support</li>
 
@@ -213,8 +213,8 @@
 
 	<li>A83T Security ID support</li>
 
-	<li>Allwinner Gigabit Ethernet controller found in
-	  H3/A83T/A64</li>
+	<li>Support for the Allwinner Gigabit Ethernet controller found
+	  in H3/A83T/A64</li>
 
 	<li>USB OTG
 	  <a href="https://reviews.freebsd.org/D5881">(in review)</a></li>
@@ -267,10 +267,10 @@
     </contact>
 
     <body>
-      <p>Now that the process-shared locks are implemented for our
-	POSIX threads implementation library, <tt>libthr</tt>,
-	the only major lacking feature for POSIX compliance is robust
-	mutexes.  Robust mutexes allow the application to detect, and
+      <p>Now that process-shared locks are implemented for our
+	POSIX threads implementation, <tt>libthr</tt>,
+	the only major feature lacking for POSIX compliance is robust
+	mutexes.  Robust mutexes allow applications to detect, and
 	theoretically, recover from crashes which occur while
 	modifying the shared state.  The supported model is to protect
 	shared state by a <tt>pthread_mutex</tt>, and the crash is
@@ -284,7 +284,7 @@
 	recover from failures.  The <tt>pthread_mutex_lock()</tt>
 	function may return new error <tt>EOWNERDEAD</tt>, which
 	indicates that the previous owner of the lock terminated while
-	still owning the lock.  Despite returning the non-zero value,
+	still owning the lock.  Despite returning this non-zero value,
 	the lock is granted to the caller.  In the simplest form, an
 	application may detect the error and refuse to operate until
 	the persistent shared data is recovered, such as by manual
@@ -299,22 +299,22 @@
 
       <p>It is curious but not unexpected that this interface is not
 	used widely.  The only real-life application which utilizes it
-	is Samba.  Using Samba with an updated FreeBSD base uncovered
-	minor bugs both in the FreeBSD robustness implementation, and
+	is Samba.  Using Samba with an updated &os; base uncovered
+	minor bugs both in the &os; robust mutex implementation, and
 	in Samba itself.</p>
 
-      <p>It is believed that <tt>libthr</tt> in FreeBSD 11 is
-	POSIX-compliant for large features.  Further work is planned
-	to look at the lock structures inlining to remove overhead
-	and improve performance of the library.</p>
+      <p>It is believed that <tt>libthr</tt> in &os; 11 is
+	POSIX-compliant for major features.  Further work is planned
+	to look at inlining the lock structures to remove overhead
+	and improve the performance of the library.</p>
 
       <p>Most of the implementation of the robustness feature
 	consisted of making small changes in the lock and unlock
 	paths, both in <tt>libthr</tt> and in <tt>kern_umtx.c</tt>.
 	This literally required reading all of the code dealing with
-	mutexes and conditional variables, which was something I
+	mutexes and condition variables, which was something I
 	wanted to help future developers with.  In the end, with the
-	help of Ed Maste, the man pages for <tt>umtx(2)</tt> and all
+	help of Ed Maste, man pages for <tt>umtx(2)</tt> and all
 	<tt>thr*(2)</tt> syscalls were written and added to the base
 	system's documentation set.
       </p>
@@ -329,7 +329,7 @@
   </project>
 
   <project cat='proj'>
-    <title>EFI Refactoring, GELI Support</title>
+    <title>EFI Refactoring and GELI Support</title>
 
     <contact>
       <person>
@@ -357,16 +357,17 @@
 	too much effort.</p>
 
       <p>Both <tt>boot1</tt> and <tt>loader</tt> have been refactored
-	to talk through the <tt>EFI_SIMPLE_FILE_SYSTEM</tt> interface.
-	In <tt>loader</tt>, this is accomplished with a dummy
+	to utilize the <tt>EFI_SIMPLE_FILE_SYSTEM</tt> interface.
+	In the loader, this is accomplished with a dummy
 	filesystem driver that is just a translation layer between the
-	<tt>loader</tt> filesystem interface and
+	loader filesystem interface and
 	<tt>EFI_SIMPLE_FILE_SYSTEM</tt>.  A reverse translation layer
 	allows the existing filesystem drivers to function as EFI
 	drivers.</p>
 
-      <p>The EFI refactoring by itself exists in
-	<a href="https://github.com/emc2/freebsd/tree/efize">this branch</a>.</p>
+      <p>The EFI refactoring by itself exists in a
+	<a href="https://github.com/emc2/freebsd/tree/efize">branch
+	  on github</a>.</p>
 
       <p>Additionally, GELI support has been added using the EFI
 	refactoring.  This allows booting from a GELI-encrypted
@@ -376,7 +377,7 @@
 	framework, which allows injection of keys directly into a
 	loaded kernel, without the need to pass them through
 	arguments or environment variables.  This patch only uses the
-	intake buffer for EFI GELI support as legacy BIOS GELI support
+	intake buffer for EFI GELI support, as legacy BIOS GELI support
 	still uses environment variables.</p>
 
       <p>EFI GELI support depends on the
@@ -404,7 +405,7 @@
 	</li>
 
 	<li>
-	  <p>Install an EFI shell on the ESP.</p>
+	  <p>Install an EFI shell on the EFI System Partition (ESP).</p>
 	</li>
 
 	<li>
@@ -439,7 +440,7 @@
 
 	<li>
 	  <p>Try switching over to an encrypted main partition once
-	    everything else has worked.</p>
+	    everything else is working.</p>
 	</li>
       </ol>
     </body>
@@ -447,9 +448,8 @@
     <help>
       <task>Testing is needed.</task>
 
-      <task>Code will need review and some <tt>style(9)</tt>
-	normalization must occur before this code goes into
-	FreeBSD.</task>
+      <task>The code will need review, and some <tt>style(9)</tt>
+	normalization must occur before it goes into &os;.</task>
     </help>
   </project>
 
@@ -475,7 +475,7 @@
     </contact>
 
     <body>
-      <p>The port has been updated to GDB 7.11.1.</p>
+      <p>The <tt>devel/gdb</tt> port has been updated to GDB 7.11.1.</p>
 
       <p>Support for system call catchpoints has been committed
 	upstream.  Support for examining ELF auxiliary vector data via
@@ -484,12 +484,12 @@
     </body>
 
     <help>
-      <task>Figure out why the <tt>powerpc kgdb</tt> targets are not
+      <task>Figure out why the <tt>powerpc</tt> <tt>kgdb</tt> targets are not
 	able to unwind the stack past the initial frame.</task>
 
       <task>Add support for more platforms, such as <tt>arm</tt>,
-	<tt>mips</tt>, and <tt>aarch64</tt>, to upstream gdb for both
-	userland and kgdb.</task>
+	<tt>mips</tt>, and <tt>aarch64</tt>, to upstream <tt>gdb</tt> for both
+	userland and <tt>kgdb</tt>.</task>
 
       <task>Add support for debugging <tt>powerpc</tt> vector
 	registers.</task>
@@ -516,11 +516,11 @@
     </contact>
 
     <links>
-       <url href="https://svnweb.freebsd.org/base/projects/vnet/">Projects workspace (all merged to head now).</url>
+       <url href="https://svnweb.freebsd.org/base/projects/vnet/">Project workspace (all merged to head now).</url>
     </links>
 
     <body>
-      <p>VIMAGE is a virtualization framework on top of FreeBSD jails
+      <p>VIMAGE is a virtualization framework on top of &os; jails
 	that was introduced to the kernel about eight years ago with
 	the <tt>vnet</tt> virtualized network stack.</p>
 
@@ -533,8 +533,9 @@
       <p>The <tt>vnet</tt> teardown has been changed to be from top to
 	bottom, trying to tear down layer by layer.  This is
 	preferable to removing interfaces first and then cleaning
-	everything up, as no more packets could flow.  Along with this
-	work, various parts with potential memory leaks were plugged.
+	everything up, as no more packets could flow once the
+	interfaces are gone.  Along with this
+	work, various paths with potential memory leaks were plugged.
 	Lastly, <tt>vnet</tt> support was added to formerly
 	unvirtualized components, such as the <tt>pf</tt> and
 	<tt>ipfilter</tt> firewalls and some virtual interfaces.</p>
@@ -543,7 +544,7 @@
     <sponsor>The FreeBSD Foundation</sponsor>
 
     <help>
-      <task>Please test FreeBSD 11.0-ALPHA6 or later.  When reporting
+      <task>Please test &os; 11.0-ALPHA6 or later.  When reporting
 	a problem, use the <tt>vimage</tt> keyword in the FreeBSD bug
 	tracker.</task>
     </help>
@@ -569,9 +570,9 @@
     <body>
       <p>Half a year ago, I started a promotion campaign to improve
 	support for fetching ports via IPv6.  Research performed in
-	December, 2015 showed that 10,308 of 25,522 ports are not
-	fetchable when using IPv6-only as these ports ignore the <a
-	  href="distcache.freebsd.org">FreeBSD.org pkg mirror</a>.</p>
+	December 2015 showed that 10,308 of 25,522 ports were not
+	fetchable when using IPv6-only, as these ports ignore the <a
+	  href="distcache.freebsd.org">FreeBSD.org <tt>pkg</tt> mirror</a>.</p>
 
       <p>As a result of the campaign, the following servers now
 	successfully support IPv6:</p>
@@ -590,7 +591,7 @@
 
       <p>This enables 711 more ports to be fetched via IPv6.</p>
 
-      <p>I would like to thank Wolfgang Zenker who is very active in
+      <p>I would like to thank Wolfgang Zenker, who is very active in
 	supporting the adoption of IPv6.  During the latest RIPE
 	meeting, he brought up the topic of non-support of IPv6
 	being a hindrance to business.  I am hopeful that his talk
@@ -637,15 +638,15 @@
     </contact>
 
     <links>
-      <url href="https://wiki.freebsd.org/HyperV">FreeBSD Virtual Machines on Microsoft Hyper-V</url>
-      <url href="https://technet.microsoft.com/en-us/library/dn531030.aspx">Supported Linux and FreeBSD virtual machines for Hyper-V on Windows</url>
+      <url href="https://wiki.freebsd.org/HyperV">&os; Virtual Machines on Microsoft Hyper-V</url>
+      <url href="https://technet.microsoft.com/en-us/library/dn531030.aspx">Supported Linux and &os; virtual machines for Hyper-V on Windows</url>
     </links>
 
     <body>
       <p>During BSDCan 2016, Microsoft <a
 	  href="https://azure.microsoft.com/en-us/blog/freebsd-now-available-in-azure-marketplace/">announced</a>
-	the global availability of FreeBSD 10.3 images in Azure.
-	There are many FreeBSD-based Azure virtual appliances in the
+	the global availability of &os; 10.3 images in Azure.
+	There are many &os;-based Azure virtual appliances in the
 	Azure Marketplace, including Citrix Systems' NetScaler and
 	Netgate's pfSense.  Microsoft also made an in-depth technical
 	presentation to introduce how the performance of the Hyper-V
@@ -659,11 +660,11 @@
 	performance of Hyper-V network and storage device drivers.
 	Work is ongoing to replace the internal data structure in the
 	LRO kernel API from a singly-linked list to a double-linked
-	list, to speed up the LRO lookup by hash table, and to compare
+	list, to speed up the LRO lookup by hash table, and to evaluate
 	the performance with <tt>tcp_lro_queue_mbuf()</tt>.</p>
 
       <p>The handling of SCSI inquiry in the Hyper-V storage driver is
-	enhanced to make sure disk hotplug and <tt>smartctl(8)</tt>
+	enhanced to make sure that disk hotplug and <tt>smartctl(8)</tt>
 	work reliably.  Refer to <a
 	  href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210425">PR 210425</a>
 	and <a
@@ -698,12 +699,12 @@
       <url href="http://ceph.com">Ceph main site</url>
       <url href="https://github.com/ceph/ceph">Main repository</url>
       <url href="https://github.com/wjwithagen/ceph">My Fork </url>
-      <url href="https://github.com/ceph/ceph/pull/7573">The git PULL with all changes</url>
+      <url href="https://github.com/ceph/ceph/pull/7573">Pull request with &os;-specific changes to Ceph</url>
     </links>
 
     <body>
-      <p>Ceph is a distributed object store and file system designed
-	to provide  excellent performance, reliability, and
+      <p>Ceph is a distributed object store and filesystem designed
+	to provide excellent performance, reliability, and
 	scalability.  It provides the following features:</p>
 
       <ol>
@@ -716,38 +717,38 @@
 	  access to block device images that are striped and
 	  replicated across the entire storage cluster.</li>
 
-	<li>File System: Ceph provides a POSIX-compliant network file
-	  system that aims for high performance, large data storage,
+	<li>File System: Ceph provides a POSIX-compliant network
+	  filesystem that aims for high performance, large data storage,
 	  and maximum compatibility with legacy applications.</li>
       </ol>
 
-      <p>I started looking into Ceph as using HAST with CARP and
+      <p>I started looking into Ceph because using HAST with CARP and
 	<tt>ggate</tt> did not meet my requirements.  My primary goal
 	with Ceph is to run a storage cluster of ZFS storage nodes
-	where the clients run bhyve on RBD disks stored in Ceph.</p>
+	where the clients run <tt>bhyve</tt> on RBD disks stored in Ceph.</p>
 
       <p>The &os; build process can build most of the tools in
-	Ceph.  However, the RBD-dependent items do not work since
+	Ceph.  However, the RBD-dependent items do not work, since
 	&os; does not yet provide RBD support.</p>
 
       <p>Since the last quarterly report, the following progress was
 	made:</p>
 
       <ol>
-	<li>The changeover from using CMake to Automake results in a
+	<li>Switching to using CMake from Automake results in a
 	  much cleaner development environment and better test output.
 	  The changes can be found in the
 	  <tt>wip-wjw-freebsd-cmake</tt> branch.</li>
 
-	<li>Throttling code has been overhauled to prevent live locks.
+	<li>The throttling code has been overhauled to prevent live locks.
 	  These mainly occur on &os; but also manifest on Linux.</li>
 
-	<li>Fixed a few more tests.  On one occasion, I was able to
-	  complete the full test set without errors.</li>
+	  <li>A few more tests were fixed.  On one occasion, I was able to
+	  complete the full test suite without errors.</li>
       </ol>
 
       <p>11-CURRENT is used to compile and build test Ceph.  The
-	Clang toolset needs to be at least version 3.7 as Clang 3.4
+	Clang toolset needs to be at least version 3.7, as Clang 3.4
 	does not have all of the capabilities required to compile
 	everything.</p>
 
@@ -755,7 +756,7 @@
 
       <ul>
 	<li>
-	  <p>Install <tt>bash</tt> and link it in <tt>/bin</tt>
+	  <p>Install <tt>bash</tt> and link to it in <tt>/bin</tt>
 	    (requires root privileges):</p>
 
 	  <p><tt>sudo pkg install bash</tt></p>
@@ -787,33 +788,33 @@
 
       <ul>
 	<li>RBD: Rados Block Devices are currently implemented in the
-	  Linux kernel but there used to be a userspace
+	  Linux kernel, but there used to be a userspace
 	  implementation.  It is possible that <tt>ggated</tt> could
-	  be used as a template since it provides some of the same
+	  be used as a template, since it provides some of the same
 	  functionality and it has a userspace counterpart.</li>
 
 	<li>BlueStore: &os; and Linux have a different AIO API which
-	  needs to be made compatible.  There has been some
+	  needs to be bridged.  There has been some
 	  discussion about <tt>aio_cancel</tt> not working for all
 	  device types in &os;.</li>
 
-	<li>CephFS: Cython tries to access an internal field in dirent
-	  which does not compile.</li>
+	<li>CephFS: Cython tries to access an internal field in
+	  <tt> struct dirent</tt>, which fails to compile.</li>
 
-	<li>Tests that verify the correct working of the above are
-	  also excluded from the testset.</li>
+	<li>Tests that verify the correct functionality of these are
+	  also excluded from the test suite.</li>
       </ul>
 
       <p>Tests Not Yet Included:</p>
 
       <ul>
 	<li><tt>ceph-detect-init/run-tox.sh</tt>: the current
-	  implementation does not know anything about &os;
-	  <tt>rc-init</tt>.</li>
+	  implementation does not know anything about &os;'s
+	  <tt>rc</tt> system.</li>
 
-	<li>Tests that make use of <tt>nosestests</tt> do not really
-	  work since <tt>nostests</tt> is not in <tt>/usr/bin</tt>,
-	  and calling <tt>/usr/bin/env/nosetests</tt> does not work on
+	<li>Tests that make use of <tt>nosetests</tt> do not really
+	  work since <tt>nosetests</tt> is not in <tt>/usr/bin</tt>,
+	  and calling <tt>/usr/bin/env nosetests</tt> does not work on
 	  &os;.</li>
 
 	<li><tt>test/pybind/test_ceph_argparse.py</tt></li>
@@ -823,13 +824,13 @@
     </body>
 
     <help>
-      <task>The current and foremost task it to get the test set to
+      <task>The current and foremost task it to get the test suite to
 	complete without errors.</task>
 
       <task>Build an automated test platform that will build
 	<tt>ceph/master</tt> on &os; and report the results back to
 	the Ceph developers.  This will increase the maintainability
-	of the &os; side of things as developers are signaled that
+	of the &os; side of things, as developers are signaled that
 	they are using Linux-isms that will not compile or run on
 	&os;.  Ceph has several projects that support this: Jenkins,
 	teuthology, and palpito.  But even a
@@ -845,7 +846,7 @@
 	Device).</task>
 
       <task>Investigate if an in-kernel RBD device could be developed
-	ala <tt>ggate</tt>.</task>
+	akin to <tt>ggate</tt>.</task>
 
       <task>Investigate the keystore which currently prevents the
 	building of Cephfs and some other parts.</task>
@@ -890,7 +891,7 @@
 	&os;, which is quite a commendation.</p>
 
       <p>Current work aims to fix the open problems, get the latest
-	major version into the port, and create the documentation for
+	major version into the port, and create documentation for
 	the update progress.</p>
     </body>
   </project>
@@ -931,107 +932,117 @@
       <p><tt>proccontrol -m (trace|aslr) [-q] [-s (enable|disable)]
 	[-p pid | command]</tt></p>
 
-      <p><tt>-m</tt> (specifies trace mode to control debugger
+      <p>with possible arguments</p>
+
+      <p><tt>-m</tt> (specifies the trace mode to control debugger
 	attachments)</p>
 
       <p><tt>-q</tt> (queries the state of the specified mode for the
-	process with the PID specified by <tt>-p</tt> option)</p>
+	process with the PID specified by the <tt>-p</tt> option)</p>
 
       <p><tt>-e</tt> (toggles the feature on or off for the given
 	process or itself)</p>
 
-      <p>If the command is specified, it inherits the applied
+      <p>If a command is specified, it inherits the applied
 	settings from <tt>proccontrol</tt>.  For instance, to start a
 	build of a program with ASLR disabled, use
 	<tt>proccontrol -m aslr -s disable make</tt>.</p>
 
-      <p>The ports exp run was done with ASLR tuned up to the most
+      <p>A ports exp-run was done with ASLR tuned up to the most
 	aggressive settings.  The results can be found in <a
 	  href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208580">PR 208580</a>.</p>
 
+      <p>Case study: Lisp</p>
+
       <p>SBCL is an interesting case which illustrates several points.
 	It is much smaller than JDK, and its build system is easier to
-	work with.  The code provides a very non C-ish language
-	runtime which utilizes a lot of corner cases and non-standard
-	uses of VM, at least from the point of view of a typical C
+	work with.  The code provides a very non C-like language
+	runtime which utilizes a lot of corner cases and makes non-standard
+	uses of the VM system, at least from the point of view of a typical C
 	programmer.</p>
 
       <p>SBCL compiles Lisp forms into the machine native code and
 	manages its own arena for objects.  The precompiled Lisp
-	runtime is mapped from the <tt>core</tt> file.  SBCL relies on
+	runtime is mapped from a <tt>core</tt> file.  SBCL relies on
 	the operating system's C runtime for the initial load of Lisp,
 	and needs a functional <tt>libc</tt> to issue many system
 	calls, including syscalls, as well as the dynamic loader.  The
 	end result is that there are unfixed <tt>mmap(2)</tt> calls
-	during both startup and runtime, interfering with the
-	<tt>MAP_FIXED mmaps</tt>.  The core file loading and arenas
-	are hard-coded to exist at fixed addresses.</p>
+	during both startup and runtime, interfering with other
+	<tt>MAP_FIXED mmaps</tt>.  The loading of the core file
+	and the private arenas are hard-coded to exist at fixed
+	addresses.</p>
 
       <p>This happens to work on the default address map, which is not
 	changed often, so the SBCL choices of the base addresses
 	evolved to work.  But any significant distortion of the
 	standard map results in <tt>SBCL mmap(MAP_FIXED)</tt> requests
-	to override memory from other allocators.</p>
+	attempting to override memory from other allocators.</p>
 
       <p>&os; uses the <tt>MAP_EXCL</tt> flag to <tt>mmap(2)</tt>,
-	which must be used in <tt>MAP_FIXED|MAP_EXCL</tt> form to
-	cause <tt>mmap(2)</tt> failure if the requested range is
+	which must be used in the <tt>MAP_FIXED|MAP_EXCL</tt> form to
+	cause <tt>mmap(2)</tt> to fail if the requested range is
 	already used.  I tried to force <tt>MAP_FIXED</tt> requests
-	from SBCL to implicitely set <tt>MAP_EXCL</tt>, but this did
+	from SBCL to implicitly set <tt>MAP_EXCL</tt>, but this did
 	not go well since SBCL sometimes pre-allocates regions for
 	later use with <tt>MAP_FIXED</tt>.  So, <tt>MAP_EXCL</tt>
 	mappings failed, dumping the process into <tt>ldb</tt>.</p>
 
-      <p>On Linux, if a kernel is detected in AS-randomization mode,
-	the initial SBCL runtime sets personality to non-random and
+      <p>On Linux, if it is detected that the kernel is in AS-randomization mode,
+	the initial SBCL runtime sets its personality to non-random and
 	re-execs.  This might be a solution for &os; as well, after
 	the ASLR patch is committed, so that the <tt>procctl(2)</tt>
 	knob is officially available.</p>
 
       <p>SBCL still has issues on Linux, even with re-exec, when
-	more aggressive randomization from PaX patch is applied, as
+	more aggressive randomization from the PaX patch is applied, as
 	seen in <a
 	  href="https://bugs.launchpad.net/sbcl/+bug/1523213">bug
 	  1523213</a>.</p>
 
+      <p>Case study: Emacs</p>
+
       <p>The Emacs build procedure involves loading the
 	<tt>temacs</tt> image with the compiled Emacs Lisp files and
-	then dumping the memory to recreate the image with the
-	preloaded content, in order to shrink the start time.</p>
+	then dumping its memory to create an image with the content
+	preloaded, in order to reduce startup time.</p>
 
       <p>Recent Emacs sources seem to generally avoid
 	<tt>MAP_FIXED</tt>, except in some situations.  When Emacs
 	does use the flag, it carefully checks that the selected
-	region is not busy.  In fact, Emacs would benefit from
+	region is not busy.  In fact, Emacs would benefit from using
 	<tt>MAP_EXCL</tt>.</p>
 
       <p>I tried several runs of building Emacs and running the dumped
-	binary, but was not able to reproduce the issue.  It seems
+	binary, but was not able to reproduce any issues.  It seems
 	that the code improved enough to tolerate ASLR both in Linux
 	and NetBSD without turning it off.</p>
 
       <p>In my opinion, it is not reasonable to fight the issues in
 	the kernel as most of it is not fixable from the kernel side.
 	The <tt>procctl(2)</tt> interface and <tt>proccontrol(1)</tt>
-	utilities provide the override when needed, but are not
+	utilities provide an override when needed, but are not
 	automated.</p>
 
+      <p>Conclusions</p>
+
       <p>The set of ports which cannot be built with ASLR turned on
 	should be limited but fluid.  However, exp-runs may not
 	reliably uncover all problems due to randomization, as seen in
-	the Emacs example.  In the route to enable ASLR by default in
-	non-aggressive settings, the ports framework should provide an
+	the Emacs example.  In the route to enable ASLR by default (with
+	non-aggressive settings), the ports framework should provide an
 	option like <tt>ASLR_UNSAFE=yes</tt> which spawns
 	<tt>proccontrol -m aslr -s disable make</tt> for the build
 	stages of the unsafe port.  Users would still need to be aware
 	of <tt>proccontrol(1)</tt> in order to run the resulting
-	binary.</p>
+	binary or wrapper scripts provided to do so.</p>
 
       <p>A recommended approach is a flag in the ELF binary to mark
 	it as not compatible with non-standard AS layouts.  This frees
 	users from having to use <tt>proccontrol(1)</tt>, but still
-	requires patching and upstreaming.  This approach is also
-	useful outside the context of ASLR.  However, the
+	requires patching the application's build process and
+	upstreaming the changes.  This approach is also
+	useful outside the context of ASLR.  However, that
 	mechanism is not yet ready, and developing it is a larger work
 	than ASLR itself.</p>
     </body>
@@ -1062,7 +1073,7 @@
       <url href="http://wiki.FreeBSD.org/Graphics">Graphics Stack Roadmap and Supported Hardware Matrix</url>
       <url href="https://github.com/FreeBSD/freebsd-ports-graphics">Ports Development Repository</url>
       <url href="https://github.com/FreeBSDDesktop/freebsd-base-graphics/tree/drm-next-4.6">DRM 4.6 Development Repository</url>
-      <url href="https://wiki.freebsd.org/SummerOfCodeIdeas#Devices_management:_link_.2Fdev_entries_to_sysctl_nodes">GSoC 2016: link /dev entries to sysctl nodes</url>
+      <url href="https://wiki.freebsd.org/SummerOfCodeIdeas#Devices_management:_link_.2Fdev_entries_to_sysctl_nodes">GSoC 2016: link <tt>/dev</tt> entries to sysctl nodes</url>
       <url href="https://wiki.freebsd.org/SummerOfCode2016/RethinkLibdevq">GSoC 2016: Redesign libdevq </url>
       <url href="http://planet.freebsd.org/graphics">Graphics Team Blog</url>
     </links>
@@ -1075,7 +1086,8 @@
       <p>The GSoC project about being able to connect a <tt>/dev</tt>
 	entry to <tt>sysctl</tt> nodes is making progress.  After some
 	fruitful discussons on the <a
-	  href="https://lists.freebsd.org/mailman/listinfo/freebsd-arch">freebsd-arch@ mailing-list</a>,
+	  href="https://lists.freebsd.org/mailman/listinfo/freebsd-arch">freebsd-arch@
+	  mailing-list</a>,
 	Kiloreux finished the design and is now implementing the
 	solution.  The GSoC project on <tt>libdevq</tt> was
 	abandoned.</p>
@@ -1090,7 +1102,7 @@
       <ul>
 	<li>There are instances of visual artifacts that appear with
 	  varying frequency, depending on workload.  Of particular
-	  note is lack of redraw when a Qt5 window is partially
+	  note is the lack of redraw when a Qt5 window is partially
 	  covered by a menu and then uncovered.</li>
 
 	<li>WebGL demos will sometimes fail due to a recoverable
@@ -1104,11 +1116,11 @@
 	issues, along with others, by updating Linux support to the
 	point where the Intel GPU Tools work on &os;.</p>
 
-      <p>The Radeon AMD/ATI has been updated to GCN 1.0.  This has
+      <p>The Radeon AMD/ATI driver has been updated to GCN 1.0.  This has
 	only been tested on an R7 240.  2D-accelerated X works.  Due
 	to apparent issues with user library support, X does not
 	recognize the KMS driver as being 3D-capable and reports it as
-	"not DRI2 capable".  The OpenCL benchmark <tt>clpeak</tt>
+	"not DRI2 capable".  The OpenCL benchmark <tt>clpeak</tt>
 	fails in <tt>drm/ttm</tt>, so there may in fact be issues in
 	the underlying 3D support.</p>
 
@@ -1131,7 +1143,7 @@
     </body>
   </project>
 
-  <project  cat='team'>
+  <project cat='team'>
     <title>&os; IRC Admin Team</title>
 
     <contact>
@@ -1215,10 +1227,10 @@
 	    href="https://wiki.freebsd.org/IRC/Cloaks">IRC
 	    Cloaks</a>.</li>
 
-	<li>Obtain a report on all nicknames and accounts with
+	<li>Obtained a report on all nicknames and accounts with
 	  existing <tt>freebsd/*</tt> user cloaks.</li>
 
-	<li>Liaise with freenode staff on upcoming changes to freebsd
+	<li>Liaised with freenode staff on upcoming changes to freebsd
 	  channels.</li>
       </ul>
 
@@ -1432,7 +1444,7 @@
       <p>Another of Core's important functions is to ensure good
 	relations amongst developers.  To that end, members of Core
 	provided oversight over the backing-out of disputed
-	<tt>blacklistd</tt> related patches to OpenSSH, and acted to
+	<tt>blacklistd</tt>-related patches to OpenSSH, and acted to
 	smooth over ruffled tempers.</p>
 
       <p>This quarter saw the usual quota of gentle reminders to avoid
@@ -1503,7 +1515,7 @@
     </contact>
 
     <body>
-      <p>Since the Triage Team was introduced in the October-December
+      <p>Since the Triage Team was introduced in the October–December
 	2015 report, it has been working on the following three major
 	aspects of issue triage:</p>
 
@@ -1520,13 +1532,13 @@
       </ul>
 
       <p>Our efforts have almost exclusively focused on issues in the
-	"Ports & Packages" component as that is the easiest
-	starting point.  Other categories like "Base System" require
+	"Ports & Packages" component as that is the easiest
+	starting point.  Other categories like "Base System" require
 	more knowledge and experience with problem content and
 	workflow.</p>
 
       <p>During this time, Rodrigo was inactive due to lack of
-	available time and Vladimir was unable to commit enough time
+	available time, and Vladimir was unable to commit enough time
 	during the first quarter of the year, but provided active
 	contribution during the second.  It became obvious that the
 	Issue Triage Team must concentrate on additional recruitment
@@ -1537,17 +1549,17 @@
 	Wiki page.  A summary of those issues is given here:</p>
 
       <ol>
-	<li>Issue triage, defined as "ensure an issue is summarized,
-	  classified, and assigned to appropriate people", is too time
+	<li>Issue triage, defined as "ensure that an issue is summarized,
+	  classified, and assigned to appropriate people", is too time
 	  consuming.  Bugzilla automation through auto-assign helps,
 	  but is insufficient.  If the triage process is extended to
-	  include "track the issue through its entire life to
-	  resolution", the time and effort required grows
+	  include "track the issue through its entire life to
+	  resolution", the time and effort required grows
 	  exponentially.  Fortunately, there are many things the
 	  community can do, with minimum effort, that help greatly.
 	  Part of the recruitment and education process is educating
 	  users on how to properly treat their own issues and issues
-	  they interact with in order to maximize the efficiency of
+	  they interact with, in order to maximize the efficiency of
 	  issue tracking and problem resolution.</li>
 
 	<li>Various timeouts are inadequate.  For example, the
@@ -1577,13 +1589,13 @@
 	  track and quickly find issue categories and, more
 	  importantly, their <strong>states</strong>.  Another example
 	  is ensuring that various flags and keywords are unambiguous
-	  and well understood.  For instance, "patch" and
-	  "patch-ready", can often be misunderstood or
+	  and well understood.  For instance, "patch" and
+	  "patch-ready", can often be misunderstood or
 	  misapplied.</li>
 
-	<li>Issue statistics are lacking and for the next quarter we
+	<li>Issue statistics are lacking, and for the next quarter we
 	  intend to change that.  Statistics help to provide insight
-	  into potential bottlenecks and inform the priority of
+	  into potential bottlenecks and inform the prioritization of
 	  improvements to the issue tracker and workflows.</li>
       </ol>
     </body>
@@ -1705,7 +1717,8 @@
 	the idea is that building the same binary, software package,
 	document, or other binary artifact twice from the same source
 	produces identical output.  The <a
-	  href="https://reproducible-builds.org/">reproducible-builds.org website</a>
+	  href="https://reproducible-builds.org/">reproducible-builds.org
+	  website</a>
 	provides background information and documentation on making
 	builds reproducible.</p>
 
@@ -1724,7 +1737,7 @@
 	Ed investigated the state of build reproducibility
 	in the ports tree, and presented
 	<i>Reproducible Builds in &os;</i> at BSDCan 2016.  With
-	some work in progress patches, over 80% of the &os; ports tree
+	some work-in-progress patches, over 80% of the &os; ports tree
 	builds reproducibly.</p>
 
       <p>The Diffoscope tool performs in-depth comparison of files,
@@ -1795,11 +1808,11 @@
 	<li>Qt Creator was updated to 3.4.0, 3.5.0, 3.5.1, 3.6.0,
 	  4.0.0, 4.0.1, and 4.0.2.</li>
 
-	<li>Added the new port <tt>misc/qt5-examples</tt> for the
+	<li>A new port <tt>misc/qt5-examples</tt> was added for the
 	  project examples provided by Qt.  This makes Qt Creator more
 	  functional.</li>
 
-	<li>Added the new port <tt>misc/qt5-doc</tt> for Qt's API
+	<li>A new port <tt>misc/qt5-doc</tt> was added for Qt's API
 	  documentation, used by Qt Creator and other programs.</li>
 
 	<li>The base KDE4 ports were updated to 4.14.10.</li>
@@ -1831,7 +1844,6 @@
 	  <given>René</given>
 	  <common>Ladan</common>
 	</name>
-
 	<email>portmgr-secretary at FreeBSD.org</email>
       </person>
 
@@ -1869,7 +1881,7 @@
 	made.</p>
 
       <p>A lot of work was done on modernizing the infrastructure of
-	the Ports Tree, by introducing 6 new <tt>USES</tt>, one new
+	the Ports Tree, by introducing 6 new <tt>USES</tt> knobs, one new
 	keyword, and splitting out the larger targets of
 	<tt>bsd.port.mk</tt> into separate scripts.  There were a
 	total of 42 exp-runs to validate these and other
@@ -1889,7 +1901,7 @@
 	the package building infrastructure.</p>
 
       <p>During BSDCan, <tt>mat</tt> worked on various items,
-	including updating the Porter's Handbook, and  portmgr held a
+	including updating the Porter's Handbook, and portmgr held a
 	meeting to discuss various items.</p>
     </body>
   </project>
@@ -1927,7 +1939,7 @@
 	integrate with <tt>intrng</tt>.</p>
 
       <p>Busdma was updated to handle the cache.  The updated code
-	assumes the device is non-coherent by default, unless the
+	assumes that devices are non-coherent by default, unless the
 	device driver marks the DMA tag as coherent when creating it.
 	The generic and ThunderX PCIe drivers have been updated to
 	create coherent mappings when the device tree marks the
@@ -1935,37 +1947,37 @@
 	the sync operation where it was missing memory barriers.</p>
 
       <p>A number of issues with <tt>hwpmc</tt> have been fixed.  This
-	improves the stability of <tt>hwpmc</tt> on <tt>arm64</tt>
+	improves the stability of <tt>hwpmc</tt> on <tt>arm64</tt>,
 	with no known software issues.  There is a single known issue
-	which seems to be hardware-related, however further testing is
+	which seems to be hardware-related, however, further testing is
 	required.</p>
 
       <p><tt>NEW_PCIB</tt> has been enabled on <tt>arm64</tt>.  This
 	includes handling the <tt>PCI_RES_BUS</tt> resource type.</p>
 
-      <p>Old interfaces replaced before 11 have been removed from the
+      <p>Old interfaces replaced before &os;-11 have been removed from the
 	<tt>arm64</tt> kernel and libraries.  This includes support
 	for compatibility with <tt>libc</tt> from releases prior to
-	11.  The <tt>brk</tt> and <tt>sbrk</tt> functions have also
+	11.0.  The <tt>brk</tt> and <tt>sbrk</tt> functions have also
 	been removed.  This allows a workaround for these functions in
 	the <tt>arm64</tt> C runtime to be removed.</p>
 
       <p><tt>loader.efi</tt> has been updated to use an event timer to
-	implement its internal time function.  This is needed as many
-	UEFI implementations do not handle The <tt>GetTime</tt>
-	runtime service method.  This means <tt>loader.efi</tt> will
+	implement its internal time function.  This is needed, as many
+	UEFI implementations do not handle the <tt>GetTime</tt>
+	runtime service method.  This means that <tt>loader.efi</tt> will
 	now correctly count down before automatically booting.</p>
 
       <p>Initial support for the ARM Juno reference platform has been
 	added.  This hardware is common within ARM, and has been
 	useful for finding assumptions on cpuids.  Booting on the Juno
-	required fixing the kernel to remove the assumption it is
+	required fixing the kernel to remove the assumption that it is
 	booting from CPU zero.  This included assigning cpuids and
 	fixing assumptions within the <tt>GICv2</tt> driver that the
 	cpuid is the same as the <tt>GIC</tt> cpuid.  &os; can now
-	boot on the 4 Cortex-A53 CPUs.  Further investigation is
-	needed to track down why the boot fails when the 2 Cortex-A57
-	CPUs are enabled.</p>
+	boot on the 4 Cortex-A53 CPUs of the Juno board.
+	Further investigation is needed to track down why the boot
+	fails when the 2 Cortex-A57 CPUs are enabled.</p>
 
       <p>Initial work has started on booting &os; on the Pine64 and
 	Raspberry Pi 3 boards.  Both can boot to multiuser mode with


More information about the svn-doc-all mailing list