<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE report PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Status Report//EN" "http://www.FreeBSD.org/XML/www/share/xml/statusreport.dtd" >
<!-- $FreeBSD$ -->
<report>
  <date>
    <month>April-June</month>

    <year>2013</year>
  </date>

  <section>
    <title>Introduction</title>

    <p>This report covers &os;-related projects between April and June
      2013.  This is the second of four reports planned for 2013.</p>

    <!-- XXX: theraven's part goes here -->

    <!-- XXX: keep updating the number of entries -->
    <p>Thanks to all the reporters for the excellent work!  This report
      contains 12 entries and we hope you enjoy reading it.</p>

    <!-- XXX: set date for the next set of submissions -->
    <p>The deadline for submissions covering between July and September 2013
      is not yet decided.</p>
  </section>

  <category>
    <name>team</name>

    <description>&os; Team Reports</description>
  </category>

  <category>
    <name>proj</name>

    <description>Projects</description>
  </category>

  <category>
    <name>kern</name>

    <description>Kernel</description>
  </category>

  <category>
    <name>arch</name>

    <description>Architectures</description>
  </category>

  <category>
    <name>bin</name>

    <description>Userland Programs</description>
  </category>

  <category>
    <name>ports</name>

    <description>Ports</description>
  </category>

  <category>
    <name>docs</name>

    <description>Documentation</description>
  </category>

  <project cat='proj'>
    <title>PC-BSD</title>

    <contact>
      <person>
	<name>
	  <given>Kris</given>
	  <common>Moore</common>
	</name>
	<email>kmoore@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.pcbsd.org">PC-BSD Home Page</url>
    </links>

    <body>
      <p>Progress on moving PC-BSD &amp; TrueOS to a "rolling release"
	is happening quickly.  We have implemented our own package
	repository, fully based on <tt>pkg(8)</tt>, which is updated twice
	monthly, and are now hosting dedicated
	<tt>freebsd-update(8)</tt> systems.  In addition to the
	<tt>9.1-RELEASE</tt> ISO images, we have begun to create a
	<tt>9-STABLE</tt> branch as well, using
	<tt>freebsd-update(8)</tt> to push out the latest world and
	kernel binaries on a monthly basis.</p>

      <p>We are currently working on an implementation of ZFS Boot
	Environments for desktops and servers.  These users to install
	updates or experimental versions in separate ZFS clones and
	select the one to run at boot time, providing an easy way of
	testing upgrades before deployment.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>Wireless Networking Improvements</title>

    <contact>
      <person>
	<name>
	  <given>Adrian</given>
	  <common>Chadd</common>
	</name>
	<email>adrian@FreeBSD.org</email>
      </person>
    </contact>

    <links/>

    <body>
      <p>Recently the &os; wireless networking stack has received
	updates in the following areas:</p>

      <ul>
	<li>Improved transmit locking in <tt>net80211(4)</tt> to
	  eliminate a whole class of subtle race conditions leading to
	  out-of-order packets being handed to the driver.</li>

	<li>Spectral scan (FFT) information is now available for the
	  AR9280, AR9285, AR9287 series NICs.</li>

	<li>Added support for AR93xx, AR94xx, AR95xx NICs &mdash;
	  <tt>hostap</tt>, <tt>adhoc</tt> and <tt>station</tt> modes
	  have been tested, including 3x3 stream support for the those
	  NICs where appropriate.</li>

	<li>Implemented ps-poll handling in <tt>hostap</tt> mode.  This
	  was required for correct behaviour with stations that implement
	  aggressive power save.</li>

	<li>Added AR933x SoC support &mdash; including all on-board
	  peripherals &mdash; the <tt>8devices.com</tt> Carambola-2
	  board is now fully supported and will run &os; from NOR
	  flash.</li>
      </ul>
    </body>
  </project>

  <project cat='arch'>
    <title>Intel IOMMU (VT-d, DMAR) Support</title>

    <contact>
      <person>
	<name>
	  <given>Konstantin</given>
	  <common>Belousov</common>
	</name>
	<email>kib@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html"/>
      <url href="http://lists.freebsd.org/pipermail/freebsd-arch/2013-May/014368.html"/>
      <url href="http://people.freebsd.org/~kib/misc/dmar.1.patch"/>
    </links>

    <body>
      <p>A VT-d driver was developed that implements the
	<tt>busdma(9)</tt> interface using the DMA Remap units (DMARs)
	found in current Intel chipsets.  The driver provides
	reliability and security improvements for the system by
	facilitating restricted access to main memory from busmastering
	devices.</p>

      <p>It also eliminates bounce buffering (copying) by allocating
	remapped regions that satisfy a device's access limitations.</p>

      <p>With additional work to define a suitable interface the VT-d
	driver will also provide PCI pass-through functionality for
	hypervisors.</p>

      <p>This project is sponsored by the &os; Foundation.</p>
    </body>

    <help>
      <task>Implement workarounds for chipset errata.</task>

      <task>Commit to HEAD after additional testing.</task>

      <task>Rebalance MSI/MSI-X using interrupt remapping unit, also
	required for x2APIC use on big machines.</task>

      <task>Integrate with the Intel GPU MMU and handle Ironlake and
	SandyBridge errata for the GFXVTd unit.</task>

      <task>Provide an interface for VMM (hypervisors).</task>

      <task>Consider implementing a driver for AMD's IOMMU.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>Multi-threaded Pagedaemon</title>

    <contact>
      <person>
	<name>
	  <given>Konstantin</given>
	  <common>Belousov</common>
	</name>
	<email>kib@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.freebsd.org/~kib/misc/pagedaemon-numa.1.patch"/>
    </links>

    <body>
      <p>This project aims to improve scalability of the virtual memory
	subsystem.  Based on a prototype change from Jeff Roberson,
	per-domain page queues and per-domain pagedaemon working threads
	have been implemented to enable this.  At the moment, the
	domains coincide with the NUMA proximity domains, but this is
	not neccessary and could be improved with further separation to
	allow more parallelism in the pagedaemon.</p>

      <p>The patch is relatively simple, with the most delicate parts
	being the page laundry and OOM logic, which requires coordination
	between all pagedaemon threads to prevent false triggering.</p>

      <p>Testing on diverse workloads and on real multi-socket machines
	is required.</p>

      <p>This project is sponsored by the &os; Foundation.</p>
    </body>

    <help>
      <task>Debug on multi-domain NUMA machine.</task>

      <task>Test, get review and commit.</task>
    </help>
  </project>

  <project cat='bin'>
    <title>HAST Module for <tt>bsnmpd(1)</tt></title>

    <contact>
      <person>
	<name>
	  <given>Mikolaj</given>
	  <common>Golub</common>
	</name>
	<email>trociny@FreeBSD.org</email>
      </person>
    </contact>

    <links/>

    <body>
      <p>HAST module for <tt>bsnmpd(1)</tt> has been committed to
	-CURRENT and merged to 8.x and 9.x -STABLE branches.  The module
	allows to monitor and manage HAST via the SNMP protocol.</p>
    </body>
  </project>

  <project cat='team'>
    <title>&os; Release Engineering Team</title>

    <contact>
      <person>
	<name>&os; Release Engineering Team</name>
	<email>re@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freebsd.org/releases/8.4R/errata.html"/>
      <url href="http://www.freebsd.org/releases/9.2R/schedule.html"/>
    </links>

    <body>
      <p>The &os;&nbsp;8.4-RELEASE cycle completed on June 7, 2013,
	approximately two months behind the original schedule.  Please
	be sure to read the Errata Notices for any post-release issues
	discovered after 8.4-RELEASE.</p>

      <p>The &os;&nbsp;9.2-RELEASE process will begin July 6, 2013.
	Unless any critical issues arise, &os;&nbsp;9.2-RELEASE is
	expected to be available late August or early September.</p>

      <p>Users tracking the &os;&nbsp;9.<i>X</i> branch are encouraged
	to test the -BETA and -RC builds whenever possible, and provide
	feedback and report issues to the <a
	  href="http://lists.freebsd.org/pipermail/freebsd-stable">freebsd-stable
	  mailing list</a>.</p>
    </body>
  </project>

  <project cat='proj'>
    <title>Virtual Private Systems</title>

    <contact>
      <person>
	<name>
	  <given>Klaus</given>
	  <common>Ohrhallinger</common>
	</name>
	<email>k@7he.at</email>
      </person>
    </contact>

    <links>
      <url href="http://www.7he.at/freebsd/vps/"/>
      <url href="http://svnweb.freebsd.org/base/projects/vps/"/>
    </links>

    <body>
      <p>VPS for &os; is an OS-level based virtualization implementation
	that supports advanced features like live migration.  It has
	been recently imported into the Project's Subversion repository
	as a project branch.  The code is currently of alpha
	quality.</p>
    </body>

    <help>
      <task>Test with many different guest setups/applications.  All
	feedback is highly appreciated.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>KDE/&os;</title>

    <contact>
      <person>
	<name>
	  <given>KDE</given>
	  <common>&os;</common>
	</name>
	<email>kde@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://FreeBSD.kde.org">KDE/&os; home page</url>
      <url href="http://FreeBSD.kde.org/area51.php">area51</url>
    </links>

    <body>
      <p>The KDE/&os; Team have continued to improve the experience of
	KDE software and Qt under &os;.  During this quarter, the team
	has kept most of the KDE and Qt ports up-to-date, working on the
	following releases:</p>

      <ul>
	<li>KDE SC: 4.10.2, 4.10.3, 4.10.4</li>
	<li>Qt: 5.0.2 (area51)</li>
	<li>PyQt: 4.10.2; QScintilla 2.7.2; SIP: 4.14.7</li>
	<li>KDevelop: 4.5.1</li>
	<li>Calligra: 2.6.2</li>
	<li>CMake: 2.8.11.1</li>
	<li>Digikam (and KIPI-plugins): 3.1.0, 3.2.0 </li>
	<li>KDE Telepathy: 0.6.0, 0.6.1</li>
      </ul>

      <p>As a result &mdash; according to <a
	  href="http://portscout.freebsd.org/kde@freebsd.org.html">PortScout</a>
	&mdash; <tt>kde@</tt> has 473 ports (up from 431), of which
	98.73% are up-to-date (up from 93.5%).  iXsystems Inc.
	continues to provided a machine for the team to build packages
	and to test updates.  iXsystems Inc. has been providing the
	KDE/&os; Team with support for quite a long time and we are very
	grateful for that.  This quarter, we would also like to thank
	Steve Wills (<tt>swills@</tt>) for providing access to another
	machine so that we can do our work even faster.</p>

      <p>While a great deal of the team's efforts are focused towards
	packaging released code, we also take a proactive stand in
	making sure future versions of the software we port is also
	going to work well on &os;.  This involves being in close
	contact with upstream, raising awareness of &os; as an active
	project and also sending actual patches that most of the time
	benefit many other operating systems besides &os; itself.  In
	this regard, we have been dedicating a lot of time making sure
	both <tt>clang</tt> and <tt>libc++</tt> are fully supported in
	KDE and Qt.  Not only has this resulted in many patches being
	sent to these projects, but the exposure to these large code
	bases have been beneficial to the Clang-on-&os; project as well.
	Dimitry Andric (<tt>dim@</tt>) has been of great help as a point
	of contact for all the issues we have faced.</p>

      <p>As usual, the team is always looking for more testers and
	porters so please contact us and visit our home page.  It would
	be especially useful to have more helping hands on tasks such as
	getting rid of the dependency on the defunct HAL project and
	providing integration with KDE's Bluedevil Bluetooth
	interface.</p>
    </body>

    <help>
      <task>Update out-of-date ports, see <a
	  href="http://portscout.freebsd.org/kde@freebsd.org.html">PortScout</a>
	for a list.</task>
      <task>Work on KDE 4.11 and Qt 5.</task>
      <task>Make sure the whole KDE stack (including Qt) builds and works
	correctly with <tt>clang</tt> and <tt>libc++</tt>.</task>
      <task>Remove the dependency on HAL.</task>
    </help>
  </project>

  <project cat='docs'>
    <title>Upgrading the Documentation Set to DocBook 5.0</title>

    <contact>
      <person>
	<name>
	  <given>G&aacute;bor</given>
	  <common>K&ouml;vesd&aacute;n</common>
	</name>
	<email>gabor@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>The Documentation Project has been using old versions of markup
	standards until recently when we switched to a real XML
	toolchain and DocBook 4.5.  However, we still depend on obsolete
	technologies &mdash; DSSSL and Jade.  Besides, DocBook 5.0
	provides cleaner markup and some nice new features.</p>

      <p>The objective of this project is to upgrade the documentation
	set to DocBook 5.0 and to find a way to properly render our
	sources without using DSSSL, since the DSSSL stylesheets are
	discontinued and cannot render DocBook 5.0.  The documentation
	sources have already been successfully transformed to DocBook
	5.0 and updates to the rendering process are under
	development.  The common opinion among &os; developers is that
	Java is a heavy dependency that should be avoided.  This has
	suggested the transformation of DocBook sources to TeX and use
	TeX as a rendering backend.  There are two ways to do this; the
	sources can be transformed either directly or through the XSL FO
	output generated by the stylesheets provided for the DocBook Project.
	The latter approach has been chosen as a preferred
	way since it better fits the existing documentation
	infrastructure and provides easier customization.</p>

      <p>This project is generously funded by The &os; Foundation.</p>
    </body>

    <help>
      <task>Finish the implementation of the rendering process.</task>

      <task>Integrate the rendering solution into the
	infrastructure.</task>

      <task>Merge back changes to <tt>head</tt>.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>AMD GPU Kernel Mode-setting Support</title>

    <contact>
      <person>
	<name>
	  <given>Jean-S&eacute;bastien</given>
	  <common>P&eacute;dron</common>
	</name>
	<email>dumbbell@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Konstantin</given>
	  <common>Belousov</common>
	</name>
	<email>kib@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url
	href="https://wiki.freebsd.org/AMD_GPU">Project status on the wiki</url>
    </links>

    <body>
      <p>Due to non-&os;-related activities from April to end of June,
	the project progressed slowly:</p>

      <ul>
	<li>Some important problems in TTM were fixed and several others
	  are being worked out.  Applications affected by these bugs are
	  non-linear video editing software (which do not use Xv to
	  preview the video) or "screen" of VirtualBox, for
	  instance.</li>

	<li>Regarding the locking issue with OpenGL, no work has been
	  done yet.  <tt>glxgears</tt> works but some modern desktop
	  environments or WebGL demos hang.  Once TTM bugs described
	  above are fixed, this is the next target.</li>

	<li>Patches to Mesa to make it build out-of-the-box were
	  submitted upstream.  As of writing, some were committed but
	  not all of them.  Additionally, as result of a joint work with
	  Jonathan Gray (of OpenBSD), Mesa should work on &os;, OpenBSD,
	  and hopefully on other BSD flavors without additional
	  patches.</li>
      </ul>

	<p>Several users tested the driver.  Andriy Gapon, Jonathan
	  Gray, and Mark Kettenis (of OpenBSD) submitted patches.  kyzh
	  kindly donated several discrete cards from different series.
	  A big thanks to all those contributors!</p>

	<p>The driver is still not stable enough for a wider call for
	  testers.</p>
    </body>

    <help>
      <task>Write instructions for the wiki to explain how to test the
	driver.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>Realtek RTL8188CU/RTL8192CU USB Wireless Driver</title>

    <contact>
      <person>
	<name>
	  <given>Rui</given>
	  <common>Paulo</common>
	</name>
	<email>rpaulo@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>The <tt>urtwn(4)</tt> driver was imported from OpenBSD.  This
	is a driver for very small Realtek USB WiFi cards which are pretty
	inexpensive and can do 802.11n at the maximum theoretical speed
	of 150 Mbps.  They make a good addition to embedded systems such
	as the Raspberry Pi and the BeagleBone.  The driver requires
	firmware that is available in the &os; Ports Collection
	(<tt>net/urtwn-firmware-kmod</tt>).  Note that 802.11n is not
	yet supported.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>ZFS TRIM and Enhanced <tt>BIO_DELETE</tt> Support</title>

    <contact>
      <person>
	<name>
	  <given>Pawel Jakub</given>
	  <common>Dawidek</common>
	</name>
	<email>pjd@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Steven</given>
	  <common>Hartland</common>
	</name>
	<email>smh@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>As of the end of June, &os;'s ZFS implementation now includes
	TRIM support in <tt>head</tt>, <tt>stable/9</tt>, and
	<tt>stable/8</tt> branches.  This allows ZFS to help maintain
	high performance on flash-based devices such as SSD's even under
	high-load conditions.</p>

      <p>When creating new pools and adding new devices to existing
	pools it first performs a full-device level TRIM to help ensure
	optimum starting performance.  This behaviour can be overridden
	by setting the <tt>vfs.zfs.vdev.trim_on_init</tt> sysctl
	variable to <tt>0</tt> if for example the disks are new or have
	already been secure erased, which can also now be done using
	<tt>camcontrol(8)</tt> security actions.</p>

      <p>In order to support TRIM, the kernel requires the underlying
	device driver supports <tt>BIO_DELETE</tt>.  This is currently
	mapped through to hardware methods such as ATA TRIM and SCSI
	UNMAP, which are commonly supported by SSDs via CAM.</p>

      <p>In order to increase the supported hardware base, CAM's SCSI
	layer was also enhanced to allow ATA TRIM via SATL ATA
	Passthrough to be used in addition to the existing UNMAP and WS
	methods.  This allows SATA disks attached to SCSI controllers
	with CAM based drivers such as <tt>mps(4)</tt> and
	<tt>mpt(4)</tt> to provide delete support.</p>

      <p>Stats for ZFS TRIM can be monitored by looking at the sysctl
	variables under <tt>kstat.zfs.misc.zio_trim</tt> in addition to
	live GEOM delete stats via the <tt>gstat -d</tt> command.</p>

      <p>This project was sponsored by <a
	  href="http://www.multiplay.com">Multiplay</a> and implemented by
	Pawel Jakub Dawidek.</p>
    </body>
  </project>
</report>