Release Highlights

The FreeBSD Jail subsystem now supports mounting devfs(5), nullfs(5), and ZFS
filesystem inside a jail. New jail(8) parameters
allow.mount.devfs,
allow.mount.nullfs, and
allow.mount.zfs to
control the per-jail capabilities have been
added. All of them are disabled by default.[r232728]

The FreeBSD sched_ule(4)
scheduler has been improved on CPU load balancing of
SMT (Simultaneous MultiThreading) CPUs. It gives a
10-15% performance improvement when the number of
threads is lesser than the number of logical CPUs.[r233599]

The boot0cfg(8)
utility now supports configuration of PXE boot via the
boot0 boot block
temporarily on the next boot. The slice number 6 or a keyword PXE can be specified to enable
PXE boot using the -s option.[r230065]

[arm] FreeBSD/arm now supports the Atmel SAM9XE family
of microcontrollers.[r236081]

A bug in the xhci(4) (USB 3.0)
driver has been fixed. It did not work with USB 3.0
hubs.[r230302]

The drm2(4) Intel GPU driver, which supports GEM and
KMS and works with new generations of GPUs such as
IronLake, SandyBridge, and IvyBridge, has been
added. The agp(4) driver now
supports SandyBridge and IvyBridge CPU
northbridges.[r236926, r236927, r239965]

The snd_hda(4) driver
has been updated. It now supports and provides HDMI, new volume
control, automatic recording source selection, runtime
reconfiguration, more then 4 PCM devices on a
controller, multichannel recording, additional
playback/record streams, higher bandwidth, and more
informative device names.[r232798]

The snd_hdspe(4)
driver has been added. This supports RME HDSPe AIO
and RayDAT sound cards.[r233165]

A bug in ae(4) driver which
could prevent from working under certain conditions
has been fixed.[r229520]

A bug which could prevent the DMA
functionality from working correctly has been
fixed.[r229350]

It now works with PCI-X BCM 5704 controller
that is connected to AMD-8131 PCI-X bridge.[r233495]

It now supports the BCM 5720 and BCM 5720C PHY,
and the BCM 57780 1000BASE-T media interface.[r229357, r229867, r232134]

It now supports a loader(8)
tunable dev.bge.N.msi
to control the use of MSI. The default value
is 1 (enabled).[r231734]

The cxgbe(4) and
cxgb(4) driver have
been updated to firmware version 1.5.2.0. They now
support device configuration via a plain text
configuration file, IPv6 hardware checksumming, IPv6
TSO and LRO, a loadfw command in the
cxgbetool(8) utility which allows to install a
firmware to the card, sysctl(8) variables
under dev.t4nex.N.misc for
various information.[r231093, r237925]

The igb(4) driver has
been updated to version 2.3.4. It now supports newer
i210/i211 devices.[r238262]

The mxge(4) driver has
been updated to firmware version 1.4.55 from
Myricom.[r236413]

The oce(4) driver,
which supports Emulex OneConnect 10Gbit Ethernet
cards, has been added.[r231663]

The ral(4) driver now
supports Ralink RT2800 and RT3000 chipsets.[r236004]

The re(4) driver now
supports the RTL8411 PCIe Gigabit Ethernet controller. A
bug which could prevent WoL (Wake-on-LAN) from
working on RTL8168E has been fixed.[r229529, r231731]

The sfxge(4) driver,
which supports 10Gb Ethernet adapters based on
Solarflare SFC9000 family controllers, has been
added.[r228100]

The xnb(4) Xen
Paravirtualized Backend Ethernet Driver (netback)
has been updated. This is attached via the newbus
framework and works properly in both HVM and PVM
mode.[r231697]

The MIRRORgeom(4) class now
supports BIO_DELETE. This
means TRIM command will be
issued on supported devices when deleting
data.[r238500]

The MULTIPATHgeom(4) class has
been updated. It now supports Active/Active mode,
Active/Read mode as hybrid of Active/Active and
Active/Passive, keeping a failed path without
removing the geom provider, manual configuration
without on-disk metadata, and add, remove, fail, restore, configure subcommands in the gmultipath(8)
utility to manage the configured paths.[r229303, r234916]

The usb(4) storage
device driver now enables power save mode by
default.[r229107]

The FreeBSD NFS filesystem has been improved:

It now supports a timeout on positive name cache
entries on the client side. A new mount option
nametimeo has been added
and set to 60 (in seconds)
by default.[r233326]

A memory leak when a ZFS volume is exported via
the FreeBSD NFS server has been fixed.[r234740]

A bug has been fixed. When a process writes to an
mmap-backed file on an NFS filesystem, flushing
changes to the data could fail under some
circumstances such as errors due to permission
mismatch, and this failure could not detected as an
error. A new sysctl(8)
variable vfs.nfs.nfs_keep_dirty_on_error
has been added to control the behavior on the
client side related to this issue. When this is
set to 1, the pages where
a write operation failed are kept dirty. The
default value is set to 0.[r233730]

The nfsv4(4)
filesystem now supports a sysctl(8)
variable vfs.nfsd.disable_checkutf8. This
disables the check for UTF-8 compliance in the
filenames. This is disabled by default. Note
that enabling this may help some
interoperability issues but results in an NFSv4
server that is non-RFC 3530 compliant.[r229799]

The tmpfs(5)
filesystem is not an experimental implementation
anymore.[r234511]

The tmpfs(5)
filesystem now supports a sysctl(8) variable
vfs.tmpfs.memory_reserved to set
the amount of required free pages when tmpfs(5) attempts
to allocate a new node.[r234849]

FreeBSD ZFS filesystem has been updated by merging
improvements from illumos project. The following changes
are made:[r229578, r232328]

New properties, clones and written, have been added.

The
The zfs(8)send command now reports
an estimated size of the stream.

The zfs(8)destroy command now reports
an estimate of the space which would be reclaimed, when
-n flag is specified.

The zfs(8)get command now supports
the -t type flag
to specify the data type.

The dhclient(8)
utility now supports domain-search (option number 119,
described in RFC 3397). This allows a DHCP server to
publish a list of implicit domain suffixes used
during name lookup. If this option is specified, a
search keyword will be added
to /etc/resolv.conf.[r230597]

A bug in the gcc(1) compiler
has been fixed. It could lead to incorrect
calculations when -ffast-math is specified.[r234023]

The ifconfig(8)
utility now supports a vlanhwcsum parameter to set or
reset checksum offloading capability on VLANs.[r231221]

The ifconfig(8)
utility now supports a carp
state
parameter to set the state to backup or master forcibly.[r232486]

Lock handling performance in the libthr pthread library has been
improved. It now works 10 times faster especially under
the condition that a mutex is heavily contested.[r234372]

A new C++ stack has been imported. This consists of
libcxxrt, originally
developed by a FreeBSD developer under contract by
PathScale and open sourced by the FreeBSD and NetBSD
foundations, and libc++
from the LLVM project. libcxxrt is a drop-in replacement
for GNU libsupc++, which
implements the C++ runtime support for features such
as run-time type information, dynamic casting,
thread-safe static initializer, and exceptions. libc++ implements the C++11
standard library, and will replace GNU libstdc++ in a future release. In
9.1-RELEASE, libstdc++ is
still installed as standard and now dynamically links
against libsupc++. This
allows libraries linking libstdc++ and libc++ to both be used in the same
program, to aid migration.[r235798]

The rtld(1) run-time
linker now supports GCC's RELRO (RElocation
Read-Only). This prevents the GOT (Global Offset Table)
from being overwritten.[r231579]

The rtld(1) run-time
linker now supports a GNU hash section (DT_GNU_HASH), which is a
replacement of optional ELF hash section.[r235396]

The setbuf(1) utility
and libstdbuf library have
been added. This controls the default buffering
behavior of standard stdio streams.[r235139]

The xlocale(3) API has
been implemented. This consists of _l-suffixed versions of various
standard library functions that use the global
locale, making them take an explicit locale parameter
and allowing thread-safe extended locale
support. Most of these APIs are required for IEEE Std
1003.1-2008 (POSIX.1-2008 or ISO/IEC 9945:2009)
compatibility, and are required by libc++ and recent versions of
GNOME. This implementation
also supports several extensions for compatibility
with Apple Darwin.[r235785]