FreeBSD The Power to Serve

FreeBSD 9.1-RELEASE Release Notes

This is a simplified version of the FreeBSD 9.1-RELEASE release notes.

Important: If you are upgrading from a previous release of FreeBSD, please read upgrading section in the Release Notes for notable incompatibilities carefully.

Release Highlights

The highlights in the 9.1-RELEASE are the following. For more details, please see the Detailed Release Notes.

  • 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

  • [amd64, i386] The hwpmc(4) driver now supports the Intel Sandy Bridge microarchitecture. r234046

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

  • The bge(4) and brgphy(4) drivers have been improved:

    • 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 table argument in the ipfw(4) packet filter rule syntax now supports IP address, interface name, port number, and jail ID. r234597

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

  • The FreeBSD ip6(4) protocol stack now supports multiple FIB. r232292

  • The netmap(4) fast packet I/O framework has been added. The em(4), man:lem(4), igb(4), and re(4) drivers now support this framework. The technical details can be found at http://info.iet.unipi.it/~luigi/netmap/. r231650, r235527

  • The arcmsr(4) driver has been updated to version 1.20.00.25. r240758

  • The cam(4) driver now supports SEMB (SATA Enclosure Management Bridge) devices, which are equivalent to the SCSI SES/SAF-TE devices. r236778

  • The ctl(4) driver, which supports cam(4) Target Layer and 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. r231772

  • The MIRROR geom(4) class now supports BIO_DELETE. This means TRIM command will be issued on supported devices when deleting data. r238500

  • The MULTIPATH 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 gmultipath(8) utility to manage the configured paths. r229303, r234916

  • The UNCOMPRESS geom(4) class and the mkulzma(8) utility have been added. This class supports lzma compressed images like the UZIP geom(4) class and the mkuzip(8) utility. r235483

  • [amd64, i386] The hpt27xx(4) driver has been added. This supports HighPoint RocketRAID 27xx-based SAS 6Gb/s HBA. r229975

  • [amd64, i386] The isci(4) driver, which supports the integrated SAS controller in the Intel C600 (Patsburg) chipset, has been added. r231689

  • The ixgbe(4) driver now supports the Intel X540 adapter. r230775

  • The mfi(4) driver now supports single-message MSI, and Drake Skinny and Thunderbolt cards. The loader(8) tunable hw.mfi.msi has been added and it is enabled by default. r229611, r234429

  • The 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. r230920, r231679, r237876

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

  • The jail(8) utility now supports a configuration file (jail.conf(5)) for complex configurations. r235839

  • 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

  • ISC BIND has been updated to version 9.8.3-P4. r241417

  • The compiler-rt library, which provides low-level target-specific interfaces such as functions in libgcc, has been updated to revision 147467. r236018

  • file ( file(1)) has been updated to version 5.11. r237983

  • GNU gperf(1) has been updated to version 3.0.3 (the latest GPLv2-licensed version). r230237

  • libarchive, bsdtar(1), and cpio(1) have been updated to version 2.8.5. r229588

  • libpcap library has been updated to 1.2.1. r236167

  • libstdc++ have been updated to rev 135556 of gcc-4_2-branch (the last LGPLv2-licensed version). 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. r236144

  • The netcat utility has been updated to version 5.1. r235971

  • OpenSSL has been updated to version 0.9.8x. r237998

  • tcpdump (tcpdump(1)) utility has been updated to version 4.2.1. r236192

  • The TENEX C shell (tcsh(1)) has been updated to version 6.18.01. r232633

  • The timezone database has been updated to the tzdata2012a release. r233447

  • zlib library has been updated to version 1.2.7. r237691

  • The supported version of the KDE desktop environment (x11/kde4) has been updated to 4.8.4.