---
title: "FreeBSD 9.1-RELEASE Release Notes"
sidenav: download
---

include::shared/en/urls.adoc[]

= FreeBSD 9.1-RELEASE Release Notes

The release notes for FreeBSD 9.1-RELEASE contain a summary of the changes made to the FreeBSD base system on the 9.1-STABLE development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented.

'''''

*Table of Contents*

. <<intro,Introduction>>
. <<new,What's New>>
.. <<security,Security Advisories>>
.. <<kernel,Kernel Changes>>
... <<boot,Boot Loader Changes>>
... <<proc,Hardware Support>>
... <<net-proto,Network Protocols>>
... <<disks,Disks and Storage>>
... <<fs,File Systems>>
.. <<userland,Userland Changes>>
... <<periodic-scripts,man:periodic[8] Scripts>>
... <<rc-scripts,man:rc[8] Scripts>>
.. <<contrib,Contributed Software>>
.. <<releng,Release Engineering and Integration>>
. <<upgrade,Upgrading from previous releases of FreeBSD>>
.. <<AEN1113,Upgrading using man:freebsd-update[8] or a source-based procedure>>
.. <<AEN1133,User-visible incompatibilities>>

[[intro]]
== Introduction

This document contains the release notes for FreeBSD 9.1-RELEASE. It describes recently added, changed, or deleted features of FreeBSD. It also provides some notes on upgrading from previous versions of FreeBSD.

This distribution of FreeBSD 9.1-RELEASE is a release distribution. It can be found at http://www.FreeBSD.org/releases/ or any of its mirrors. More information on obtaining this (or other) release distributions of FreeBSD can be found in the link:{handbook}#mirrors/["Obtaining FreeBSD" appendix] to the link:{handbook}[FreeBSD Handbook].

All users are encouraged to consult the release errata before installing FreeBSD. The errata document is updated with “late-breaking” information discovered late in the release cycle or after the release. Typically, it contains information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for FreeBSD 9.1-RELEASE can be found on the FreeBSD Web site.

'''''

[[new]]
== What's New

This section describes the most user-visible new or changed features in FreeBSD since 9.0-RELEASE.

Typical release note items document recent security advisories issued after 9.0-RELEASE, new drivers or hardware support, new commands or options, major bug fixes, or contributed software upgrades. They may also list changes to major ports/packages or release engineering practices. Clearly the release notes cannot list every single change made to FreeBSD between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements.

'''''

[[security]]
=== Security Advisories

Problems described in the following security advisories have been fixed. For more information, consult the individual advisories available from http://security.FreeBSD.org/.

[[AEN38]]
[width="100%",cols="20%,20%,60%",options="header",]
|===
|Advisory |Date |Topic
|http://security.freebsd.org/advisories/FreeBSD-SA-12:01.openssl.asc[SA-12:01.openssl] |3 May 2012 |OpenSSL multiple vulnerabilities
|http://security.freebsd.org/advisories/FreeBSD-SA-12:02.crypt.asc[SA-12:02.crypt] |30 May 2012 |Incorrect `crypt()` hashing
|http://security.freebsd.org/advisories/FreeBSD-SA-12:03.bind.asc[SA-12:03.bind] |12 June 2012 |Incorrect handling of zero-length RDATA fields in man:named[8]
|http://security.freebsd.org/advisories/FreeBSD-SA-12:04.sysret.asc[SA-12:04.sysret] |12 June 2012 |Privilege escalation when returning from kernel
|http://security.freebsd.org/advisories/FreeBSD-SA-12:05.bind.asc[SA-12:05.bind] |6 August 2012 |man:named[8] DNSSEC validation Denial of Service
|http://security.freebsd.org/advisories/FreeBSD-SA-12:06.bind.asc[SA-12:06.bind] |22 November 2012 |Multiple Denial of Service vulnerabilities with man:named[8]
|http://security.freebsd.org/advisories/FreeBSD-SA-12:07.hostapd.asc[SA-12:07.hostapd] |22 November 2012 |Insufficient message length validation for EAP-TLS messages
|http://security.freebsd.org/advisories/FreeBSD-SA-12:08.linux.asc[SA-12:08.linux] |22 November 2012 |Linux compatibility layer input validation error
|===

'''''

[[kernel]]
=== Kernel Changes

The FreeBSD Jail subsystem now supports mounting man:devfs[5], man:nullfs[5], and ZFS filesystem inside a jail. New man: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. http://svn.freebsd.org/viewvc/base?view=revision&revision=232728[r232728]

A new man:loader[8] tunable `kern.eventtimer.activetick` has been added. This tunable specifies whether each hardclock tick should be run on every active CPU or only one. By setting it to `0`, the total number of interrupts can be reduced on SMP machines. The default value is `1`. http://svn.freebsd.org/viewvc/base?view=revision&revision=234167[r234167]

The man:posix_fadvise[2] system call has been implemented. This is a function similar to man:madvise[2] except that it operates on a file descriptor instead of a memory region. http://svn.freebsd.org/viewvc/base?view=revision&revision=229723[r229723]

The man:filemon[4] pseudo-device has been added. This allows a process to collect file operations data of its children. http://svn.freebsd.org/viewvc/base?view=revision&revision=237795[r237795]

The man:sysctl[8] variable `kern.stop_scheduler_on_panic` is now set to `1` by default. http://svn.freebsd.org/viewvc/base?view=revision&revision=235413[r235413]

[powerpc] FreeBSD/powerpc64 now supports kernel profiling by using man:kgmon[8].
http://svn.freebsd.org/viewvc/base?view=revision&revision=231907[r231907]

The FreeBSD Linux ABI compatibility layer now supports the `linux_fadvise64()` and `linux_fadvise64_64()` system calls. http://svn.freebsd.org/viewvc/base?view=revision&revision=231145[r231145]

The default value of the man:loader[8] tunable `hw.memtest.tests` is now automatically set to `0` when FreeBSD is running on a virtual machine. http://svn.freebsd.org/viewvc/base?view=revision&revision=230266[r230266]

A new man:loader[8] tunable `kern.msgbuf_show_timestamp` has been added. When it is enabled, a timestamp is added to each line of the system message buffer. The default value is `0` (disabled). http://svn.freebsd.org/viewvc/base?view=revision&revision=234075[r234075]

The man:null[4] and man:zero[4] pseudo device driver now supports non-blocking mode via the man:fcntl[2] system call. http://svn.freebsd.org/viewvc/base?view=revision&revision=230320[r230320]

The FreeBSD man:sched_ule[4] scheduler has been improved for CPU load balancing on SMT (Simultaneous MultiThreading) CPUs. It gives a 10-15% performance improvement when the number of threads is lesser than the number of logical CPUs. http://svn.freebsd.org/viewvc/base?view=revision&revision=233599[r233599]

[sparc64] The `PREEMPTION` kernel option is now enabled in the `GENERIC` kernel.
http://svn.freebsd.org/viewvc/base?view=revision&revision=235992[r235992]

A new man:sysctl[8] variable `security.bsd.unprivileged_idprio` has been added. This variable controls whether non-root users can set an idle priority or not. This is disabled by default. http://svn.freebsd.org/viewvc/base?view=revision&revision=230039[r230039]

The man:splash[4] screen interface now supports ASCII art in *TheDraw* format. http://svn.freebsd.org/viewvc/base?view=revision&revision=228445[r228445]

'''''

[[boot]]
==== Boot Loader Changes

The man: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. http://svn.freebsd.org/viewvc/base?view=revision&revision=230065[r230065]

The FreeBSD man:boot[8] block now supports `/boot/config` in addition to `/boot.config` as the boot block parameter file. When both of them exist, the former will be used. http://svn.freebsd.org/viewvc/base?view=revision&revision=231287[r231287]

The `gptboot` boot block now reads the backup GPT header from the last LBA only when the primary GPT header and tables are invalid. This mitigates interoperability issues with some man:geom[4] providers like `MIRROR` which use the last LBA for the metadata. http://svn.freebsd.org/viewvc/base?view=revision&revision=234693[r234693]

The `zfsboot` boot block and `zfsloader` support filesystems within a ZFS storage pool. In `zfsloader`, the ZFS device name format is now `zfs:pool`/`fs` and the fully qualified file path format is `zfs:pool`/`fs`:/`path/to/file`. The `zfsboot` boot block accepts the kernel/loader name in the format `pool`:`fs`:`path/to/file` or, as before, `pool`:`path/to/file`. In the latter case a default filesystem is used (the pool root or a filesystem with the `bootfs` property). The `zfsboot` boot block passes the GUIDs of the selected storage pool and dataset to `zfsloader` to be used as its defaults. http://svn.freebsd.org/viewvc/base?view=revision&revision=237766[r237766]

[sparc64] FreeBSD/sparc64 now supports booting from ZFS via the `zfsboot` boot block and `zfsloader`. For example, the following commands create a mirrored storage pool `rpool` consisting of `da0a` and `da0b` and configure the storage pool as the root filesystem:
http://svn.freebsd.org/viewvc/base?view=revision&revision=236076[r236076]

[source,screen]
----
# gpart create -s vtoc8 da0
# gpart add -t freebsd-zfs -s 10g da0
# gpart add -t freebsd-swap -s 10g da0
# gpart add -t freebsd-zfs -s 10g da0
# zpool create rpool mirror da0a da0b
# zpool set bootfs=rpool rpool
# zpool export rpool
# gpart bootcode -p /boot/zfsboot da0
# sysctl kern.geom.debugflags=0x10
# dd if=/boot/zfsloader of=/dev/da0a bs=512 oseek=1024 conv=notrunc
# dd if=/boot/zfsloader of=/dev/da0b bs=512 oseek=1024 conv=notrunc
# zpool import rpool
# cp -p /boot/zfs/zpool.cache /rpool/boot/zfs/zpool.cache
# zfs set mountpoint=/ rpool
----

'''''

[[proc]]
==== Hardware Support

[powerpc] The man:abtn[4] driver, which supports ADB keyboards found on Apple laptops, has been added.
http://svn.freebsd.org/viewvc/base?view=revision&revision=230751[r230751]

[amd64] A workaround for Erratum 721 for AMD Processor Family 10h and 12h has been implemented. Under a highly specific and detailed set of internal timing conditions, the processor may incorrectly update the stack pointer after a long series of push and/or near-call instructions, or a long series of pop and/or near-return instructions.
http://svn.freebsd.org/viewvc/base?view=revision&revision=233798[r233798]

[powerpc] The atibl(4) driver, which supports backlight control of ATI graphics chips on PowerBooks and iBooks, has been added.
http://svn.freebsd.org/viewvc/base?view=revision&revision=232677[r232677]

The man:acpi_wmi[4] driver now supports attaching multiple instances. http://svn.freebsd.org/viewvc/base?view=revision&revision=229858[r229858]

[powerpc] The adm1030(4) driver for G4 MDD fans now shows its PWM parameter in the device's man:sysctl[8] variable.
http://svn.freebsd.org/viewvc/base?view=revision&revision=230290[r230290]

[arm] The cesa(4) driver for the Marvell crypto engine and security accelerator has been added.
http://svn.freebsd.org/viewvc/base?view=revision&revision=234559[r234559]

[powerpc] The man:hwpmc[4] driver now supports PowerPC G4+ (MPC745x/MPC744x).
http://svn.freebsd.org/viewvc/base?view=revision&revision=230305[r230305]

[amd64, i386] The man:hwpmc[4] driver now supports the Intel Sandy Bridge microarchitecture.
http://svn.freebsd.org/viewvc/base?view=revision&revision=234046[r234046]

The man:hwpmc[4] driver now supports software events. Simultaneous usage of software PMC and hardware PMC is allowed. http://svn.freebsd.org/viewvc/base?view=revision&revision=236238[r236238]

The pcf8563(4) driver for the NXP (Philips) PCF8563 RTC has been added. http://svn.freebsd.org/viewvc/base?view=revision&revision=236078[r236078]

[powerpc] FreeBSD/powerpc now supports the PWM-controlled fans found on the PowerMac SMU (System Management Unit).
http://svn.freebsd.org/viewvc/base?view=revision&revision=233471[r233471]

[arm] FreeBSD/arm now supports the Atmel SAM9XE family of microcontrollers.
http://svn.freebsd.org/viewvc/base?view=revision&revision=236081[r236081]

The following man:sysctl[8] variables have been added: `kern.proc.env` for environment strings, `kern.proc.auxv` for ELF auxiliary vectors from a process's stack, `kern.proc.groups` for process groups, `kern.proc.rlimit` for process resource limits, `kern.proc.ps_strings` for the ps_strings location, and `kern.proc.osrel` for the osreldate of the process's binary. http://svn.freebsd.org/viewvc/base?view=revision&revision=230754[r230754], http://svn.freebsd.org/viewvc/base?view=revision&revision=233950[r233950]

The man:usb[4] driver now handles suspend and resume correctly with no need to reload the kernel module. http://svn.freebsd.org/viewvc/base?view=revision&revision=229100[r229100], http://svn.freebsd.org/viewvc/base?view=revision&revision=229369[r229369]

A bug in the man:xhci[4] (USB 3.0) driver has been fixed. It did not work with USB 3.0 hubs. http://svn.freebsd.org/viewvc/base?view=revision&revision=230302[r230302]

The man:viawd[4] driver, which supports the watchdog timer found in VIA south bridges (VT8251, CX700, VX800, VX855, VX900), has been added. http://svn.freebsd.org/viewvc/base?view=revision&revision=229927[r229927]

The man:wbwd[4] driver, which supports the watchdog timer found in Winbond Super I/O chips, has been added. http://svn.freebsd.org/viewvc/base?view=revision&revision=235926[r235926]

'''''

[[mm]]
===== Multimedia Support

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 man:agp[4] driver now supports SandyBridge and IvyBridge CPU northbridges. http://svn.freebsd.org/viewvc/base?view=revision&revision=236926[r236926], http://svn.freebsd.org/viewvc/base?view=revision&revision=236927[r236927], http://svn.freebsd.org/viewvc/base?view=revision&revision=239965[r239965]

The man: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. http://svn.freebsd.org/viewvc/base?view=revision&revision=232798[r232798]

The man:snd_hdspe[4] driver has been added. This supports RME HDSPe AIO and RayDAT sound cards. http://svn.freebsd.org/viewvc/base?view=revision&revision=233165[r233165]

GPL-licensed headers in the man:snd_emu10kx[4], man:snd_maestro3[4], and man:snd_csa[4] drivers have been replaced with BSD-licensed one. These drivers are now fully BSD-licensed and included in the `GENERIC` kernel on FreeBSD/amd64 and FreeBSD/i386. http://svn.freebsd.org/viewvc/base?view=revision&revision=230964[r230964], http://svn.freebsd.org/viewvc/base?view=revision&revision=230985[r230985], http://svn.freebsd.org/viewvc/base?view=revision&revision=231047[r231047], http://svn.freebsd.org/viewvc/base?view=revision&revision=235769[r235769]

'''''

[[net-if]]
===== Network Interface Support

A bug in the man:ae[4] driver which could prevent it from working under certain conditions has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=229520[r229520]

The man:axe[4] driver now supports TX/RX checksum offloading support for the ASIX AX88772B controller. http://svn.freebsd.org/viewvc/base?view=revision&revision=229106[r229106]

The man:bce[4] driver has been improved:

* Unnecessary link up/down has been eliminated. http://svn.freebsd.org/viewvc/base?view=revision&revision=229864[r229864]
* A bug has been fixed which could prevent IPMI from working when the interface was marked as down. http://svn.freebsd.org/viewvc/base?view=revision&revision=236216[r236216]
* It now supports remote PHYs, which allow the controller to perform MDIO type accesses to a remote transceiver by using message pages defined through MRBE (MultiRate Backplane Ethernet). This is found on machines such as the Dell PowerEdge M610 Blade. http://svn.freebsd.org/viewvc/base?view=revision&revision=235818[r235818]

The man:bge[4] and brgphy(4) drivers have been improved:

* A bug which could prevent DMA functionality from working correctly has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=229350[r229350]
* It now works with a PCI-X BCM 5704 controller that is connected to AMD-8131 PCI-X bridge. http://svn.freebsd.org/viewvc/base?view=revision&revision=233495[r233495]
* It now supports the BCM 5720 and BCM 5720C PHY, and the BCM 57780 1000BASE-T media interface. http://svn.freebsd.org/viewvc/base?view=revision&revision=229357[r229357], http://svn.freebsd.org/viewvc/base?view=revision&revision=229867[r229867], http://svn.freebsd.org/viewvc/base?view=revision&revision=232134[r232134]
* It now supports a man:loader[8] tunable `dev.bge.N.msi` to control the use of MSI. The default value is `1` (enabled). http://svn.freebsd.org/viewvc/base?view=revision&revision=231734[r231734]

The man:cxgbe[4] and man:cxgb[4] drivers 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 installing a firmware to the card, and man:sysctl[8] variables under `dev.t4nex.N.misc` for various information. http://svn.freebsd.org/viewvc/base?view=revision&revision=231093[r231093], http://svn.freebsd.org/viewvc/base?view=revision&revision=237925[r237925]

The man:dc[4] driver now supports NVIDIA (ULi) M5261/M5263 PCI FastEthernet controllers, which are found on the ULi M1563 South Bridge and M1689 Bridge. http://svn.freebsd.org/viewvc/base?view=revision&revision=229334[r229334]

The man:et[4] driver now works on all platforms. A bug which could prevent man:altq[4] support from working has been fixed. A new man:sysctl[8] variable under `dev.et.N.stats` has been added for hardware MAC statistics. http://svn.freebsd.org/viewvc/base?view=revision&revision=229711[r229711], http://svn.freebsd.org/viewvc/base?view=revision&revision=229717[r229717], http://svn.freebsd.org/viewvc/base?view=revision&revision=229720[r229720]

The man:igb[4] driver has been updated to version 2.3.4. It now supports newer i210/i211 devices. http://svn.freebsd.org/viewvc/base?view=revision&revision=238262[r238262]

The man:iwn[4] driver now supports Intel Centrino Wireless-N + WiMAX 6150 and Wireless-N 100/130 series. http://svn.freebsd.org/viewvc/base?view=revision&revision=233838[r233838], http://svn.freebsd.org/viewvc/base?view=revision&revision=235843[r235843]

The man:miibus[4] bus driver now supports device hints `hint.miibus.N.phymask` for PHY addresses being probed. This is useful to manually probe PHYs which do not implement basic the register set of IEEE 802.3. Also, the man:miibus[4] driver has been changed to a hinted bus, allowing to add child devices via hints and to set their attach arguments in addition to automatically-probed PHYs. http://svn.freebsd.org/viewvc/base?view=revision&revision=230709[r230709]

The man:msk[4] driver now uses 64-bit DMA addressing on 64-bit platforms. http://svn.freebsd.org/viewvc/base?view=revision&revision=229524[r229524]

The man:mxge[4] driver has been updated to firmware version 1.4.55 from Myricom. http://svn.freebsd.org/viewvc/base?view=revision&revision=236413[r236413]

The nsphyter(4) driver now supports National DP83849. http://svn.freebsd.org/viewvc/base?view=revision&revision=232137[r232137]

The man:oce[4] driver, which supports Emulex OneConnect 10Gbit Ethernet cards, has been added. http://svn.freebsd.org/viewvc/base?view=revision&revision=231663[r231663]

The man:ral[4] driver now supports Ralink RT2800 and RT3000 chipsets. http://svn.freebsd.org/viewvc/base?view=revision&revision=236004[r236004]

The man: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. http://svn.freebsd.org/viewvc/base?view=revision&revision=229529[r229529], http://svn.freebsd.org/viewvc/base?view=revision&revision=231731[r231731]

The man:runfw[4] firmware has been updated to version 0.236. http://svn.freebsd.org/viewvc/base?view=revision&revision=234028[r234028]

The man:sfxge[4] driver, which supports 10Gb Ethernet adapters based on Solarflare SFC9000 family controllers, has been added. http://svn.freebsd.org/viewvc/base?view=revision&revision=228100[r228100]

The smcphy(4) driver now supports the Seeq Technology 80220 PHY. This is found on Adaptec AIC-6915 Starfire Ethernet controllers supported by the man:sf[4] driver. http://svn.freebsd.org/viewvc/base?view=revision&revision=233485[r233485]

The man:ti[4] driver now supports the man:altq[4] framework, reporting link-state changes, and man:sysctl[8] variables under `dev.ti.N` for interrupt moderation parameters. http://svn.freebsd.org/viewvc/base?view=revision&revision=229417[r229417], http://svn.freebsd.org/viewvc/base?view=revision&revision=229438[r229438]

A bug in the man:ti[4] driver which could prevent it from working correctly with the `PAE` kernel option has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=229441[r229441]

The man:vge[4] driver has been updated to improve its link establishment and link-state detection. http://svn.freebsd.org/viewvc/base?view=revision&revision=229540[r229540]

The man:vr[4] driver now enables flow control capability in the PHY drivers. http://svn.freebsd.org/viewvc/base?view=revision&revision=229641[r229641]

The man: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. http://svn.freebsd.org/viewvc/base?view=revision&revision=231697[r231697]

'''''

[[net-proto]]
==== Network Protocols

The man:if_bridge[4] pseudo-interface now supports reporting link-state changes depending on the status of the member interfaces. http://svn.freebsd.org/viewvc/base?view=revision&revision=236051[r236051]

The `table` argument in the man:ipfw[4] packet filter rule syntax now supports IP address, interface name, port number, and jail ID. The following syntax is valid: http://svn.freebsd.org/viewvc/base?view=revision&revision=234597[r234597]

[source,programlisting]
----
skipto tablearg ip from any to any via table(42) in
----

The FreeBSD man:ip6[4] protocol stack has been improved in terms of its performance. Benchmarking can be found at http://people.freebsd.org/~bz/bench/.

The FreeBSD man:ip6[4] protocol stack now supports multiple FIBs. http://svn.freebsd.org/viewvc/base?view=revision&revision=232292[r232292]

An IPv6 default route configured via Router Advertisement messages is now reinstalled correctly when the default route is manually removed and then another RA message is received for the same route. http://svn.freebsd.org/viewvc/base?view=revision&revision=230604[r230604]

A bug which could return an incorrect value for the `IPV6_MULTICASE_HOPS` socket option has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=227885[r227885]

A new man:sysctl[3] name `NET_RT_IFLISTL` has been added. This queries the address list and works on extended and extensible structures `if_msghdrl` and `ifa_msghdrl` without breaking the ABI. http://svn.freebsd.org/viewvc/base?view=revision&revision=231768[r231768]

The man:netmap[4] fast packet I/O framework has been added. The man:em[4], man:lem(4), man:igb[4], and man:re[4] drivers now support this framework. The technical details can be found at http://info.iet.unipi.it/~luigi/netmap/. http://svn.freebsd.org/viewvc/base?view=revision&revision=231650[r231650], http://svn.freebsd.org/viewvc/base?view=revision&revision=235527[r235527]

The FreeBSD man:sctp[4] protocol stack now supports a new man:sysctl[8] variable `net.inet.sctp.blackhole`. If this is set to `1`, no `ABORT` is sent back in response to an incoming `INIT`. If this is set to `2`, no `ABORT` is sent back in response to an out-of-the-blue packet. If set to `0` (the default), `ABORT`s are sent. http://svn.freebsd.org/viewvc/base?view=revision&revision=231045[r231045]

A bug which could cause a system panic when `SCTP_RECVINFO` or `SCTP_NXTINFO` is specified to the man:getsockopt[2] system call has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=231049[r231049]

The FreeBSD man:sctp[4] protocol stack now supports the `SCTP_REMOTE_UDP_ENCAPS_PORT` socket option. http://svn.freebsd.org/viewvc/base?view=revision&revision=231070[r231070], http://svn.freebsd.org/viewvc/base?view=revision&revision=231140[r231140]

The `SO_PROTOCOL` and `SO_PROTOTYPE` socket options have been added. These return the socket protocol number. http://svn.freebsd.org/viewvc/base?view=revision&revision=232805[r232805]

The `TCP_KEEPINIT`, `TCP_KEEPIDLE`, `TCP_KEEPINTVL`, and `TCP_KEEPCNT` socket options have been added. These allow controlling initial timeout, idle time, idle resend interval, and idle send count on a per-socket basis. http://svn.freebsd.org/viewvc/base?view=revision&revision=232945[r232945]

'''''

[[disks]]
==== Disks and Storage

The man:arcmsr[4] driver has been updated to version 1.20.00.25. http://svn.freebsd.org/viewvc/base?view=revision&revision=240758[r240758]

The man:ahci[4] driver now supports a new man:loader[8] tunable `hw.ahci.force`. This controls whether it attempts to attach an AHCI-capable device even if it is configured to use legacy emulation. This is enabled by default. http://svn.freebsd.org/viewvc/base?view=revision&revision=229291[r229291]

The new man:cam[4]-based man:ata[4] driver now supports old man:loader[8] tunables `hw.ata.ata_dma` and `hw.ata.atapi_dma`, for backward compatibility. http://svn.freebsd.org/viewvc/base?view=revision&revision=231251[r231251]

The man:cam[4] driver now supports SEMB (SATA Enclosure Management Bridge) devices, which are equivalent to the SCSI SES/SAF-TE devices. http://svn.freebsd.org/viewvc/base?view=revision&revision=236778[r236778]

A new man:sysctl[8] variable `kern.cam.pmp.hide_special` has been added. This controls whether special PMP ports such as PMP (Port MultiPlier) configuration or SEMB (SATA Enclosure Management Bridge) will be exposed or hidden. The default value is `1` (hidden). http://svn.freebsd.org/viewvc/base?view=revision&revision=236765[r236765]

The ctl(4) driver, which supports man:cam[4] Target Layer and man:ctladm[8], a userland control utility, have been added. ctl(4) is a disk and processor device emulation subsystem supporting tagged queuing, SCSI task attribute, SCSI implicit command ordering, full task management, multiple ports, multiple simultaneous initiators, multiple simultaneous backing stores, mode sense/select, and error injection support. http://svn.freebsd.org/viewvc/base?view=revision&revision=231772[r231772]

The man:cd[4] driver now supports Audio CDs in the same way as man:acd[4] did. It will report a 2352-byte sector size to the man:geom[4] subsystem and use the `READ CD` command for reading the data. This fixes an interoperability issue with http://svnweb.FreeBSD.org/ports/head/multimedia/vlc/pkg-descr?revision=HEAD[`multimedia/vlc`]. http://svn.freebsd.org/viewvc/base?view=revision&revision=230014[r230014]

The man:da[4] driver now supports `BIO_DELETE`. To select the method, a new man:sysctl[8] variable `kern.cam.da.N.delete_method` has been added for each device instance. The following values are supported: http://svn.freebsd.org/viewvc/base?view=revision&revision=236677[r236677]

[[AEN632]]
[cols=",",options="header",]
|===
|Value |Method
|NONE |no provisioning support reported by the device
|DISABLE |provisioning support was disabled because of errors
|ZERO |WRITE SAME (10) command to write zeroes
|WS10 |WRITE SAME (10) command with UNMAP bit set
|WS16 |use WRITE SAME (16) command with UNMAP bit set
|UNMAP |use UNMAP command (equivalent of the ATA DSM TRIM command)
|===

When it was `NONE`, the device did not report logical block provisioning support via respective VPD pages. One can set a specific method for testing and it will be disabled automatically when not supported on the device.

The *MIRROR* man:geom[4] class now supports `BIO_DELETE`. This means the `TRIM` command will be issued on supported devices when deleting data. http://svn.freebsd.org/viewvc/base?view=revision&revision=238500[r238500]

The *MULTIPATH* man:geom[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 man:gmultipath[8] utility to manage the configured paths. http://svn.freebsd.org/viewvc/base?view=revision&revision=229303[r229303], http://svn.freebsd.org/viewvc/base?view=revision&revision=234916[r234916]

The *PART_LDM* man:geom[4] class has been added. This partition scheme has support for Logical Disk Manager, which is also known as dynamic volumes in Microsoft Windows NT. Note that JBOD, RAID0, and RAID5 volumes are not supported yet. http://svn.freebsd.org/viewvc/base?view=revision&revision=234406[r234406]

The *PART_MBR* man:geom[4] class now allows a primary or extended Linux swap partition to be used as the system dump device. http://svn.freebsd.org/viewvc/base?view=revision&revision=230763[r230763]

[amd64, i386] The *RAID* man:geom[4] class is now included in the `GENERIC` kernel.
http://svn.freebsd.org/viewvc/base?view=revision&revision=235877[r235877]

The *RAID* man:geom[4] class now supports disks with over 2TB capacity for the Intel metadata format. http://svn.freebsd.org/viewvc/base?view=revision&revision=230244[r230244]

The *RAID* man:geom[4] class now supports the DDF metadata format, which is defined in the SNIA Common RAID Disk Data Format Specification v2.0. http://svn.freebsd.org/viewvc/base?view=revision&revision=235874[r235874]

The *UNCOMPRESS* man:geom[4] class and the man:mkulzma[8] utility have been added. This class supports lzma compressed images like the *UZIP* man:geom[4] class and the man:mkuzip[8] utility. http://svn.freebsd.org/viewvc/base?view=revision&revision=235483[r235483]

[amd64, i386] The man:hpt27xx[4] driver has been added. This supports HighPoint RocketRAID 27xx-based SAS 6Gb/s HBA.
http://svn.freebsd.org/viewvc/base?view=revision&revision=229975[r229975]

[amd64, i386] The man:isci[4] driver, which supports the integrated SAS controller in the Intel C600 (Patsburg) chipset, has been added.
http://svn.freebsd.org/viewvc/base?view=revision&revision=231689[r231689]

Bugs in man:isp[4] target mode have been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=230019[r230019]

The man:ixgbe[4] driver now supports the Intel X540 adapter. http://svn.freebsd.org/viewvc/base?view=revision&revision=230775[r230775]

A bug in the man:mfi[4] driver has been fixed. It could cause some inconsistencies due to missed interrupt acknowledgements and output the following log message: http://svn.freebsd.org/viewvc/base?view=revision&revision=227533[r227533]

[source,screen]
----
mfi0: COMMAND 0xffffffXXXXXXXXXX TIMEOUT AFTER XX SECONDS
----

The man:mfi[4] driver now supports single-message MSI, and Drake Skinny and Thunderbolt cards. The man:loader[8] tunable `hw.mfi.msi` has been added and it is enabled by default. http://svn.freebsd.org/viewvc/base?view=revision&revision=229611[r229611], http://svn.freebsd.org/viewvc/base?view=revision&revision=234429[r234429]

The man:mps[4] driver has been updated to version 14.00.00.01-fbsd. This now supports Integrated RAID, WarpDrive controllers, WRITE12 and READ12 for direct I/O, SCSI protection information (EEDP), Transport Level Retries (TLR) for tape drives, and LSI's userland utility. http://svn.freebsd.org/viewvc/base?view=revision&revision=230920[r230920], http://svn.freebsd.org/viewvc/base?view=revision&revision=231679[r231679], http://svn.freebsd.org/viewvc/base?view=revision&revision=237876[r237876]

A bug in the man:mpt[4] driver has been fixed. It could attempt to attach MegaRAID cards which should be handled by the man:mfi[4] driver. http://svn.freebsd.org/viewvc/base?view=revision&revision=232562[r232562]

The man:usb[4] storage device driver now enables power save mode by default. http://svn.freebsd.org/viewvc/base?view=revision&revision=229107[r229107]

'''''

[[fs]]
==== File Systems

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. http://svn.freebsd.org/viewvc/base?view=revision&revision=233326[r233326]
* A memory leak when a ZFS volume is exported via the FreeBSD NFS server has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=234740[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 be detected as an error. A new man: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`. http://svn.freebsd.org/viewvc/base?view=revision&revision=233730[r233730]
* The man:nfsv4[4] filesystem now supports a man:sysctl[8] variable `vfs.nfsd.disable_checkutf8`. This disables the check for UTF-8 compliance in filenames. This is disabled by default. Note that enabling this may help wht some interoperability issues but results in an NFSv4 server that is not RFC 3530 compliant. http://svn.freebsd.org/viewvc/base?view=revision&revision=229799[r229799]

The man:tmpfs[5] filesystem is not an experimental implementation anymore. http://svn.freebsd.org/viewvc/base?view=revision&revision=234511[r234511]

The man:tmpfs[5] filesystem now supports a man:sysctl[8] variable `vfs.tmpfs.memory_reserved` to set the amount of required free pages when man:tmpfs[5] attempts to allocate a new node. http://svn.freebsd.org/viewvc/base?view=revision&revision=234849[r234849]

FreeBSD's ZFS filesystem has been updated by merging improvements from the illumos project. The following changes are made: http://svn.freebsd.org/viewvc/base?view=revision&revision=229578[r229578], http://svn.freebsd.org/viewvc/base?view=revision&revision=232328[r232328]

* New properties, `clones` and `written`, have been added.
* The man:zfs[8] `send` command now reports an estimated size of the stream.
* The man:zfs[8] `destroy` command now reports an estimate of the space which would be reclaimed, when `-n` is specified.
* The man:zfs[8] `get` command now supports the `-t type` flag to specify the data type.

A simple script `zfsboottest.sh` has been added to the source tree. This checks if the system is configured correctly when using ZFS as the root filesystem. The script is located at `/usr/src/tools/tools/zfsboottest.sh` and it uses the `zfsboottest` binary program in the same directory. http://svn.freebsd.org/viewvc/base?view=revision&revision=227705[r227705]

The binary program can be built and installed by the following command:

[source,screen]
----
# cd /usr/src/tools/tools/zfsboottest
# make
# make install
----

After that, the following command can be used to check the system. `poolname` is the ZFS storage pool name to boot:

[source,screen]
----
# sh /usr/src/tools/tools/zfsboottest/zfsboottest.sh poolname
----

The man:sysctl[8] variable `vfs.zfs.txg.timeout` has been changed from read-only to writable.

'''''

[[userland]]
=== Userland Changes

man:auth.conf[5] has been removed because it was deprecated years ago. http://svn.freebsd.org/viewvc/base?view=revision&revision=238481[r238481]

The man:camcontrol[8] utility now supports a `fwdownload` subcommand for firmware update on SCSI devices from Hitachi, HP, IBM, Plextor, Quantum, and Seagate. This subcommand will reprogram the firmware on devices connected over an ATA/SATA transport. http://svn.freebsd.org/viewvc/base?view=revision&revision=237740[r237740]

The man: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`. http://svn.freebsd.org/viewvc/base?view=revision&revision=230597[r230597]

The man:dump[8] utility now uses 53 characters for the device names in `/etc/dumpdates`. This was previously limited to 32 characters. http://svn.freebsd.org/viewvc/base?view=revision&revision=230047[r230047]

The man:fetch[1] utility now correctly supports a percent-encoded user and password part in a URL. http://svn.freebsd.org/viewvc/base?view=revision&revision=235253[r235253]

The man:fdlopen[3] function has been implemented. This is an interface for man:rtld[1] to load a shared object by file descriptor. http://svn.freebsd.org/viewvc/base?view=revision&revision=230410[r230410]

The man:fopen[3] function now supports the `x` (an exclusive create-and-open mode) option in the ISO/IEC 9899:2011 and C11 standards. http://svn.freebsd.org/viewvc/base?view=revision&revision=229845[r229845]

A bug in the man:gcc[1] compiler has been fixed. It could lead to incorrect calculations when `-ffast-math` is specified. http://svn.freebsd.org/viewvc/base?view=revision&revision=234023[r234023]

The man:hastd[8] daemon now supports specifying the filename of its process ID file in man:hast.conf[5]. http://svn.freebsd.org/viewvc/base?view=revision&revision=229509[r229509]

The man:ifconfig[8] utility now supports a `vlanhwcsum` parameter to set or reset checksum offloading capability on VLANs. http://svn.freebsd.org/viewvc/base?view=revision&revision=231221[r231221]

A bug in the man:ifconfig[8] utility which could display an error message in a jail with no IPv6 support has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=238872[r238872]

The man:ifconfig[8] utility now supports a `carp state state` parameter to set the state to `backup` or `master` forcibly. http://svn.freebsd.org/viewvc/base?view=revision&revision=232486[r232486]

The man:jail[8] utility now supports a configuration file (man:jail.conf[5]) for complex configurations. http://svn.freebsd.org/viewvc/base?view=revision&revision=235839[r235839]

The man:kdump[1] utility now supports a `-p pid` option to accept either a process ID or a thread ID. http://svn.freebsd.org/viewvc/base?view=revision&revision=237789[r237789]

The man:kenv[1] utility now supports a `-v` flag to display an entry in `name=value` format, and a `-N` flag to display only the name. http://svn.freebsd.org/viewvc/base?view=revision&revision=236118[r236118]

The man:kldload[8] utility now supports a `-n` flag to ignore the error status when the specified module is already loaded. http://svn.freebsd.org/viewvc/base?view=revision&revision=233560[r233560]

*libedit* has been updated to a NetBSD snapshot as of 28 December, 2009. http://svn.freebsd.org/viewvc/base?view=revision&revision=237738[r237738]

man:libmap.conf[5] now supports `include` and `includedir` directives. They allow to include specified files for the configuration. http://svn.freebsd.org/viewvc/base?view=revision&revision=236523[r236523]

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. http://svn.freebsd.org/viewvc/base?view=revision&revision=234372[r234372]

A new {cpp} 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 {cpp} runtime support for features such as run-time type information, dynamic casting, thread-safe static initializer, and exceptions. *libc++* implements the {cpp}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. http://svn.freebsd.org/viewvc/base?view=revision&revision=235798[r235798]

The man:limits[1] utility now supports a `-P pid` option to control limits for the specified process. http://svn.freebsd.org/viewvc/base?view=revision&revision=230919[r230919]

The man:pciconf[8] utility now supports a `-e` flag to display PCI error details in listing mode. When this is specified, the status of any error bits in the PCI status register and PCI-express device status register will be displayed. It also lists any errors indicated by version 1 of PCI-express Advanced Error Reporting (AER). http://svn.freebsd.org/viewvc/base?view=revision&revision=237731[r237731]

The man:procstat[1] utility now shows the superpage mapping flag when displaying process virtual memory mappings. http://svn.freebsd.org/viewvc/base?view=revision&revision=229710[r229710]

The man:procstat[1] utility now supports an `-e` flag to display process environment variables, an `-x` flag to display ELF auxiliary vectors, and an `-l` flag to display resource limits. http://svn.freebsd.org/viewvc/base?view=revision&revision=230917[r230917], http://svn.freebsd.org/viewvc/base?view=revision&revision=230918[r230918]

A bug in the man:remquo[3] functions where the quotient did not always have the correct sign when the remainder was `0`, and another bug that the remainder and quotient were both off by a bit in certain cases involving subnormal remainders, have been fixed. Note that these bugs affected all platforms except amd64 and i386. http://svn.freebsd.org/viewvc/base?view=revision&revision=234535[r234535]

The man:rtld[1] run-time linker now supports GCC's RELRO (RElocation Read-Only). This prevents the GOT (Global Offset Table) from being overwritten. http://svn.freebsd.org/viewvc/base?view=revision&revision=231579[r231579]

The man:rtld[1] run-time linker now supports a GNU hash section (`DT_GNU_HASH`), which is a replacement of optional ELF hash section. http://svn.freebsd.org/viewvc/base?view=revision&revision=235396[r235396]

The man:setbuf[1] utility and *libstdbuf* library have been added. This controls the default buffering behavior of standard stdio streams. http://svn.freebsd.org/viewvc/base?view=revision&revision=235139[r235139]

The man:top[1] utility now correctly supports per-thread I/O statistics of ZFS in the `-m 	io` option. http://svn.freebsd.org/viewvc/base?view=revision&revision=227702[r227702]

The man:unzip[1] utility now supports a `-Z` option for zipinfo. http://svn.freebsd.org/viewvc/base?view=revision&revision=234330[r234330]

The man: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*. http://svn.freebsd.org/viewvc/base?view=revision&revision=235785[r235785]

'''''

[[periodic-scripts]]
==== man:periodic[8] Scripts

A new variable `daily_status_zfs_zpool_list_enable` has been added. It controls whether or not to list all of the ZFS pools in `periodic/daily/404.status-zfs`. The default value is `YES`. http://svn.freebsd.org/viewvc/base?view=revision&revision=231721[r231721]

The default value of `daily_scrub_zfs_default_threshold` used in `periodic/daily/800.scrub-zfs` is now set to 35 days. http://svn.freebsd.org/viewvc/base?view=revision&revision=229381[r229381]

'''''

[[rc-scripts]]
==== man:rc[8] Scripts

The `rc.d/nfsd` script now sets the `vfs.nfsd.server_max_nfsvers` man:sysctl[8] variable to `4` when `nfsv4_server_enable` is set to `YES`. http://svn.freebsd.org/viewvc/base?view=revision&revision=227607[r227607]

A backwards compatibility issue when both `ipv6_enable=YES` and `ipv6_gateway_enable=YES` are defined at the same time has been fixed. http://svn.freebsd.org/viewvc/base?view=revision&revision=242189[r242189]

'''''

[[contrib]]
=== Contributed Software

*ISC BIND* has been updated to version 9.8.3-P4. http://svn.freebsd.org/viewvc/base?view=revision&revision=241417[r241417]

The *compiler-rt* library, which provides low-level target-specific interfaces such as functions in *libgcc*, has been updated to revision 147467. http://svn.freebsd.org/viewvc/base?view=revision&revision=236018[r236018]

*file* ( man:file[1]) has been updated to version 5.11. http://svn.freebsd.org/viewvc/base?view=revision&revision=237983[r237983]

GNU man:gperf[1] has been updated to version 3.0.3 (the latest GPLv2-licensed version). http://svn.freebsd.org/viewvc/base?view=revision&revision=230237[r230237]

*libarchive*, man:bsdtar[1], and man:cpio[1] have been updated to version 2.8.5. http://svn.freebsd.org/viewvc/base?view=revision&revision=229588[r229588]

The *libpcap* library has been updated to 1.2.1. http://svn.freebsd.org/viewvc/base?view=revision&revision=236167[r236167]

*libstdc++* has been updated to revision 135556 of the `gcc-4_2-branch` (the last LGPLv2-licensed version). http://svn.freebsd.org/viewvc/base?view=revision&revision=229551[r229551]

The *LLVM* compiler infrastructure and *clang*, a C language family front-end, version 3.1 have been imported. Note that it is not used for building the FreeBSD base system by default. http://svn.freebsd.org/viewvc/base?view=revision&revision=236144[r236144]

The `netcat` utility has been updated to version 5.1. http://svn.freebsd.org/viewvc/base?view=revision&revision=235971[r235971]

*OpenSSL* has been updated to version 0.9.8x. http://svn.freebsd.org/viewvc/base?view=revision&revision=237998[r237998]

The *tcpdump* (man:tcpdump[1]) utility has been updated to version 4.2.1. http://svn.freebsd.org/viewvc/base?view=revision&revision=236192[r236192]

The *TENEX C shell* (man:tcsh[1]) has been updated to version 6.18.01. http://svn.freebsd.org/viewvc/base?view=revision&revision=232633[r232633]

The *timezone* database has been updated to the *tzdata2012a* release. http://svn.freebsd.org/viewvc/base?view=revision&revision=233447[r233447]

The *zlib* library has been updated to version 1.2.7. http://svn.freebsd.org/viewvc/base?view=revision&revision=237691[r237691]

'''''

[[releng]]
=== Release Engineering and Integration

The supported version of the *KDE* desktop environment (http://svnweb.FreeBSD.org/ports/head/x11/kde4/pkg-descr?revision=HEAD[`x11/kde4`]) has been updated to 4.8.4.

[powerpc] Issues where the FreeBSD installation CDROM image caused a panic, and was not recognized on OpenBIOS-based environments like QEMU, have been fixed.
http://svn.freebsd.org/viewvc/base?view=revision&revision=234055[r234055]

'''''

[[upgrade]]
== Upgrading from previous releases of FreeBSD

[[AEN1113]]
=== Upgrading using man:freebsd-update[8] or a source-based procedure

[amd64, i386] Beginning with FreeBSD 6.2-RELEASE, binary upgrades between RELEASE versions (and snapshots of the various security branches) are supported using the man:freebsd-update[8] utility. The binary upgrade procedure will update unmodified userland utilities, as well as an unmodified `GENERIC` kernel, distributed as a part of an official FreeBSD release. The man:freebsd-update[8] utility requires that the host being upgraded have Internet connectivity.

Source-based upgrades (those based on recompiling the FreeBSD base system from source code) from previous versions are supported using to the instructions in `/usr/src/UPDATING`.

For more specific information about upgrading instructions, see http://www.FreeBSD.org/releases/9.1R/installation/.


*Important:* Upgrading FreeBSD should, of course, only be attempted after backing up _all_ data and configuration files.

'''''

[[AEN1133]]
=== User-visible incompatibilities

FreeBSD 9.0 and later have several incompatibilities in system configuration which you might want to know before upgrading your system. _Please read this section and the http://www.freebsd.org/releases/9.0R/relnotes-detailed/#UPGRADE[Upgrading Section in 9.0-RELEASE Release Notes] carefully before submitting a problem report and/or posting a question to the FreeBSD mailing lists._
