diff --git a/UPDATING b/UPDATING index c2890fe69262..2e1d7599541d 100644 --- a/UPDATING +++ b/UPDATING @@ -665,1264 +665,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: The stable/9 branch created in subversion. This corresponds to the RELENG_9 branch in CVS. -20110913: - This commit modifies vfs_register() so that it uses a hash - calculation to set vfc_typenum, which is enabled by default. - The first time a system is booted after this change, the - vfc_typenum values will change for all file systems. The - main effect of this is a change to the NFS server file handles - for file systems that use vfc_typenum in their fsid, such as ZFS. - It will, however, prevent vfc_typenum from changing when file - systems are loaded in a different order for subsequent reboots. - To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf - until you are ready to remount all NFS clients after a reboot. - -20110828: - Bump the shared library version numbers for libraries that - do not use symbol versioning, have changed the ABI compared - to stable/8 and which shared library version was not bumped. - Done as part of 9.0-RELEASE cycle. - -20110815: - During the merge of Capsicum features, the fget(9) KPI was modified. - This may require the rebuilding of out-of-tree device drivers -- - issues have been reported specifically with the nVidia device driver. - __FreeBSD_version is bumped to 900041. - - Also, there is a period between 20110811 and 20110814 where the - special devices /dev/{stdin,stdout,stderr} did not work correctly. - Building world from a kernel during that window may not work. - -20110628: - The packet filter (pf) code has been updated to OpenBSD 4.5. - You need to update userland tools to be in sync with kernel. - This update breaks backward compatibility with earlier pfsync(4) - versions. Care must be taken when updating redundant firewall setups. - -20110608: - The following sysctls and tunables are retired on x86 platforms: - machdep.hlt_cpus - machdep.hlt_logical_cpus - The following sysctl is retired: - machdep.hyperthreading_allowed - The sysctls were supposed to provide a way to dynamically offline and - online selected CPUs on x86 platforms, but the implementation has not - been reliable especially with SCHED_ULE scheduler. - machdep.hyperthreading_allowed tunable is still available to ignore - hyperthreading CPUs at OS level. - Individual CPUs can be disabled using hint.lapic.X.disabled tunable, - where X is an APIC ID of a CPU. Be advised, though, that disabling - CPUs in non-uniform fashion will result in non-uniform topology and - may lead to sub-optimal system performance with SCHED_ULE, which is - a default scheduler. - -20110607: - cpumask_t type is retired and cpuset_t is used in order to describe - a mask of CPUs. - -20110531: - Changes to ifconfig(8) for dynamic address family detection mandate - that you are running a kernel of 20110525 or later. Make sure to - follow the update procedure to boot a new kernel before installing - world. - -20110513: - Support for sun4v architecture is officially dropped - -20110503: - Several KPI breaking changes have been committed to the mii(4) layer, - the PHY drivers and consequently some Ethernet drivers using mii(4). - This means that miibus.ko and the modules of the affected Ethernet - drivers need to be recompiled. - - Note to kernel developers: Given that the OUI bit reversion problem - was fixed as part of these changes all mii(4) commits related to OUIs, - i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific - handling, no longer can be merged verbatim to stable/8 and previous - branches. - -20110430: - Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci' - into their kernel configurations along with 'device pci'. - -20110427: - The default NFS client is now the new NFS client, so fstype "newnfs" - is now "nfs" and the regular/old NFS client is now fstype "oldnfs". - Although mounts via fstype "nfs" will usually work without userland - changes, it is recommended that the mount(8) and mount_nfs(8) - commands be rebuilt from sources and that a link to mount_nfs called - mount_oldnfs be created. The new client is compiled into the - kernel with "options NFSCL" and this is needed for diskless root - file systems. The GENERIC kernel configs have been changed to use - NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER. - To use the regular/old client, you can "mount -t oldnfs ...". For - a diskless root file system, you must also include a line like: - - vfs.root.mountfrom="oldnfs:" - - in the boot/loader.conf on the root fs on the NFS server to make - a diskless root fs use the old client. - -20110424: - The GENERIC kernels for all architectures now default to the new - CAM-based ATA stack. It means that all legacy ATA drivers were - removed and replaced by respective CAM drivers. If you are using - ATA device names in /etc/fstab or other places, make sure to update - them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY, - where 'Y's are the sequential numbers starting from zero for each type - in order of detection, unless configured otherwise with tunables, - see cam(4)). There will be symbolic links created in /dev/ to map - old adX devices to the respective adaY. They should provide basic - compatibility for file systems mounting in most cases, but they do - not support old user-level APIs and do not have respective providers - in GEOM. Consider using updated management tools with new device names. - - It is possible to load devices ahci, ata, siis and mvs as modules, - but option ATA_CAM should remain in kernel configuration to make ata - module work as CAM driver supporting legacy ATA controllers. Device ata - still can be used in modular fashion (atacore + ...). Modules atadisk - and atapi* are not used and won't affect operation in ATA_CAM mode. - Note that to use CAM-based ATA kernel should include CAM devices - scbus, pass, da (or explicitly ada), cd and optionally others. All of - them are parts of the cam module. - - ataraid(4) functionality is now supported by the RAID GEOM class. - To use it you can load geom_raid kernel module and use graid(8) tool - for management. Instead of /dev/arX device names, use /dev/raid/rX. - - No kernel config options or code have been removed, so if a problem - arises, please report it and optionally revert to the old ATA stack. - In order to do it you can remove from the kernel config: - options ATA_CAM - device ahci - device mvs - device siis - , and instead add back: - device atadisk # ATA disk drives - device ataraid # ATA RAID drives - device atapicd # ATAPI CDROM drives - device atapifd # ATAPI floppy drives - device atapist # ATAPI tape drives - -20110423: - The default NFS server has been changed to the new server, which - was referred to as the experimental server. If you need to switch - back to the old NFS server, you must now put the "-o" option on - both the mountd and nfsd commands. This can be done using the - mountd_flags and nfs_server_flags rc.conf variables until an - update to the rc scripts is committed, which is coming soon. - -20110418: - The GNU Objective-C runtime library (libobjc), and other Objective-C - related components have been removed from the base system. If you - require an Objective-C library, please use one of the available ports. - -20110331: - ath(4) has been split into bus- and device- modules. if_ath contains - the HAL, the TX rate control and the network device code. if_ath_pci - contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb - contains the AHB glue. Users need to load both if_ath_pci and if_ath - in order to use ath on everything else. - - TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only - need to load if_ath and if_ath_pci for ath(4) operation. - -20110314: - As part of the replacement of sysinstall, the process of building - release media has changed significantly. For details, please re-read - release(7), which has been updated to reflect the new build process. - -20110218: - GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD. This - is the last available version under GPLv2. It brings a number of new - features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE - 4.1 and SSE 4.2), better support for powerpc64, a number of new - directives, and lots of other small improvements. See the ChangeLog - file in contrib/binutils for the full details. - -20110218: - IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868 - compliant, and will now use half of hash for authentication. - This will break interoperability with all stacks (including all - actual FreeBSD versions) who implement - draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for - authentication). - The only workaround with such peers is to use another HMAC - algorithm for IPsec ("phase 2") authentication. - -20110207: - Remove the uio_yield prototype and symbol. This function has - been misnamed since it was introduced and should not be - globally exposed with this name. The equivalent functionality - is now available using kern_yield(curthread->td_user_pri). - The function remains undocumented. - -20110112: - A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers, - symmetric with the existing SYSCTL_[ADD_]QUAD. Type checking - for scalar sysctls is defined but disabled. Code that needs - UQUAD to pass the type checking that must compile on older - systems where the define is not present can check against - __FreeBSD_version >= 900030. - - The system dialog(1) has been replaced with a new version previously - in ports as devel/cdialog. dialog(1) is mostly command-line compatible - with the previous version, but the libdialog associated with it has - a largely incompatible API. As such, the original version of libdialog - will be kept temporarily as libodialog, until its base system consumers - are replaced or updated. Bump __FreeBSD_version to 900030. - -20110103: - If you are trying to run make universe on a -stable system, and you get - the following warning: - "Makefile", line 356: "Target architecture for i386/conf/GENERIC - unknown. config(8) likely too old." - or something similar to it, then you must upgrade your -stable system - to 8.2-Release or newer (really, any time after r210146 7/15/2010 in - stable/8) or build the config from the latest stable/8 branch and - install it on your system. - - Prior to this date, building a current universe on 8-stable system from - between 7/15/2010 and 1/2/2011 would result in a weird shell parsing - error in the first kernel build phase. A new config on those old - systems will fix that problem for older versions of -current. - -20101228: - The TCP stack has been modified to allow Khelp modules to interact with - it via helper hook points and store per-connection data in the TCP - control block. Bump __FreeBSD_version to 900029. User space tools that - rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to - be recompiled. - -20101114: - Generic IEEE 802.3 annex 31B full duplex flow control support has been - added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along - with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted - to take advantage of it instead of using custom implementations. This - means that these drivers now no longer unconditionally advertise - support for flow control but only do so if flow control is a selected - media option. This was implemented in the generic support that way in - order to allow flow control to be switched on and off via ifconfig(8) - with the PHY specific default to typically off in order to protect - from unwanted effects. Consequently, if you used flow control with - one of the above mentioned drivers you now need to explicitly enable - it, for example via: - ifconfig bge0 media auto mediaopt flowcontrol - - Along with the above mentioned changes generic support for setting - 1000baseT master mode also has been added and brgphy(4), ciphy(4), - e1000phy(4) as well as ip1000phy(4) have been converted to take - advantage of it. This means that these drivers now no longer take the - link0 parameter for selecting master mode but the master media option - has to be used instead, for example like in the following: - ifconfig bge0 media 1000baseT mediaopt full-duplex,master - - Selection of master mode now is also available with all other PHY - drivers supporting 1000baseT. - -20101111: - The TCP stack has received a significant update to add support for - modularised congestion control and generally improve the clarity of - congestion control decisions. Bump __FreeBSD_version to 900025. User - space tools that rely on the size of struct tcpcb in tcp_var.h (e.g. - sockstat) need to be recompiled. - -20101002: - The man(1) utility has been replaced by a new version that no longer - uses /etc/manpath.config. Please consult man.conf(5) for how to - migrate local entries to the new format. - -20100928: - The copyright strings printed by login(1) and sshd(8) at the time of a - new connection have been removed to follow other operating systems and - upstream sshd. - -20100915: - A workaround for a fixed ld bug has been removed in kernel code, - so make sure that your system ld is built from sources after - revision 210245 from 2010-07-19 (r211583 if building head kernel - on stable/8, r211584 for stable/7; both from 2010-08-21). - A symptom of incorrect ld version is different addresses for - set_pcpu section and __start_set_pcpu symbol in kernel and/or modules. - -20100913: - The $ipv6_prefer variable in rc.conf(5) has been split into - $ip6addrctl_policy and $ipv6_activate_all_interfaces. - - The $ip6addrctl_policy is a variable to choose a pre-defined - address selection policy set by ip6addrctl(8). A value - "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The - default is "AUTO". - - The $ipv6_activate_all_interfaces specifies whether IFDISABLED - flag (see an entry of 20090926) is set on an interface with no - corresponding $ifconfig_IF_ipv6 line. The default is "NO" for - security reason. If you want IPv6 link-local address on all - interfaces by default, set this to "YES". - - The old ipv6_prefer="YES" is equivalent to - ipv6_activate_all_interfaces="YES" and - ip6addrctl_policy="ipv6_prefer". - -20100913: - DTrace has grown support for userland tracing. Due to this, DTrace is - now i386 and amd64 only. - dtruss(1) is now installed by default on those systems and a new - kernel module is needed for userland tracing: fasttrap. - No changes to your kernel config file are necessary to enable - userland tracing, but you might consider adding 'STRIP=' and - 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want - to have informative userland stack traces in DTrace (ustack). - -20100725: - The acpi_aiboost(4) driver has been removed in favor of the new - aibs(4) driver. You should update your kernel configuration file. - -20100722: - BSD grep has been imported to the base system and it is built by - default. It is completely BSD licensed, highly GNU-compatible, uses - less memory than its GNU counterpart and has a small codebase. - However, it is slower than its GNU counterpart, which is mostly - noticeable for larger searches, for smaller ones it is measurable - but not significant. The reason is complex, the most important factor - is that we lack a modern and efficient regex library and GNU - overcomes this by optimizing the searches internally. Future work - on improving the regex performance is planned, for the meantime, - users that need better performance, can build GNU grep instead by - setting the WITH_GNU_GREP knob. - -20100713: - Due to the import of powerpc64 support, all existing powerpc kernel - configuration files must be updated with a machine directive like this: - machine powerpc powerpc - - In addition, an updated config(8) is required to build powerpc kernels - after this change. - -20100713: - A new version of ZFS (version 15) has been merged to -HEAD. - This version uses a python library for the following subcommands: - zfs allow, zfs unallow, zfs groupspace, zfs userspace. - For full functionality of these commands the following port must - be installed: sysutils/py-zfs - -20100429: - 'vm_page's are now hashed by physical address to an array of mutexes. - Currently this is only used to serialize access to hold_count. Over - time the page queue mutex will be peeled away. This changes the size - of pmap on every architecture. And requires all callers of vm_page_hold - and vm_page_unhold to be updated. - -20100402: - WITH_CTF can now be specified in src.conf (not recommended, there - are some problems with static executables), make.conf (would also - affect ports which do not use GNU make and do not override the - compile targets) or in the kernel config (via "makeoptions - WITH_CTF=yes"). - When WITH_CTF was specified there before this was silently ignored, - so make sure that WITH_CTF is not used in places which could lead - to unwanted behavior. - -20100311: - The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 - to allow 32-bit compatibility on non-x86 platforms. All kernel - configurations on amd64 and ia64 platforms using these options must - be modified accordingly. - -20100113: - The utmp user accounting database has been replaced with utmpx, - the user accounting interface standardized by POSIX. - Unfortunately the semantics of utmp and utmpx don't match, - making it practically impossible to support both interfaces. - The user accounting database is used by tools like finger(1), - last(1), talk(1), w(1) and ac(8). - - All applications in the base system use utmpx. This means only - local binaries (e.g. from the ports tree) may still use these - utmp database files. These applications must be rebuilt to make - use of utmpx. - - After the system has been upgraded, it is safe to remove the old - log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*), - assuming their contents is of no importance anymore. Old wtmp - databases can only be used by last(1) and ac(8) after they have - been converted to the new format using wtmpcvt(1). - -20100108: - Introduce the kernel thread "deadlock resolver" (which can be enabled - via the DEADLKRES option, see NOTES for more details) and the - sleepq_type() function for sleepqueues. - -20091202: - The rc.firewall and rc.firewall6 were unified, and - rc.firewall6 and rc.d/ip6fw were removed. - According to the removal of rc.d/ip6fw, ipv6_firewall_* rc - variables are obsoleted. Instead, the following new rc - variables are added to rc.d/ipfw: - - firewall_client_net_ipv6, firewall_simple_iif_ipv6, - firewall_simple_inet_ipv6, firewall_simple_oif_ipv6, - firewall_simple_onet_ipv6, firewall_trusted_ipv6 - - The meanings correspond to the relevant IPv4 variables. - -20091125: - 8.0-RELEASE. - -20091113: - The default terminal emulation for syscons(4) has been changed - from cons25 to xterm on all platforms except pc98. This means - that the /etc/ttys file needs to be updated to ensure correct - operation of applications on the console. - - The terminal emulation style can be toggled per window by using - vidcontrol(1)'s -T flag. The TEKEN_CONS25 kernel configuration - options can be used to change the compile-time default back to - cons25. - - To prevent graphical artifacts, make sure the TERM environment - variable is set to match the terminal emulation that is being - performed by syscons(4). - -20091109: - The layout of the structure ieee80211req_scan_result has changed. - Applications that require wireless scan results (e.g. ifconfig(8)) - from net80211 need to be recompiled. - - Applications such as wpa_supplicant(8) may require a full world - build without using NO_CLEAN in order to get synchronized with the - new structure. - -20091025: - The iwn(4) driver has been updated to support the 5000 and 5150 series. - There's one kernel module for each firmware. Adding "device iwnfw" - to the kernel configuration file means including all three firmware - images inside the kernel. If you want to include just the one for - your wireless card, use the devices iwn4965fw, iwn5000fw or - iwn5150fw. - -20090926: - The rc.d/network_ipv6, IPv6 configuration script has been integrated - into rc.d/netif. The changes are the following: - - 1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF - for IPv4. For aliases, $ifconfig_IF_aliasN should be used. - Note that both variables need the "inet6" keyword at the head. - - Do not set $ipv6_network_interfaces manually if you do not - understand what you are doing. It is not needed in most cases. - - $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but - they are obsolete. - - 2. $ipv6_enable is obsolete. Use $ipv6_prefer and - "inet6 accept_rtadv" keyword in ifconfig(8) instead. - - If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and - all configured interfaces have "inet6 accept_rtadv" in the - $ifconfig_IF_ipv6. These are for backward compatibility. - - 3. A new variable $ipv6_prefer has been added. If NO, IPv6 - functionality of interfaces with no corresponding - $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag, - and the default address selection policy of ip6addrctl(8) - is the IPv4-preferred one (see rc.d/ip6addrctl for more details). - Note that if you want to configure IPv6 functionality on the - disabled interfaces after boot, first you need to clear the flag by - using ifconfig(8) like: - - ifconfig em0 inet6 -ifdisabled - - If YES, the default address selection policy is set as - IPv6-preferred. - - The default value of $ipv6_prefer is NO. - - 4. If your system need to receive Router Advertisement messages, - define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8) - scripts automatically invoke rtsol(8) when the interface becomes - UP. The Router Advertisement messages are used for SLAAC - (State-Less Address AutoConfiguration). - -20090922: - 802.11s D3.03 support was committed. This is incompatible with the - previous code, which was based on D3.0. - -20090912: - A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value - of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to - control whether accepting Router Advertisement messages or not. - Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and - a sysctl variable net.inet6.ip6.auto_linklocal is its default value. - The ifconfig(8) utility now supports these flags. - -20090910: - ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for - mount(8) and -a option for df(1) to see them. - -20090825: - The old tunable hw.bus.devctl_disable has been superseded by - hw.bus.devctl_queue. hw.bus.devctl_disable=1 in loader.conf should be - replaced by hw.bus.devctl_queue=0. The default for this new tunable - is 1000. - -20090813: - Remove the option STOP_NMI. The default action is now to use NMI only - for KDB via the newly introduced function stop_cpus_hard() and - maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64. - -20090803: - The stable/8 branch created in subversion. This corresponds to the - RELENG_8 branch in CVS. - -20090719: - Bump the shared library version numbers for all libraries that do not - use symbol versioning as part of the 8.0-RELEASE cycle. Bump - __FreeBSD_version to 800105. - -20090714: - Due to changes in the implementation of virtual network stack support, - all network-related kernel modules must be recompiled. As this change - breaks the ABI, bump __FreeBSD_version to 800104. - -20090713: - The TOE interface to the TCP syncache has been modified to remove - struct tcpopt () from the ABI of the network stack. - The cxgb driver is the only TOE consumer affected by this change, and - needs to be recompiled along with the kernel. As this change breaks - the ABI, bump __FreeBSD_version to 800103. - -20090712: - Padding has been added to struct tcpcb, sackhint and tcpstat in - to facilitate future MFCs and bug fixes whilst - maintaining the ABI. However, this change breaks the ABI, so bump - __FreeBSD_version to 800102. User space tools that rely on the size of - any of these structs (e.g. sockstat) need to be recompiled. - -20090630: - The NFS_LEGACYRPC option has been removed along with the old kernel - RPC implementation that this option selected. Kernel configurations - may need to be adjusted. - -20090629: - The network interface device nodes at /dev/net/ have been - removed. All ioctl operations can be performed the normal way using - routing sockets. The kqueue functionality can generally be replaced - with routing sockets. - -20090628: - The documentation from the FreeBSD Documentation Project (Handbook, - FAQ, etc.) is now installed via packages by sysinstall(8) and under - the /usr/local/share/doc/freebsd directory instead of /usr/share/doc. - -20090624: - The ABI of various structures related to the SYSV IPC API have been - changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel - options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to - 800100. - -20090622: - Layout of struct vnet has changed as routing related variables were - moved to their own Vimage module. Modules need to be recompiled. Bump - __FreeBSD_version to 800099. - -20090619: - NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024 - respectively. As long as no more than 16 groups per process are used, - no changes should be visible. When more than 16 groups are used, old - binaries may fail if they call getgroups() or getgrouplist() with - statically sized storage. Recompiling will work around this, but - applications should be modified to use dynamically allocated storage - for group arrays as POSIX.1-2008 does not cap an implementation's - number of supported groups at NGROUPS_MAX+1 as previous versions did. - - NFS and portalfs mounts may also be affected as the list of groups is - truncated to 16. Users of NFS who use more than 16 groups, should - take care that negative group permissions are not used on the exported - file systems as they will not be reliable unless a GSSAPI based - authentication method is used. - -20090616: - The compiling option ADAPTIVE_LOCKMGRS has been introduced. This - option compiles in the support for adaptive spinning for lockmgrs - which want to enable it. The lockinit() function now accepts the flag - LK_ADAPTIVE in order to make the lock object subject to adaptive - spinning when both held in write and read mode. - -20090613: - The layout of the structure returned by IEEE80211_IOC_STA_INFO has - changed. User applications that use this ioctl need to be rebuilt. - -20090611: - The layout of struct thread has changed. Kernel and modules need to - be rebuilt. - -20090608: - The layout of structs ifnet, domain, protosw and vnet_net has changed. - Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097. - -20090602: - window(1) has been removed from the base system. It can now be - installed from ports. The port is called misc/window. - -20090601: - The way we are storing and accessing `routing table' entries has - changed. Programs reading the FIB, like netstat, need to be - re-compiled. - -20090601: - A new netisr implementation has been added for FreeBSD 8. Network - file system modules, such as igmp, ipdivert, and others, should be - rebuilt. - Bump __FreeBSD_version to 800096. - -20090530: - Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no - more valid. - -20090530: - Add VOP_ACCESSX(9). File system modules need to be rebuilt. - Bump __FreeBSD_version to 800094. - -20090529: - Add mnt_xflag field to 'struct mount'. File system modules need to be - rebuilt. - Bump __FreeBSD_version to 800093. - -20090528: - The compiling option ADAPTIVE_SX has been retired while it has been - introduced the option NO_ADAPTIVE_SX which handles the reversed logic. - The KPI for sx_init_flags() changes as accepting flags: - SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has - been introduced in order to handle the reversed logic. - Bump __FreeBSD_version to 800092. - -20090527: - Add support for hierarchical jails. Remove global securelevel. - Bump __FreeBSD_version to 800091. - -20090523: - The layout of struct vnet_net has changed, therefore modules - need to be rebuilt. - Bump __FreeBSD_version to 800090. - -20090523: - The newly imported zic(8) produces a new format in the output. Please - run tzsetup(8) to install the newly created data to /etc/localtime. - -20090520: - The sysctl tree for the usb stack has renamed from hw.usb2.* to - hw.usb.* and is now consistent again with previous releases. - -20090520: - 802.11 monitor mode support was revised and driver api's were changed. - Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead - of DLT_IEEE802_11. No user-visible data structures were changed but - applications that use DLT_IEEE802_11 may require changes. - Bump __FreeBSD_version to 800088. - -20090430: - The layout of the following structs has changed: sysctl_oid, - socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, - vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or - panics may be experienced. World rebuild is required for - correctly checking networking state from userland. - Bump __FreeBSD_version to 800085. - -20090429: - MLDv2 and Source-Specific Multicast (SSM) have been merged - to the IPv6 stack. VIMAGE hooks are in but not yet used. - The implementation of SSM within FreeBSD's IPv6 stack closely - follows the IPv4 implementation. - - For kernel developers: - - * The most important changes are that the ip6_output() and - ip6_input() paths no longer take the IN6_MULTI_LOCK, - and this lock has been downgraded to a non-recursive mutex. - - * As with the changes to the IPv4 stack to support SSM, filtering - of inbound multicast traffic must now be performed by transport - protocols within the IPv6 stack. This does not apply to TCP and - SCTP, however, it does apply to UDP in IPv6 and raw IPv6. - - * The KPIs used by IPv6 multicast are similar to those used by - the IPv4 stack, with the following differences: - * im6o_mc_filter() is analogous to imo_multicast_filter(). - * The legacy KAME entry points in6_joingroup and in6_leavegroup() - are shimmed to in6_mc_join() and in6_mc_leave() respectively. - * IN6_LOOKUP_MULTI() has been deprecated and removed. - * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs - for MLDv1 have an additional 'timer' argument which is used to - jitter the initial membership report for the solicited-node - multicast membership on-link. - * This is not strictly needed for MLDv2, which already jitters - its report transmissions. However, the 'timer' argument is - preserved in case MLDv1 is active on the interface. - - * The KAME linked-list based IPv6 membership implementation has - been refactored to use a vector similar to that used by the IPv4 - stack. - Code which maintains a list of its own multicast memberships - internally, e.g. carp, has been updated to reflect the new - semantics. - - * There is a known Lock Order Reversal (LOR) due to in6_setscope() - acquiring the IF_AFDATA_LOCK and being called within ip6_output(). - Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an - implementation constraint which needs to be addressed in HEAD. - - For application developers: - - * The changes are broadly similar to those made for the IPv4 - stack. - - * The use of IPv4 and IPv6 multicast socket options on the same - socket, using mapped addresses, HAS NOT been tested or supported. - - * There are a number of issues with the implementation of various - IPv6 multicast APIs which need to be resolved in the API surface - before the implementation is fully compatible with KAME userland - use, and these are mostly to do with interface index treatment. - - * The literature available discusses the use of either the delta / ASM - API with setsockopt(2)/getsockopt(2), or the full-state / ASM API - using setsourcefilter(3)/getsourcefilter(3). For more information - please refer to RFC 3768, 'Socket Interface Extensions for - Multicast Source Filters'. - - * Applications which use the published RFC 3678 APIs should be fine. - - For systems administrators: - - * The mtest(8) utility has been refactored to support IPv6, in - addition to IPv4. Interface addresses are no longer accepted - as arguments, their names must be used instead. The utility - will map the interface name to its first IPv4 address as - returned by getifaddrs(3). - - * The ifmcstat(8) utility has also been updated to print the MLDv2 - endpoint state and source filter lists via sysctl(3). - - * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable - loopback of IPv6 multicast datagrams by default; it defaults to 1 - to preserve the existing behaviour. Disabling multicast loopback is - recommended for optimal system performance. - - * The IPv6 MROUTING code has been changed to examine this sysctl - instead of attempting to perform a group lookup before looping - back forwarded datagrams. - - Bump __FreeBSD_version to 800084. - -20090422: - Implement low-level Bluetooth HCI API. - Bump __FreeBSD_version to 800083. - -20090419: - The layout of struct malloc_type, used by modules to register new - memory allocation types, has changed. Most modules will need to - be rebuilt or panics may be experienced. - Bump __FreeBSD_version to 800081. - -20090415: - Anticipate overflowing inp_flags - add inp_flags2. - This changes most offsets in inpcb, so checking v4 connection - state will require a world rebuild. - Bump __FreeBSD_version to 800080. - -20090415: - Add an llentry to struct route and struct route_in6. Modules - embedding a struct route will need to be recompiled. - Bump __FreeBSD_version to 800079. - -20090414: - The size of rt_metrics_lite and by extension rtentry has changed. - Networking administration apps will need to be recompiled. - The route command now supports show as an alias for get, weighting - of routes, sticky and nostick flags to alter the behavior of stateful - load balancing. - Bump __FreeBSD_version to 800078. - -20090408: - Do not use Giant for kbdmux(4) locking. This is wrong and - apparently causing more problems than it solves. This will - re-open the issue where interrupt handlers may race with - kbdmux(4) in polling mode. Typical symptoms include (but - not limited to) duplicated and/or missing characters when - low level console functions (such as gets) are used while - interrupts are enabled (for example geli password prompt, - mountroot prompt etc.). Disabling kbdmux(4) may help. - -20090407: - The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; - kernel modules referencing any of the above need to be recompiled. - Bump __FreeBSD_version to 800075. - -20090320: - GEOM_PART has become the default partition slicer for storage devices, - replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It - introduces some changes: - - MSDOS/EBR: the devices created from MSDOS extended partition entries - (EBR) can be named differently than with GEOM_MBR and are now symlinks - to devices with offset-based names. fstabs may need to be modified. - - BSD: the "geometry does not match label" warning is harmless in most - cases but it points to problems in file system misalignment with - disk geometry. The "c" partition is now implicit, covers the whole - top-level drive and cannot be (mis)used by users. - - General: Kernel dumps are now not allowed to be written to devices - whose partition types indicate they are meant to be used for file - systems (or, in case of MSDOS partitions, as something else than - the "386BSD" type). - - Most of these changes date approximately from 200812. - -20090319: - The uscanner(4) driver has been removed from the kernel. This follows - Linux removing theirs in 2.6 and making libusb the default interface - (supported by sane). - -20090319: - The multicast forwarding code has been cleaned up. netstat(1) - only relies on KVM now for printing bandwidth upcall meters. - The IPv4 and IPv6 modules are split into ip_mroute_mod and - ip6_mroute_mod respectively. The config(5) options for statically - compiling this code remain the same, i.e. 'options MROUTING'. - -20090315: - Support for the IFF_NEEDSGIANT network interface flag has been - removed, which means that non-MPSAFE network device drivers are no - longer supported. In particular, if_ar, if_sr, and network device - drivers from the old (legacy) USB stack can no longer be built or - used. - -20090313: - POSIX.1 Native Language Support (NLS) has been enabled in libc and - a bunch of new language catalog files have also been added. - This means that some common libc messages are now localized and - they depend on the LC_MESSAGES environmental variable. - -20090313: - The k8temp(4) driver has been renamed to amdtemp(4) since - support for Family 10 and Family 11 CPU families was added. - -20090309: - IGMPv3 and Source-Specific Multicast (SSM) have been merged - to the IPv4 stack. VIMAGE hooks are in but not yet used. - - For kernel developers, the most important changes are that the - ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), - and this lock has been downgraded to a non-recursive mutex. - - Transport protocols (UDP, Raw IP) are now responsible for filtering - inbound multicast traffic according to group membership and source - filters. The imo_multicast_filter() KPI exists for this purpose. - Transports which do not use multicast (SCTP, TCP) already reject - multicast by default. Forwarding and receive performance may improve - as a mutex acquisition is no longer needed in the ip_input() - low-level input path. in_addmulti() and in_delmulti() are shimmed - to new KPIs which exist to support SSM in-kernel. - - For application developers, it is recommended that loopback of - multicast datagrams be disabled for best performance, as this - will still cause the lock to be taken for each looped-back - datagram transmission. The net.inet.ip.mcast.loop sysctl may - be tuned to 0 to disable loopback by default; it defaults to 1 - to preserve the existing behaviour. - - For systems administrators, to obtain best performance with - multicast reception and multiple groups, it is always recommended - that a card with a suitably precise hash filter is used. Hash - collisions will still result in the lock being taken within the - transport protocol input path to check group membership. - - If deploying FreeBSD in an environment with IGMP snooping switches, - it is recommended that the net.inet.igmp.sendlocal sysctl remain - enabled; this forces 224.0.0.0/24 group membership to be announced - via IGMP. - - The size of 'struct igmpstat' has changed; netstat needs to be - recompiled to reflect this. - Bump __FreeBSD_version to 800070. - -20090309: - libusb20.so.1 is now installed as libusb.so.1 and the ports system - updated to use it. This requires a buildworld/installworld in order to - update the library and dependencies (usbconfig, etc). Its advisable to - rebuild all ports which uses libusb. More specific directions are given - in the ports collection UPDATING file. Any /etc/libmap.conf entries for - libusb are no longer required and can be removed. - -20090302: - A workaround is committed to allow the creation of System V shared - memory segment of size > 2 GB on the 64-bit architectures. - Due to a limitation of the existing ABI, the shm_segsz member - of the struct shmid_ds, returned by shmctl(IPC_STAT) call is - wrong for large segments. Note that limits must be explicitly - raised to allow such segments to be created. - -20090301: - The layout of struct ifnet has changed, requiring a rebuild of all - network device driver modules. - -20090227: - The /dev handling for the new USB stack has changed, a - buildworld/installworld is required for libusb20. - -20090223: - The new USB2 stack has now been permanently moved in and all kernel and - module names reverted to their previous values (eg, usb, ehci, ohci, - ums, ...). The old usb stack can be compiled in by prefixing the name - with the letter 'o', the old usb modules have been removed. - Updating entry 20090216 for xorg and 20090215 for libmap may still - apply. - -20090217: - The rc.conf(5) option if_up_delay has been renamed to - defaultroute_delay to better reflect its purpose. If you have - customized this setting in /etc/rc.conf you need to update it to - use the new name. - -20090216: - xorg 7.4 wants to configure its input devices via hald which does not - yet work with USB2. If the keyboard/mouse does not work in xorg then - add - Option "AllowEmptyInput" "off" - to your ServerLayout section. This will cause X to use the configured - kbd and mouse sections from your xorg.conf. - -20090215: - The GENERIC kernels for all architectures now default to the new USB2 - stack. No kernel config options or code have been removed so if a - problem arises please report it and optionally revert to the old USB - stack. If you are loading USB kernel modules or have a custom kernel - that includes GENERIC then ensure that usb names are also changed over, - eg uftdi -> usb2_serial_ftdi. - - Older programs linked against the ports libusb 0.1 need to be - redirected to the new stack's libusb20. /etc/libmap.conf can - be used for this: - # Map old usb library to new one for usb2 stack - libusb-0.1.so.8 libusb20.so.1 - -20090209: - All USB ethernet devices now attach as interfaces under the name ueN - (eg. ue0). This is to provide a predictable name as vendors often - change usb chipsets in a product without notice. - -20090203: - The ichsmb(4) driver has been changed to require SMBus slave - addresses be left-justified (xxxxxxx0b) rather than right-justified. - All of the other SMBus controller drivers require left-justified - slave addresses, so this change makes all the drivers provide the - same interface. - -20090201: - INET6 statistics (struct ip6stat) was updated. - netstat(1) needs to be recompiled. - -20090119: - NTFS has been removed from GENERIC kernel on amd64 to match - GENERIC on i386. Should not cause any issues since mount_ntfs(8) - will load ntfs.ko module automatically when NTFS support is - actually needed, unless ntfs.ko is not installed or security - level prohibits loading kernel modules. If either is the case, - "options NTFS" has to be added into kernel config. - -20090115: - TCP Appropriate Byte Counting (RFC 3465) support added to kernel. - New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to - 800061. User space tools that rely on the size of struct tcpcb in - tcp_var.h (e.g. sockstat) need to be recompiled. - -20081225: - ng_tty(4) module updated to match the new TTY subsystem. - Due to API change, user-level applications must be updated. - New API support added to mpd5 CVS and expected to be present - in next mpd5.3 release. - -20081219: - With __FreeBSD_version 800060 the makefs tool is part of - the base system (it was a port). - -20081216: - The afdata and ifnet locks have been changed from mutexes to - rwlocks, network modules will need to be re-compiled. - -20081214: - __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. - RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. - The new code reduced struct rtentry{} by 16 bytes on 32-bit - architecture and 40 bytes on 64-bit architecture. The userland - applications "arp" and "ndp" have been updated accordingly. - The output from "netstat -r" shows only routing entries and - none of the L2 information. - -20081130: - __FreeBSD_version 800057 marks the switchover from the - binary ath hal to source code. Users must add the line: - - options AH_SUPPORT_AR5416 - - to their kernel config files when specifying: - - device ath_hal - - The ath_hal module no longer exists; the code is now compiled - together with the driver in the ath module. It is now - possible to tailor chip support (i.e. reduce the set of chips - and thereby the code size); consult ath_hal(4) for details. - -20081121: - __FreeBSD_version 800054 adds memory barriers to - , new interfaces to ifnet to facilitate - multiple hardware transmit queues for cards that support - them, and a lock-less ring-buffer implementation to - enable drivers to more efficiently manage queueing of - packets. - -20081117: - A new version of ZFS (version 13) has been merged to -HEAD. - This version has zpool attribute "listsnapshots" off by - default, which means "zfs list" does not show snapshots, - and is the same as Solaris behavior. - -20081028: - dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. - -20081009: - The uhci, ohci, ehci and slhci USB Host controller drivers have - been put into separate modules. If you load the usb module - separately through loader.conf you will need to load the - appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 - controller add the following to loader.conf: - - uhci_load="YES" - ehci_load="YES" - -20081009: - The ABI used by the PMC toolset has changed. Please keep - userland (libpmc(3)) and the kernel module (hwpmc(4)) in - sync. - -20081009: - atapci kernel module now includes only generic PCI ATA - driver. AHCI driver moved to ataahci kernel module. - All vendor-specific code moved into separate kernel modules: - ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, - atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, - atamarvell, atamicron, atanational, atanetcell, atanvidia, - atapromise, ataserverworks, atasiliconimage, atasis, atavia - -20080820: - The TTY subsystem of the kernel has been replaced by a new - implementation, which provides better scalability and an - improved driver model. Most common drivers have been migrated to - the new TTY subsystem, while others have not. The following - drivers have not yet been ported to the new TTY layer: - - PCI/ISA: - cy, digi, rc, rp, sio - - USB: - ubser, ucycom - - Line disciplines: - ng_h4, ng_tty, ppp, sl, snp - - Adding these drivers to your kernel configuration file shall - cause compilation to fail. - -20080818: - ntpd has been upgraded to 4.2.4p5. - -20080801: - OpenSSH has been upgraded to 5.1p1. - - For many years, FreeBSD's version of OpenSSH preferred DSA - over RSA for host and user authentication keys. With this - upgrade, we've switched to the vendor's default of RSA over - DSA. This may cause upgraded clients to warn about unknown - host keys even for previously known hosts. Users should - follow the usual procedure for verifying host keys before - accepting the RSA key. - - This can be circumvented by setting the "HostKeyAlgorithms" - option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh - command line. - - Please note that the sequence of keys offered for - authentication has been changed as well. You may want to - specify IdentityFile in a different order to revert this - behavior. - -20080713: - The sio(4) driver has been removed from the i386 and amd64 - kernel configuration files. This means uart(4) is now the - default serial port driver on those platforms as well. - - To prevent collisions with the sio(4) driver, the uart(4) driver - uses different names for its device nodes. This means the - onboard serial port will now most likely be called "ttyu0" - instead of "ttyd0". You may need to reconfigure applications to - use the new device names. - - When using the serial port as a boot console, be sure to update - /boot/device.hints and /etc/ttys before booting the new kernel. - If you forget to do so, you can still manually specify the hints - at the loader prompt: - - set hint.uart.0.at="isa" - set hint.uart.0.port="0x3F8" - set hint.uart.0.flags="0x10" - set hint.uart.0.irq="4" - boot -s - -20080609: - The gpt(8) utility has been removed. Use gpart(8) to partition - disks instead. - -20080603: - The version that Linuxulator emulates was changed from 2.4.2 - to 2.6.16. If you experience any problems with Linux binaries - please try to set sysctl compat.linux.osrelease to 2.4.2 and - if it fixes the problem contact emulation mailing list. - -20080525: - ISDN4BSD (I4B) was removed from the src tree. You may need to - update a your kernel configuration and remove relevant entries. - -20080509: - I have checked in code to support multiple routing tables. - See the man pages setfib(1) and setfib(2). - This is a hopefully backwards compatible version, - but to make use of it you need to compile your kernel - with options ROUTETABLES=2 (or more up to 16). - -20080420: - The 802.11 wireless support was redone to enable multi-bss - operation on devices that are capable. The underlying device - is no longer used directly but instead wlanX devices are - cloned with ifconfig. This requires changes to rc.conf files. - For example, change: - ifconfig_ath0="WPA DHCP" - to - wlans_ath0=wlan0 - ifconfig_wlan0="WPA DHCP" - see rc.conf(5) for more details. In addition, mergemaster of - /etc/rc.d is highly recommended. Simultaneous update of userland - and kernel wouldn't hurt either. - - As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta - modules were merged into the base wlan module. All references - to these modules (e.g. in kernel config files) must be removed. - -20080408: - psm(4) has gained write(2) support in native operation level. - Arbitrary commands can be written to /dev/psm%d and status can - be read back from it. Therefore, an application is responsible - for status validation and error recovery. It is a no-op in - other operation levels. - -20080312: - Support for KSE threading has been removed from the kernel. To - run legacy applications linked against KSE libmap.conf may - be used. The following libmap.conf may be used to ensure - compatibility with any prior release: - - libpthread.so.1 libthr.so.1 - libpthread.so.2 libthr.so.2 - libkse.so.3 libthr.so.3 - -20080301: - The layout of struct vmspace has changed. This affects libkvm - and any executables that link against libkvm and use the - kvm_getprocs() function. In particular, but not exclusively, - it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). - The effects are minimal, but it's advisable to upgrade world - nonetheless. - -20080229: - The latest em driver no longer has support in it for the - 82575 adapter, this is now moved to the igb driver. The - split was done to make new features that are incompatible - with older hardware easier to do. - -20080220: - The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), - likewise the kernel option is now GEOM_LINUX_LVM. - -20080211: - The default NFS mount mode has changed from UDP to TCP for - increased reliability. If you rely on (insecurely) NFS - mounting across a firewall you may need to update your - firewall rules. - -20080208: - Belatedly note the addition of m_collapse for compacting - mbuf chains. - -20080126: - The fts(3) structures have been changed to use adequate - integer types for their members and so to be able to cope - with huge file trees. The old fts(3) ABI is preserved - through symbol versioning in libc, so third-party binaries - using fts(3) should still work, although they will not take - advantage of the extended types. At the same time, some - third-party software might fail to build after this change - due to unportable assumptions made in its source code about - fts(3) structure members. Such software should be fixed - by its vendor or, in the worst case, in the ports tree. - FreeBSD_version 800015 marks this change for the unlikely - case that a portable fix is impossible. - -20080123: - To upgrade to -current after this date, you must be running - FreeBSD not older than 6.0-RELEASE. Upgrading to -current - from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. - -20071128: - The ADAPTIVE_GIANT kernel option has been retired because its - functionality is the default now. - -20071118: - The AT keyboard emulation of sunkbd(4) has been turned on - by default. In order to make the special symbols of the Sun - keyboards driven by sunkbd(4) work under X these now have - to be configured the same way as Sun USB keyboards driven - by ukbd(4) (which also does AT keyboard emulation), f.e.: - - Option "XkbLayout" "us" - Option "XkbRules" "xorg" - Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" - -20071024: - It has been decided that it is desirable to provide ABI - backwards compatibility to the FreeBSD 4/5/6 versions of the - PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was - broken with the introduction of PCI domain support (see the - 20070930 entry). Unfortunately, this required the ABI of - PCIOCGETCONF to be broken again in order to be able to - provide backwards compatibility to the old version of that - IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled - again. As for prominent ports this affects neither pciutils - nor xorg-server this time, the hal port needs to be rebuilt - however. - -20071020: - The misnamed kthread_create() and friends have been renamed - to kproc_create() etc. Many of the callers already - used kproc_start().. - I will return kthread_create() and friends in a while - with implementations that actually create threads, not procs. - Renaming corresponds with version 800002. - -20071010: - RELENG_7 branched. - COMMON ITEMS: General Notes