FreeBSD Quarterly Status Report - Third Quarter 2014

Benjamin Kaduk bjk at
Tue Oct 14 21:59:11 UTC 2014

Hash: SHA512

FreeBSD Project Quarterly Status Report: July - September 2014

   This report covers FreeBSD-related projects between July and September
   2014. This is the third of four reports planned for 2014.

   The third quarter of 2014 was another productive quarter for the
   FreeBSD project. A lot of work has been done on various ARM platforms,
   with the goal of bringing them to Tier 1 status in FreeBSD 11. The
   various ports teams have also worked hard to improve the state of
   FreeBSD as a desktop operating system. As usual, performance
   improvements feature in several places in this report and many of these
   can benefit from user benchmarking to validate our results.

   Thanks to all the reporters for the excellent work!

   The deadline for submissions covering the period from October to
   December 2014 is January 7th, 2015.

FreeBSD Team Reports

     * FreeBSD Cluster Administration Team
     * FreeBSD Release Engineering Team
     * Ports Collection
     * The FreeBSD Core Team


     * Address Space Layout Randomization (ASLR)
     * amd64 Xen Paravirtualization
     * bhyve
     * Chelsio iSCSI Offload Support
     * Debian GNU/kFreeBSD
     * FreeBSD Preseed Installation (PXE)
     * Jenkins Continuous Integration for FreeBSD
     * New Automounter
     * QEMU bsd-user-Enabled Ports Building
     * VMWare VAAI and Microsoft ODX Acceleration in CTL
     * ZFSguru


     * Intel GPU Driver Update
     * SDIO Driver
     * UEFI Boot
     * Updated vt(4) System Console
     * Updating OpenCrypto


     * FreeBSD on Newer ARM Boards
     * FreeBSD/arm64

Userland Programs

     * LLDB Debugger Port
     * LLVM Address Sanitizer (Asan)
     * SSE Variants of libc Routines for amd64


     * FreeBSD Python Ports
     * GNOME/FreeBSD
     * KDE on FreeBSD
     * The Graphics Stack on FreeBSD
     * Xfce


     * Handbook ezjail Section
     * Michael Lucas Books
     * ZFS Chapter of the Handbook


     * The FreeBSD Foundation

FreeBSD Cluster Administration Team

   Contact: FreeBSD Cluster Administration Team <clusteradm@>

   The FreeBSD Cluster Administration Team consists of the people
   responsible for administering the machines that the project relies on
   for its distributed work and communications to be synchronised. In this
   quarter, the team has worked on:
     * Implemented a central, FreeBSD cluster-specific package building
       node using ports-mgmt/poudriere-devel, providing a single
       consistent set of third-party binary packages throughout the
       FreeBSD cluster from a common, known-working configuration.
     * Converted all machines running in the FreeBSD cluster from
       individual (and sometimes different) userland and kernel
       configurations to a single configuration for the base system. This
       enabled the implementation of a binary update
       mechanism currently deployed throughout the cluster.

   This project is sponsored by The FreeBSD Foundation .

FreeBSD Release Engineering Team


   Contact: FreeBSD Release Engineering Team <re at>

   The FreeBSD Release Engineering Team is responsible for setting and
   publishing release schedules for official project releases of FreeBSD,
   announcing code freezes and maintaining the respective branches, among
   other things.

   In mid-July, FreeBSD 9.3-RELEASE was released without delay in release

   In late August, the FreeBSD 10.1-RELEASE cycle began, and as of this
   writing, is expected to stay on schedule.

   Work to produce virtual machine images as part of the release cycle has
   continued, supporting various cloud services such as Microsoft Azure,
   Amazon EC2, and Google Compute Engine.

   This project is sponsored by The FreeBSD Foundation .

Ports Collection


   Contact: Frederic Culot <portmgr-secretary at>
   Contact: Port Management Team <portmgr at>

   As of the end of Q3, the ports tree holds a bit more than 24,000 ports,
   and the PR count is below 1,400. Despite the summer holidays the tree
   saw sustained activity with more than 9,000 commits and almost 2,000
   ports PRs closed!

   In Q3, five new developers were granted a ports commit bit. None were
   taken in for safekeeping.

   On the management side, tabthorpe@ decided to step down from his
   portmgr duties in July. No other changes were made to the team during

   This quarter also saw the release of the third quarterly branch, namely

   On the QA side, 34 exp-runs were performed to validate sensitive
   updates or cleanups.

   Last, the 20th anniversary of the ports tree was commemorated during Q3
   and a video was published for this event.

Open tasks:

    1. Tremendous work was done on the PR front in Q3 and we would be very
       pleased to see committers dedicate themselves to closing as many as
       possible in Q4 as well.

The FreeBSD Core Team

   Contact: FreeBSD Core Team <core at>

   The FreeBSD Core Team constitutes the project's "Board of Directors",
   responsible for deciding the project's overall goals and direction as
   well as managing specific areas of the FreeBSD project landscape.

   The third quarter of this year was a relatively quiet time in terms of
   Core Team activity. No major policy changes were decided, but the
   criterea for awarding commit bits were reviewed and the existing
   requirements were clarified and documented atłproposing-committers.html.

   Other items dealt with by core during this period:
     * Confirmed with Microsoft that it is permissible to include DCTCP in
     * Promoted out of beta-test to an official
       service, consequently renaming it to
     * Mediated between groups of contributors and committers adopting
       different positions on the on-going work to introduce ASLR and
       associated technologies.
     * Worked with the FreeBSD Foundation to obtain a license for XenForo,
       and with the forum administrators on plans to migrate the FreeBSD
       forums onto the FreeBSD cluster and to switch to XenForo.

   During this period, three commit bits were granted, and two commit bits
   were taken in for safe keeping.

Address Space Layout Randomization (ASLR)


   Contact: Shawn Webb <shawn.webb at>
   Contact: Oliver Pinter <oliver.pinter at>

   Address Space Layout Randomization (ASLR) is a computer security
   technique that aids in mitigating low-level vulnerabilities such as
   buffer overflows. ASLR randomizes the memory layout of running
   applications, to prevent an attacker from knowing where a given
   exploitable vulnerability lies in memory.

   A lot has happened in the last few months. Shawn Webb gave
   presentations at both BSDCan 2014 and EuroBSDCon 2014. The
   presentations were met with a lot of support and backing. At the end of
   EuroBSDCon Ilya Bakulin fixed the known bug with ASLR on ARM systems.
   Shawn Webb and Oliver Pinter have submitted our patch to the
   Phabricator code review system. Shawn Webb added an API for allowing a
   debugger to disable ASLR to support deterministic debugging. Oliver
   Pinter enhanced the performance of our ASLR implementation. A package
   building exp-run was ran and came out favorably in terms of
   performance. Shawn Webb bumped up the maximum number of bits allowed to
   be randomized to 20 and set the default to 14.

   Shawn Webb and Oliver Pinter founded The HardenedBSD project to serve
   as a staging area for their work on security-related projects for

   This project is sponsored by SoldierX.

Open tasks:

    1. Get more people testing and reviewing our patch
    2. Run more performance tests
    3. Figure out why the two ports failed in the EXP-RUN. Involve the
       port maintainers.
    4. Test on different architectures (we need help with this)

amd64 Xen Paravirtualization


   Contact: Cherry Mathew <cherry at>

   This project aims to add support to the FreeBSD kernel for running in
   Xen Paravirtualised mode on amd64 systems. This project has finally
   reached a "Proof of Concept" stage on the branch projects/amd64_xen_pv.

   Testing and bug reports on various configurations is encouraged! The
   author is also seeking bounties to help complete the effort and assess
   potential interest. Please send email if interested.

   PV kernels are still supported by most cloud providers for a range of
   configurations, although they are expected to be phased out in the

   This project is sponsored by Spectralogic Corporation (2012-2013) .

Open tasks:

    1. Large page support
    2. SMP support
    3. Debug and cleanup
    4. Security vetting
    5. Performance tweaks



   Contact: Peter Grehan <grehan at>
   Contact: Neel Natu <neel at>
   Contact: John Baldwin <jhb at>
   Contact: Tycho Nightingale <tychon at>
   Contact: Allan Jude <freebsd at>

   bhyve is a hypervisor that runs on the FreeBSD/amd64 platform. At
   present, it runs FreeBSD (8.x or later), Linux i386/x64, OpenBSD
   i386/amd64, and NetBSD/amd64 guests. Current development is focused on
   enabling additional guest operating systems and implementing features
   found in other hypervisors.

   A significant amount of progress has been made since the last status
   report. Most importantly, all of this work has been MFCed to the
   10-STABLE branch and will be included in the 10.1 release.

   Support for AMD processors is being developed in the bhyve_svm SVN
   project branch. The branch is almost at feature-parity with mainline
   Intel VT-x support, and will be committed into -CURRENT in the near

   New features added this quarter:
     * Guest support for recent Linux i386/x64, OpenBSD i386/amd64, and
       NetBSD amd64.
     * Force guest reset and poweroff with bhyvectl
     * Allow the SMBIOS UUID to be set from the command line
     * PCI MMIO extended config space access
     * Improved AHCI error handling, legacy interrupt mode
     * Additional instruction emulation required by a number of guests
     * Legacy x86 task switching to support double-faults in FreeBSD/i386
     * Legacy PCI interrupts, operation without an APIC (OpenBSD install)
     * Guest memory not included by default in core dumps
     * Allow guest vCPUs to be pinned to individual host CPUs
     * Virtio RNG device emulation
     * Chapter about bhyve added to FreeBSD Handbook

Open tasks:

    1. Improve documentation
    2. CSM BIOS boot support for non UEFI-aware guests
    3. Add support for virtio-scsi
    4. Improve virtio-net, add offload features, support multiple queues
    5. Implement Intel 82580 and e1000 NIC emulation
    6. Netmap support
    7. Flexible networking backend: wanproxy, vhost-net
    8. Move to a single process model, instead of bhyveload and bhyve
    9. Support running bhyve as non-root
   10. Add filters for popular VM file formats (VMDK, VHD, QCOW2)
   11. Implement an abstraction layer for video (no X11 or SDL in base
   12. Support for VNC as a video output
   13. Suspend/resume support
   14. Live Migration
   15. Nested VT-x support (bhyve in bhyve)
   16. Support for other architectures (ARM, MIPS, PPC)

Chelsio iSCSI Offload Support

   Contact: Sreenivasa Honnur <shonnur at>
   Contact: Edward Tomasz Napierała <trasz at>

   Building on the new in-kernel iSCSI target and initiator stack released
   in FreeBSD 10.0, Chelsio Communications has begun developing an offload
   interface to take advantage of the hardware offload capabilities of
   Chelsio T4 and T5 10 and 40 gigabit Ethernet adapters.

   The code implements hardware PDU offload for both target and initiator.
   The iSCSI stack has been modified to provide a hardware-independent
   offload API, allowing offload drivers to be loaded as kernel modules,
   and to provide mechanisms for the system administrator to configure
   this feature. The project is entering a testing phase. The code will be
   released under the BSD license and is expected to be completed later in
   the year and ship in FreeBSD 10.2-RELEASE.

   This project is sponsored by Chelsio Communications , and The FreeBSD
   Foundation .

Open tasks:

    1. Complete testing

Debian GNU/kFreeBSD


   Contact: Debian GNU/kFreeBSD Maintainers <debian-bsd at>

   Debian GNU/kFreeBSD is a software distribution produced by Debian,
   based on the kernel of FreeBSD (instead of Linux) and GNU libc. Around
   90% of Debian's software archive has now been ported to it, for amd64
   and i386 architectures. It was first released with Debian "squeeze" as
   a development preview in 2011, featured again in the "wheezy" release,
   and hopes to be part of the official Debian "jessie" release in early

   In 2003 there were several attempts to bootstrap a minimal Debian
   system upon FreeBSD or NetBSD kernels, some also trying to use the
   native BSD libc. The most successful and longest-lived of these was a
   "GNU/FreeBSD" chroot bootstrapped by Robert Millan with the GNU libc
   that most of Debian's core packages were designed to work with. The "k"
   was later added to the name to reflect that it takes just the kernel
   from FreeBSD, with most everything else from the Debian archive. We do
   also package some FreeBSD utilities as needed to boot it and take
   advantage of certain features.

   FreeBSD support within GNU libc is now mostly maintained by Petr
   Salinger, who recently converted it from an older threading
   implementation based on LinuxThreads to NPTL, which is much more
   compatible with the software we run. We have the GNU compiler toolchain
   as well as Clang 3.4; Perl, Python and Ruby; and OpenJDK 7, based the
   on work done in FreeBSD's own ports collection. We use linprocfs for
   /proc because much of Debian GNU software expects this. The Linuxulator
   is not needed at all, but could make for interesting future uses.
   Porting work mostly focuses now on individual packages' build systems,
   on preprocessor #ifdefs that do not clearly distinguish between kernel
   and libc, or fixing testsuites' presumptions of Linux-specific
   behaviour. In the course of this, we even found the odd FreeBSD kernel
   bug, including EN-14:06 / CVE-2014-3880.

   GNU/kFreeBSD has already seen production use, mostly on webservers,
   email servers and file servers; one such machine has 475 days' uptime
   receiving around 10,000 emails per day. It has become increasingly
   practical for desktop/laptop uses thanks largely to new features coming
   in from FreeBSD 10.1.

   KMS graphics mean that 3D gaming and high-definition video playback
   perform brilliantly. We have great support for Intel graphics chipsets,
   but only an older nvidia Xorg driver. For radeonkms, Robert Millan was
   able to add firmware-loading support so that non-free binary blobs can
   be packaged separately, outside of Debian's main archive. Proprietary
   drivers are not useful to us as they would need to be rebuilt from
   source to port them.

   vt(4) was necessary for KMS to not break VT switching. But it has also
   improved the console's handling of non-ASCII character sets and we do
   look forward to having console fonts for non-Latin scripts.

   We have supported ZFS for some time, even as a root/boot filesystem
   (using GRUB 2; Robert Millan added the ZFS support which now FreeBSD
   itself is able to benefit from). Enhancements coming from OpenZFS,
   especially LZ4 compression, in combination with better memory
   management and GEOM improvements, mean that "jessie" should see a
   noticeable performance boost.

   debian-installer already allows for pre-seeded, unattended installs and
   there are PXE-bootable install images available.

   virtio drivers are new to the "jessie" release, enabling support for
   some public clouds. We are now compiling Xen domU and PVHVM support
   into our standard kernel builds.

   We already have userland tools to configure the PF firewall. As an
   experiment, we are compiling in IPSEC support by default for the
   upcoming release, and would like to see it put to good use against
   present-day privacy and security threats.

   We try to support the use of Debian GNU/kFreeBSD inside a jail on a
   FreeBSD host system, and hopefully vice-versa. Some of the jail
   utilities are not yet packaged, but we have documentation on the Debian
   Wiki on how to set up jails on "wheezy", which are fully functional.

   The init system we currently use is a parallel System V-style init,
   although Debian GNU/Linux will be switching away from that to systemd.
   For the next release we may switch to OpenRC, which is mostly ported

   Not having systemd or udev means that we will be unable to support
   GNOME 3.14 in the upcoming release. We have very good support for XFCE,
   also have KDE, LXDE and the recently-packaged MATE desktop environment.
   The Debian software archive provides many alternative window managers
   for Xorg such as IceWM, dozens of terminal emulators, and so on.

   As we approach the freeze of the Debian "jessie" release, we would love
   for anyone to test GNU/kFreeBSD, try to use it for whatever would be
   useful to you, and let us know what issues you run into. Ask for help
   on our project mailing list or IRC channel, and let us know of any bugs
   you find. We still have time to fix problems before release, and we
   would be happy to improve our documentation at any time.

FreeBSD Preseed Installation (PXE)


   Contact: Kamil Czekirda <kczekirda at>

   This is a Google Summer of code project to provide a noninteractive
   FreeBSD installation process from the network. In the first part, an
   implementation was added for scripted bsdinstall(8). It supports
   ROOTPWHASH, and USERS. Network configuration, ZFS options, and others
   are also included.

   The second part of the project is about booting the fai (Fully
   Automatic Installer) from the network by PXE. An installer distro was
   created based on mfsBSD. After boot, fai looks for the "bootfile-name"
   parameter from the DHCP server. This parameter tells fai where the
   bsdinstall script is located. fai supports MAC-based configuration, or
   a default if a MAC-based configuration file does not exist.

   This project is sponsored by Google Summer of Code 2014 .

Open tasks:

    1. Documentation, including a HOWTO and handbook
    2. More tests in different configurations
    3. Support for more than one network interface is planned

Jenkins Continuous Integration for FreeBSD


   Contact: Craig Rodrigues <rodrigc at>
   Contact: Jenkins Administrators <jenkins-admin at>
   Contact: FreeBSD Testing <freebsd-testing at>

   In May, Craig Rodrigues led a working group Continuous Integration and
   Testing with Jenkins for FreeBSD at the FreeBSD Devsummit in Ottawa.
   Craig Rodrigues also gave a Jenkins presentation at BSDCan.

   At BSDCan, Craig Rodrigues had some discussions with Julio Merino about
   how to better integrate FreeBSD testing efforts with Jenkins and kyua.
   As a result of this discussion, Julio Merino enhanced the kyua testing
   framework with a kyua report-junit command. This command takes kyua
   test results and outputs a test report in JUnit XML format. Jenkins can
   directly import JUnit XML test results and display them nicely.

   In June, Craig Rodrigues was interviewed for episode 44 of BSD Now. The
   interview covered Jenkins and Continuous Integration in the FreeBSD

   In July, Craig Rodrigues gave a presentation to the Bay Area FreeBSD
   Users Group (BAFUG), Libvirt and bhyve, based on experience he had with
   those technologies when used with Jenkins.

   Li-Wen Hsu set up a Jenkins job to run the LLVM scan-build tool to
   perform static analysis of the FreeBSD code, and make the results
   availalble at

   Steve Wills modified the Jenkins job which builds pkg(8) to use the
   kyua report-junit command to integrate pkg(8) test results in Jenkins.

   Anthony Williams reported that the version of the Java Native Access
   (JNA) library bundled with Jenkins has problems on FreeBSD. This causes
   problems with Jenkins using libpam and other plugins that use JNA.
   Craig filed JENKINS-24521 against Jenkins. Craig submitted patches to
   Jenkins to update Jenkins to use JNA 4.1.0, which has fixes for

   Craig Rodrigues worked on automatically running the tests in the
   FreeBSD /usr/tests directory under Jenkins using the kyua test
   framework. Craig Rodrigues provided feedback to Julio Merino about kyua
   and Julio Merino incorporated some of the feedback as bugfixes and
   feature enhancements to kyua. Craig Rodrigues committed some fixes to
   FreeBSD to eliminate some test failures. One of the tests still results
   in a crash in byacc. This is being tracked in PR 193499. Thomas E.
   Dickey (byacc maintainer) submitted a patch to fix the problem, and
   this has been committed to FreeBSD.

   Craig Rodrigues analyzed the cause of some startup errors in Jenkins
   when opening a multicast socket. He had some discussion with Bruce M.
   Simpson captured in PR 193246. The Java JDK depends on functionality in
   Solaris where it is possible to open an IPv4 multicast socket, but with
   an IPv4 multicast address mapped to an IPv6 address. On Linux, there
   are modifications to the JDK itself to work around this. Bruce M.
   Simpson said that the work to make the FreeBSD IPv6 stack behave like
   Solaris would require some work.

   Craig Rodrigues started writing a Kyua Quickstart Guide. This guide is
   meant to help new kyua users who want to write tests and run them under
   kyua. Craig Rodrigues is seeking feedback to help improve this guide.

Open tasks:

    1. Upstream more fixes to Jenkins for FreeBSD, such as JNA fixes.
    2. Automate the build of /usr/tests.
    3. Set up more builds based on examples from the existing FreeBSD
    4. Get feedback for improving the Kyua Quickstart Guide.
    5. We need more people to join us on freebsd-testing at and
       help out. We especially need people with devops and scripting
       experience to help us set up more builds and tests. We would also
       like to integrate with other parts of the project, such as

New Automounter


   Contact: Edward Tomasz Napierała <trasz at>

   Limitations of the current automounter, amd(8), are a recurring problem
   reported by many FreeBSD users. A new automounter is being developed to
   address these concerns.

   The automounter is a cleanroom implementation of functionality
   available in most other Unix systems, using proper kernel support
   implemented via an autofs filesystem. The automounter supports a
   standard map format, and will integrate with the Lightweight Directory
   Access Protocol (LDAP) service.

   The FreeBSD Foundation worked with enterprise and university users to
   test the new automounter in existing LDAP-based environments, including
   some with thousands of map entries.

   The code is now ready to use. It has been committed to 11-CURRENT and
   10-STABLE, and will ship as part of 10.1-RELEASE. There is ongoing work
   on improving performance and fixing possible bugs.

   This project is sponsored by The FreeBSD Foundation .

QEMU bsd-user-Enabled Ports Building


   Contact: Sean Bruno <sbruno at>
   Contact: Juergen Lock <nox at>
   Contact: Stacey Son <sson at>

   FreeBSD packages for the Tier-1 i386 and amd64 CPU architectures are
   built by a single very high-performance machine. Other architectures
   lack equivalent hardware, and we began experimenting with QEMU's
   user-mode emulation to cross-build packages from an amd64 builder.

   We have moved from just being able to produce packages to providing a
   stable repo of packages for ARMv6.

   ports-mgmt/poudriere-devel is still the current method for building
   packages. See the previous status report for explanations and details
   on methods.

VMWare VAAI and Microsoft ODX Acceleration in CTL

   Contact: Alexander Motin <mav at>

   The CAM Target Layer (CTL), used as base for the kernel iSCSI server,
   got support for VMWare VAAI and Microsoft ODX storage acceleration. It
   permits avoiding network bottlenecks and improves storage efficiency on
   sets of large operations, such as virtual machine (or large file)
   creation, initialization to zeros, copy, delete, etc..

   VMWare VAAI includes support for these primitives/SCSI commands: Atomic
   Test and Set (ATS) -- COMPARE AND WRITE command; Extended Copy (Clone)
   -- SPC-3 subset of XCOPY commands; Write Same (Zero) -- set of WRITE
   SAME commands; and Dead Space Reclamation (Delete) -- UNMAP command.

   Microsoft ODX includes support for these SCSI commands: POPULATE

   All XCOPY operations are currently limited to one storage host. ODX
   operations are currently limited only to iSCSI disks. Accelerated
   inter-host copying or copying to/from files on Samba shares is not
   implemented and is handled by initiators in the legacy way.

   The code is committed to FreeBSD head and stable/10 branches, and will
   be present in FreeBSD 10.1 and FreeNAS / 9.3 releases.

   This project is sponsored by iXsystems, Inc. .

Open tasks:

    1. Full support for thin provisioning, including capacity usage
       reporting and threshold notifications.
    2. Inter-host XCOPY operations.



   Contact: Jason Edwards <sub.mesa at>

   ZFSguru is a multifunctional server appliance with a strong emphasis on
   storage. ZFSguru began as simple web-interface frontend to ZFS, but has
   since grown into a FreeBSD derivative with its own infrastructure. The
   scope of the project has also grown with the inclusion of add-on
   packages that add functionality beyond the traditional NAS
   functionality found in similar product like FreeNAS and NAS4Free.
   ZFSguru aims to be a true multifunctional server appliance that is
   extremely easy to set up and can unite both novice and more experienced
   users in a single user interface. The modular nature of the project
   combats the danger of bloat, whilst still allowing extended
   functionality to be easily deployed.

   The development work in Q3 focused heavily on the new build
   infrastructure. This allows the ZFSguru project to release new system
   images together with addon services at much higher frequency and with
   much less manual intervention. This should free up a lot of development
   time to be spent on the core of the project: the web interface.

   Furthermore, a new website and forum is being worked on, replacing the
   old-fashioned website that offers only limited functionality. The new
   website will be linked to the server database, providing real-time
   updates about the project.

   In addition, a new platform for collaborated development is in the
   works. A service addon has been created for the GitLab project, which
   is a drop-in replacement of the popular GitHub website. The choice was
   made to host our own solution and not rely on GitHub itself. In
   retrospect this appears to have been a good decision. The recent
   development where GitHub removed projects after DCMA-takedowns being
   sent is incompatible with the philosophy of free-flow-of-information,
   of which the ZFSguru project is a strong proponent. By hosting our own
   solution, we have avoided any dependency on third party projects.

   The next task will be to introduce a new remote database structure,
   dubbed GuruDB. This will speed up the web-interface as well as
   introduce Service Bulletins which address important notifications to
   our users, as well as announce new releases.

   After GuruDB, the Migration Manager is one of the last remaining
   features still missing in the web-interface. This functionality
   provides an easy way to upgrade the current system by performing a new
   clean installation, but migrate all relevant configuration to the new
   installation. It also allows users to 'backup' all system configuration
   in a single file to be stored on a different machine should things go

   A longer version of the 2014 development progress of the ZFSguru
   project and information specific to the newly-released 10.1-002 system
   image can be found in the Links section.

Intel GPU Driver Update


   Contact: Konstantin Belousov <kib at>

   The project to update the Intel graphics chipset driver (i915kms) to a
   recent snapshot of the Linux upstream code continues. A patch with a
   large chunk of updates has been made available to test for regressions
   against current functionality, but is not yet expected to provide
   working new functions. The GEM I/O ioctl code path has been modified to
   more closely resemble the Linux code structure (easing future imports).

   This project is sponsored by FreeBSD Foundation .

Open tasks:

    1. Fix any bugs reported against the latest versions of the patch.
    2. Make Haswell graphics work with Mesa.

SDIO Driver


   Contact: Ilya Bakulin <ilya at>

   SDIO is an interface designed as an extension of the existing SD card
   standard, allowing the connection of different peripherals to a host
   with a standard SD controller. Peripherals currently sold in the
   general market include WLAN/BT modules, cameras, fingerprint readers,
   and barcode scanners. SDIO is also used to connect some peripherals in
   products like Chromebooks and Wandboard.

   The current main focus of the project is to reimplement the existing
   MMC/SD stack using the CAM framework. This will allow utilizing the
   well-tested CAM locking model and debug features.

   The first version of the code was uploaded on Phabricator for review.
   The new stack is able to attach to the SD card and bring it to an
   operational state. The only supported SD controller driver is ti_sdhci
   which is used by the BeagleBone Black. Modifying other SDHCI-compliant
   drivers should not be a hard task.

Open tasks:

    1. At this point, feedback from kernel developers is really needed.
       This may be done in the form of code review. If the chosen way of
       implementing the CAM-aware MMC stack is considered correct, then
       adding code for interacting with SD cards (for example, setting the
       optimal transfer rates) will be the next task.
    2. Write a CAM peripheral driver that implements an interface to the
       FreeBSD disk(9). It will send MMC I/O commands using the MMC XPT
    3. Extending camcontrol(8) to make it possible to send MMC-specific
       commands directly to the MMC/SD card using pass(4) will greatly
       assist in developing new features for the stack.
    4. Modify the sdhci(4) driver to work with the new stack. This is
       required to work on the new stack using PC hardware, not only the
       BeagleBone Black.



   Contact: Ed Maste <emaste at>
   Contact: Nathan Whitehorn <nwhitehorn at>

   The Unified Extensible Firmware Interface, or UEFI, provides boot- and
   run-time services for x86 and other computers. For the x86 architecture
   it replaces the legacy BIOS. This project will adapt the FreeBSD loader
   and kernel boot process for compatibility with UEFI firmware, found on
   contemporary servers, desktops, and laptops.

   Over the last three months Ed and others refined the existing UEFI
   support and merged it to the stable/10 branch for the upcoming FreeBSD
   10.1 release.

   To avoid the risk of a regression, the standard FreeBSD 10.1 install
   images continue to use the existing partitioning scheme and support
   only legacy BIOS boot. Separate UEFI-enabled installer images will be
   included with 10.1.

   This project is sponsored by The FreeBSD Foundation.

Open tasks:

    1. Document manual installation, including dual-boot configurations.
    2. Implement boot1.efi for ZFS file systems.
    3. Add support for UEFI variables stored in non-volatile memory
    4. Debug boot failures with certain UEFI firmware implementations.
    5. Support secure boot.

Updated vt(4) System Console


   Contact: Aleksandr Rybalko <ray at>
   Contact: Ed Maste <emaste at>
   Contact: Ed Schouten <ed at>
   Contact: Jean-Sébastien Pédron <dumbbell at>
   Contact: Warren Block <wblock at>

   The vt(4) (aka Newcons) project provides a replacement for the legacy
   syscons system console. It brings a number of improvements, including
   better integration with graphics modes and broader character set

   A large number of improvements were committed to vt(4) over the last
   three months. Jean-Sébastien Pédron fixed significant performance
   regressions observed with vt_vga, particularly noticeable on virtual
   machines. Stefan Esser converted and cleaned up all of the keyboard map
   files for use with vt(4).

   The EFI framebuffer driver and the ofwfb driver now work with the
   xf86-video-scfb X11 video driver, supporting native-resolution (albeit
   unaccelerated) X.

   The fixes and improvements have all been merged and will be available
   in the upcoming FreeBSD 10.1 release.

Open tasks:

    1. Implement the remaining features supported by vidcontrol(1).
    2. Write manual pages for vt(4) drivers and kernel interfaces.
    3. Support direct handling of keyboards by the kbd device (without
    4. CJK fonts. This is in progress.
    5. Switch to vt(4) by default.
    6. Implement compatibility mode to be able to use single-byte
       charsets/key-codes in vt(4).

Updating OpenCrypto


   Contact: John-Mark Gurney <jmg at>

   The project adds support for the AES-GCM and AES-CTR cryptography modes
   to the OpenCrypto framework. Both software and AES-NI accelerated
   versions are now functional and working. Ermal Luçi (eri@) is working
   on adding support for these additional modes to IPsec.

   This project is sponsored by The FreeBSD Foundation , and Netgate .

Open tasks:

    1. Create a test suite for the most common modes.

FreeBSD on Newer ARM Boards


   Contact: Ganbold Tsagaankhuu <ganbold at>

   Work on initial support of the IFC6410 board, which was stopped due to
   a bricked bootloader, has been started again. This board has the
   Qualcomm Snapdragon S4 SoC, featuring the Krait CPU. This CPU is
   considered a "platform" for use in smartphones, tablets, and smartbook
   devices. Krait has many similarities with the ARM Cortex-A15 CPU and is
   also based on the ARMv7 instruction set. These peripherals are working:
     * Qualcomm High Speed UART driver for MSM 7000/8000 series chips
       (included in src tree)
     * Krait Timer

Open tasks:

    1. Get the MMC driver working. May need more help from experts.



   Contact: Andrew Turner <andrew at>

   Until recently, all ARM CPU designs were 32-bit only. With the
   introduction of the ARMv8 architecture, ARM has added a new 64-bit
   mode. This new mode has been named AArch64. Arm64 is the name of the
   in-progress port of FreeBSD to ARMv8 CPUs when in AArch64 mode.

   Since the last status report, FreeBSD has started to execute userland
   instructions. This includes implementing more of the needed kernel
   functions to handle creation of processes. Using clang to compile
   userland has found a few issues with the version in the base system.
   These issues are expected to be resolved when clang 3.5 is imported.

   Initial support for device drivers has been added. This includes the
   start of the bus_space functions and interrupt handling. This allowed
   the existing timer and interrupt controller drivers from armv6 to be
   used as these devices are similar. The FDT data is now being passed
   from the loader to the kernel using the standard mechanism.

   The pmap implementation has been changed to be based on the amd64 code.
   This fixes a number of issues with the old implementation.

Open tasks:

    1. Boot to multi-user mode
    2. Get dynamic libraries working
    3. Test on real hardware

LLDB Debugger Port


   Contact: Ed Maste <emaste at>

   LLDB is the debugger project associated with Clang/LLVM. It supports
   the Mac OS X, Linux, and FreeBSD platforms, with Windows support under
   development. It builds on existing components in the larger LLVM
   project, for example using Clang's expression parser and LLVM's

   Work over the last three months consisted mainly of maintenance,
   ensuring that the upstream FreeBSD port continues to build and that
   testsuite failures are promptly addressed.

   I plan to import a new LLDB snapshot after the base system Clang is
   updated to 3.5. Some upstream improvements that will be in that import
     * Ability to specify a count to thread step-* operations.
     * Ongoing AArch64 development.
     * Significant progress on the lldb-gdbserver debug stub.
     * I/O handling improvements.
     * A much faster C++ name demangler for most symbols.

   A proof-of-concept implementation of kernel debugging support for amd64
   was completed as part of Google Summer of Code. It is not ready to be
   committed, but will form the basis for upcoming kernel debugging

   This project is sponsored by DARP/AFRL, SRI International, and
   University of Cambridge.

Open tasks:

    1. Port remote debug stub (lldb-gdbserver) from Linux to FreeBSD.
    2. Add support for local and core file kernel debugging.
    3. Implement, fix or test support on all non-amd64 architectures.
    4. Verify cross-debugging.
    5. Investigate and fix test suite failures.
    6. Package LLDB as a port.
    7. Enable by default in the base system for working architectures.

LLVM Address Sanitizer (Asan)


   Contact: Viktor Kuzutov <vkutuzov at>

   The LLVM address sanitizer (Asan) is a fast memory error detector that
   can detect use-after-free errors and buffer overflows. It has been
   ported to FreeBSD. The mainline version of LLVM is known to pass all of
   the tests in the LLVM and Asan test suites without unexpected failures
   on FreeBSD 10.0.

   A buildbot running sanitizer tests under FreeBSD stable/10 has been
   established. See the Links section.

   To make it possible to run programs with sanitizer checks enabled on
   FreeBSD, a new sysctl named kern.proc_vmmap_skip_resident_count has
   been added. See the Links section. Running the address sanitizer checks
   on stable/10 requires this sysctl to be set to 1.

   A similar work is in progress to add FreeBSD support to the thread
   sanitizer (Tsan), which detects data races in parallel programs.

SSE Variants of libc Routines for amd64


   Contact: John Baldwin <jhb at>

   I have written SSE/AVX-optimized versions of a few libc routines for
   amd64. So far the list includes memcpy, memset, and strlen. For each
   routine I have written a simple regression test as well as performed
   some simple microbenchmarks on various AMD and Intel CPUs.

   The simplest routine is strlen which appears to be a general win in
   microbenchmarks. memcpy and memset have proven trickier as different
   variants can behave quite differently on different CPUs.

   At present, I do not yet have a patch relative to libc. Once I do, this
   will be suitable for more testing. I would like to see some real-world
   benchmarks that show measurable improvement before pushing any of this
   up into the tree.

Open tasks:

    1. Create a branch that holds a modified libc and is suitable for

FreeBSD Python Ports

   URL: irc://

   Contact: FreeBSD Python Team <python at>

   The FreeBSD Python team continued to improve the overall experience
   with Python-based software on FreeBSD.

   During the last quarter, the bits of the ports
   infrastructure were converted to the more modern USES format. Several
   options, such as support for easy_install, were deprecated or removed
   to make the infrastructure easier to maintain and less complex for port

   The Python ports were refactored and simplified to improve
   maintainability and to get rid of long-standing issues due to the
   previously complex and error-prone build process.

   The Python 2 branch was updated to Python 2.7.8 and setuptools to

   With the availability of pkg 1.3, installing Python packages and
   modules for different Python versions is now supported in the package
   management infrastructure. This allows us to remove the previously
   required port duplicates for Python 2 and Python 3.

Open tasks:

    1. Retire the Python 3 specific port duplicates
    2. Convert ports to the new USES syntax
    3. More tasks can be found on the team's wiki page (see Links).
    4. To get involved, interested people can say hello on IRC and let us
       know their areas of interest!



   Contact: FreeBSD GNOME Team <gnome at>

   GNOME is a desktop environment and graphical user interface that runs
   on top of a computer operating system. GNOME is part of the GNU Project
   and can be used with various Unix-like operating systems, including

   MATE is a fork of GNOME 2. The MATE ports were updated to the 1.8

   Cairo, the vector graphics library used by GNOME, has been updated to
   1.12. This allowed the merge of GNOME 3 to begin. We are currently
   doing test builds to find ports broken by the update and pruning ports
   that do not build any more because of incompatible updates.

   Gustau Perez started preliminary work on the next development version
   of GNOME in MC, to be ready for GNOME 3.15. We will skip 3.14 entirely.

Open tasks:

    1. Finish the GNOME 3.12 merge, and start tracking GNOME 3.15
       (development series).

KDE on FreeBSD


   Contact: KDE on FreeBSD team <kde at>

   The KDE on FreeBSD team focuses on packaging and making sure the
   experience of KDE and Qt on FreeBSD is as good as possible.

   First of all, we are happy to announce that Alonso Schaich, longtime
   contributor to our experimental area51 repositories, has become a ports
   committer, mentored by KDE on FreeBSD members Raphael Kubo da Costa
   (rakuco@) and Max Brazhnikov (makc@).

   During this quarter, the team has kept most of the KDE and Qt ports
   up-to-date, working on the following releases:
     * CMake 3.0.1 and 3.0.2
     * PyQt 4.11.1, SIP 4.16.2, QScintilla 2.8.3
     * DigiKam 4.2.0 (in area51)
     * KDE 4.13.3, 4.14.0 and 4.14.1 (in area51)
     * KDE Telepathy 0.8.0 (in area51)

   Additionally, work on updating the Qt5 ports to the 5.3 series has
   begun, and we intend to commit the updated ports in our experimental
   area51 repository to the ports tree in Q4.

Open tasks:

    1. Updating out-of-date ports, see the Links Portscout entry for a
    2. Committing all the updated ports we have been accumulating in our
       experimental repositories into the ports tree.

The Graphics Stack on FreeBSD


   Contact: FreeBSD Graphics team <x11 at>

   The newest graphics stack (that is, the set of ports conditional on the
   WITH_NEW_XORG knob) was enabled on all architectures. The only
   regression is for users of Intel GPUs and FreeBSD 8.X or 9.0. Those
   releases lack the required kernel driver and therefore xf86-video-intel
   will not work (the last UMS-aware version does not work with xserver
   1.12). Users can still use xf86-video-vesa if they cannot or do not
   want to update their FreeBSD workstation. Owners of Radeon GPUs can use
   xf86-video-ati-ums 6.14.6 with xserver 1.12 if the KMS driver is not
   available (that is, before FreeBSD 9.3).

   The old graphics stack will be removed with the next update to these
   ports. See the announcement in the Links section.

   Hardware context support was added to the i915 driver in both HEAD and
   10.1-RELEASE. This will allow us to update libglapi, libGL, dri, libEGL
   and libglesv2 ports to a newer version of Mesa. The latest version is
   already available from our development ports tree (see the links

   Cairo was updated to 1.12. This will allow the FreeBSD GNOME team to
   upgrade pango and Gtk+ 3. Unfortunately, the update also revealed that
   xf86-video-intel 2.7.1 was in a much worse state than previously

   We will attend XDC 2014 (X.Org Developer's Conference) from October 8th
   through 10th in Bordeaux, France. The goal is to reconnect with
   graphics stack developers, who are mostly working with Linux these
   days. We will give a presentation on the current state of this stack on
   FreeBSD. See the XDC website in the Links section for the program and
   live streaming.

Open tasks:

    1. See the "Graphics" wiki page for up-to-date information.



   Contact: FreeBSD Xfce Team <xfce at>

   Xfce is a free software desktop environment for Unix and Unix-like
   platforms including FreeBSD. It aims to be fast and lightweight while
   still being visually appealing and easy to use.

   The Xfce team continues to keep each piece of the Xfce Desktop up to
   date. That is why we are working on the next stable release (no date
   scheduled). There were no major updates in the ports tree except for
   cosmetic changes this quarter.

   Major upcoming changes include:
     * Switch to the USES framework
     * Support both GTK2 and GTK3, with GTK2 being the default.
     * A GNOME-like default icons theme
     * Enhanced documentation (handbooks, FAQ)

   Below is a list of current ports in the devel repository (see link).
     * deskutils/xfce4-xkb-plugin 0.7.0
     * devełxfce4-dev-tools 4.11.0
     * misc/xfce4-appfinder 4.11.0
     * multimedia/xfce4-parole 0.6.1 and 0.7.0
     * sysutils/garcon 0.3.0
     * sysutils/xfce4-settings 4.11.3
     * x11/libxfce4menu 4.11.1
     * x11/libxfce4util 4.11.0
     * x11-wm/xfce4-desktop 4.11.8
     * x11-wm/xfce4-panel 4.11.1
     * x11-wm/xfce4-session 4.11.0

   There are also two new ports
     * deskutils/xfce4-volumed-pulse 0.2.0
     * x11/xfce4-dashboard 0.2.3 and 0.3.2

   For more details, please see our wiki page in the Links section.

Open tasks:

    1. Finish patching the ACPI helper (xfce4-power-manager).
    2. Continue to work on documentation, especially the Porter's
       Handbook, and creata a FAQ).

Handbook ezjail Section


   Contact: Warren Block <wblock at>

   ezjail is a very popular jails management utility, but was only
   mentioned in passing in the Handbook. This new section describes basic
   setup and usage. An in-depth example shows how to create and configure
   a jail. It also serves as an example of how to run a simple
   caching-only BIND in a jail.

Michael Lucas Books


   Contact: Michael Lucas <mwlucas at>

   Lucas is working on a series of small FreeBSD books. The first one,
   FreeBSD Mastery: Storage Essentials, is underway, and covers GEOM,
   gpart, MBR, UFS, GELI, GBDE, disk sector alignment, and more. You can
   pre-order the book at a discount from his web site, or wait for it to
   hit print and all major ebook retailers.

   Get status updates on his blog, or check @mwlauthor on Twitter.

Open tasks:

    1. Lucas needs to write faster.

ZFS Chapter of the Handbook


   Contact: Allan Jude <allanjude at>
   Contact: Benedict Reuschling <bcr at>
   Contact: Warren Block <wblock at>

   ZFS is one of the premier features of FreeBSD, and the quality of the
   documentation should match that of other important features. Much of
   the original documentation from Sun and Oracle has disappeared, moved,
   or is about the proprietary version of ZFS. The OpenZFS project does
   not provide much documentation and instead provides users with a few
   links, including the FreeBSD Handbook. New users have many questions
   about ZFS and yet there exists a great deal more bad advice about ZFS
   than proper documentation.

   After over a year of work, a new ZFS chapter has been added to the
   FreeBSD Handbook. Over 20,000 words describe the basics of creating,
   managing, and maintaining a ZFS pool. Advanced features like
   compression, deduplication, and delegation are covered. The chapter
   also contains a glossary of terms, explaining a number of the concepts
   unique to ZFS, and documents some of the many sysctl variables that can
   be used for tuning.

   The remaining work to be done is in the FAQ section, which aims to help
   users address the most common questions or problems they might face
   with ZFS. We would like to hear experiences, questions, misconceptions,
   gotchas, stumbling blocks and suggestions for the FAQ section from
   other users. A use cases section that highlights some of the cases
   where ZFS provides advantages over traditional file systems is also

   Please send suggestions to the docs mailing list.

   This project is sponsored by ScaleEngine Inc..

Open tasks:

    1. Technical review by Matt Ahrens (co-creator of ZFS)
    2. Improve the delegation section
    3. Improve the tuning section, and cover recently added sysctls
    4. Add a section on jails and the jailed property
    5. Add an FAQ section
    6. Add a Use Cases section
    7. General editing and review

The FreeBSD Foundation


   Contact: Deb Goodkin <deb at>

   The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated
   to supporting and promoting the FreeBSD Project and community
   worldwide. Most of the funding is used to support FreeBSD development
   projects, conferences, and developer summits, purchase equipment to
   grow and improve the FreeBSD infrastructure, and provide legal support
   for the Project.

   We published our fourth issue of the FreeBSD Journal. We have over 4500
   subscriptions to date. Work continued on adding support for the Dynamic
   Edition which will be available soon. The fifth issue is also due out

   Foundation staff member Konstantin Belousov wrapped up the PostgreSQL
   performance investigation project. Kostik reran the benchmarks as a
   configuration error may have affected earlier results. Improvements
   arising from the investigation are merged to the FreeBSD 10 development
   branch and will be in the 10.1 release. Kostik also committed a variety
   of virtual memory and file system bug fixes and improvements.

   Over the quarter, Foundation staff member Edward Napierała refined the
   new autofs-based automounter and incorporated feedback from testers in
   enterprise and university contexts. The automounter is available in the
   development branch of FreeBSD and will be included in FreeBSD 10.1.
   Edward also supported engineers at Chelsio in preparing iSCSI offload
   support for Chelsio's 10- and 40-gigabit per second Ethernet adapters.

   Ed Maste, our project manager, tested and integrated UEFI system boot
   and new vt(4) console work into the release branch for the upcoming
   FreeBSD 10.1 release. He committed a number of small toolchain and
   build infrastructure improvements. He also wrote an article on LLDB for
   the FreeBSD Journal and presented the LLDB work at EuroBSDCon.

   FreeBSD Foundation Systems Administrator and Release Engineer Glen
   Barber continued work on finalizing the 9.3-RELEASE process, followed
   by starting the 10.1-RELEASE process.

   Work has continued on producing regularly-updated FreeBSD development
   snapshot builds for the various supported architectures, which include
   amd64, i386, ia64, powerpc, powerpc64, sparc64, and arm.

   In addition, work has been committed to a project branch which allows
   FreeBSD virtual machine disk images to be produced by default as part
   of the release process.

   A plan has been put together for the upcoming Secure Boot work.

   More hardware has been purchased to support FreeBSD infrastructure at
   NYI and Sentex.

   We announced a collaboration between the Foundation and Cavium to
   deliver a FreeBSD ARMv8 based implementation.

   We signed a license agreement with Oracle to get access to the TCKs for
   Java 7 and 8.

   Robert Watson ran and organized the Cambridge Developer Summit. We
   provided a travel grant to a Google Summer of Code student to attend
   the summit.

   We provided a travel grant to a developer who organized and ran BSDDay
   in Argentina.

   We were a Gold Sponsor for EuroBSDCon 2014 and sponsored the Developer
   Summit. We provided 4 travel grants to assist FreeBSD contributors with
   their travel expenses to attend the conference. We also had 6
   board/staff members attend the conference and some gave talks,
   tutorials, and chaired some sessions. We held our Fall Fundraising
   campaign there and raised over $2,000 in donations from attendees.

   We organized the Silicon Valley Vendor/Developer Summit that is
   happening November 3 and 4.

   Kirk McKusick, Robert Watson, and George Neville-Neil published the
   second edition of "The Design and Implementation of the FreeBSD
   Operating System."

   Kirk McKusick presented a 2-day tutorial on the FreeBSD kernel and gave
   a talk on the implementation of ZFS at EuroBSDCon.

   Dru Lavigne attended Fossetcon: September 11-13 (

   We created new recruiting fliers for upcoming events, including the
   Grace Hopper conference.

   We started sending out Foundation monthly update emails to keep the
   FreeBSD community informed on some of the activities we did the
   previous month to support FreeBSD.
Version: GnuPG v2


More information about the freebsd-current mailing list