<?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 & 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 — <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 — including all on-board peripherals — 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; 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; 9.2-RELEASE process will begin July 6, 2013. Unless any critical issues arise, &os; 9.2-RELEASE is expected to be available late August or early September.</p> <p>Users tracking the &os; 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 — according to <a href="http://portscout.freebsd.org/kde@freebsd.org.html">PortScout</a> — <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ábor</given> <common>Kövesdá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 — 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ébastien</given> <common>Pé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>