Skip site navigation (1) Skip section navigation (2)


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




Userland Programs




    FreeBSD Team Reports

    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 was sponsored by The FreeBSD Foundation.

    FreeBSD Release Engineering Team

    FreeBSD 10.1-RELEASE schedule URL:
    FreeBSD development snapshots URL:

    Contact: FreeBSD Release Engineering Team <>

    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 cycle.

    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 was sponsored by The FreeBSD Foundation.

    Ports Collection


    Contact: Frederic Culot <>
    Contact: Port Management Team <>

    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 Q3.

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

    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 <>

    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

    Other items dealt with by core during this period:

    • Confirmed with Microsoft that it is permissible to include DCTCP in FreeBSD.
    • 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)

    The HardenedBSD Project URL:
    ASLR review on Phabricator URL:
    EXP-RUN test results URL:
    EuroBSDCon 2014 Devsummit page on ASLR URL:
    FreeBSD wiki page on ASLR URL:

    Contact: Shawn Webb <>
    Contact: Oliver Pinter <>

    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 FreeBSD.

    This project was 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

    FreeBSD/Xen paravirtualised kernel support. URL:

    Contact: Cherry Mathew <>

    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 future.

    This project was 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


    bhyve FAQ and talks URL:
    bhyve past, present, future URL:

    Contact: Peter Grehan <>
    Contact: Neel Natu <>
    Contact: John Baldwin <>
    Contact: Tycho Nightingale <>
    Contact: Allan Jude <>

    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 future.

    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 system)

    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 <>
    Contact: Edward Tomasz Napierała <>

    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 was sponsored by Chelsio Communications, and The FreeBSD Foundation.

    Open tasks:

    1. Complete testing

    Debian GNU/kFreeBSD

    Debian GNU/kFreeBSD on the Debian Wiki URL:

    Contact: Debian GNU/kFreeBSD Maintainers <>

    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 2015.

    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 already.

    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 <>

    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 variables such as KEYMAP, HOSTNAME, MIRROR, RELEASE, TIMEZONE, DAEMONS, 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 was 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

    Jenkins CI server in FreeBSD cluster URL:
    Jenkins working group at DevSummit URL:
    Jenkins presentation at BSDCan URL:
    clang static analyzer URL:
    FreeBSD static analysis results URL:
    BSD Now episode 44 URL:
    livirt and bhyve" URL:
    Kyua testing framework URL:
    Issue to update Jenkins to JNA 4.1.0 for FreeBSD URL:
    Pull request #1 to upgrade JNA in Jenkins URL:
    Pull request #2 to upgrade JNA in Jenkins URL:
    Jenkins job for testing pkg URL:
    yacc bug found by kyua URL:
    IPv6 multicast join() problem found by Jenkins URL:
    Kyua Quickstart Guide URL:

    Contact: Craig Rodrigues <>
    Contact: Jenkins Administrators <>
    Contact: FreeBSD Testing <>

    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 project.

    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 FreeBSD.

    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 Tinderbox.

    4. Get feedback for improving the Kyua Quickstart Guide.

    5. We need more people to join us on 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 Phabricator.

    New Automounter


    Contact: Edward Tomasz Napierała <>

    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 was sponsored by The FreeBSD Foundation.

    QEMU bsd-user-Enabled Ports Building

    Generic Explanation of QEMU bsd-user URL:
    Current ARMv6 Packages URL:
    Github repo of development source URL:

    Contact: Sean Bruno <>
    Contact: Juergen Lock <>
    Contact: Stacey Son <>

    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 <>

    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 TOKEN/WRITE USING TOKEN (SPC-4 extensions of XCOPY), WRITE SAME and UNMAP.

    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 was 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 <>

    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 awry.

    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

    Email thread with patch updates and regression test reports. URL:

    Contact: Konstantin Belousov <>

    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 was 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

    SDIO project page on FreeBSD wiki URL:
    Source code URL:
    Patch for review URL:

    Contact: Ilya Bakulin <>

    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 layer.

    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.

    UEFI Boot

    FreeBSD UEFI wiki page URL:
    FreeBSD snapshots URL:

    Contact: Ed Maste <>
    Contact: Nathan Whitehorn <>

    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 was 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 (NVRAM).

    4. Debug boot failures with certain UEFI firmware implementations.

    5. Support secure boot.

    Updated vt(4) System Console

    Project wiki page URL:

    Contact: Aleksandr Rybalko <>
    Contact: Ed Maste <>
    Contact: Ed Schouten <>
    Contact: Jean-Sébastien Pédron <>
    Contact: Warren Block <>

    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 support.

    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 kbdmux(4)).

    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

    Source in Perforce URL:
    FreeBSD Foundation announces IPsec Enhancement Project URL:

    Contact: John-Mark Gurney <>

    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 was sponsored by The FreeBSD Foundation, and Netgate.

    Open tasks:

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


    FreeBSD on Newer ARM Boards

    Some preliminary code for Snapdragon board IFC6410 URL:

    Contact: Ganbold Tsagaankhuu <>

    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 <>

    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

    Userland Programs

    LLDB Debugger Port


    Contact: Ed Maste <>

    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 disassembler.

    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 include:

    • 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 support.

    This project was sponsored by DARPA/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)

    Buildbot URL:

    Contact: Viktor Kuzutov <>

    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 <>

    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 testing


    FreeBSD Python Ports

    The FreeBSD Python Team Page URL:
    IRC channel URL: irc://

    Contact: FreeBSD Python Team <>

    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 maintainers.

    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 5.5.1.

    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 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 FreeBSD.

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

    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

    PortScout URL:

    Contact: KDE on FreeBSD team <>

    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 list.

    2. Committing all the updated ports we have been accumulating in our experimental repositories into the ports tree.

    The Graphics Stack on FreeBSD

    Graphics stack roadmap and supported hardware matrix URL:
    Graphics stack ports-related development repository URL:
    Removal of legacy X.Org announcement URL:
    XDC 2014 URL:

    Contact: FreeBSD Graphics team <>

    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 section).

    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 assumed.

    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.


    devel repo URL:
    Video showing significant changes URL:

    Contact: FreeBSD Xfce Team <>

    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
    • devel/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

    Managing Jails with ezjail URL:

    Contact: Warren Block <>

    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

    book announcement URL:
    pre-pub availability announcement URL:
    in-progress draft URL:

    Contact: Michael Lucas <>

    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

    ZFS Section of the FreeBSD Handbook URL:

    Contact: Allan Jude <>
    Contact: Benedict Reuschling <>
    Contact: Warren Block <>

    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 planned.

    Please send suggestions to the docs mailing list.

    This project was 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

    FreeBSD Journal URL:

    Contact: Deb Goodkin <>

    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 soon.

    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.

    News Home | Status Home