X-Git-Url: https://gitweb.dragonflybsd.org/ikiwiki.git/blobdiff_plain/86bbdc29164b25a0d814397e83c38b610882a60b..HEAD:/release28/index.mdwn diff --git a/release28/index.mdwn b/release28/index.mdwn index 2db07aaf..359e6452 100644 --- a/release28/index.mdwn +++ b/release28/index.mdwn @@ -10,11 +10,17 @@ X environment and full sources in addition to the standard 700M ISO and 1G USB i **Crypto support** - A cryptsetup compatible cryptographic device mapper target was written for DragonFly. This means that it is now possible to encrypt DragonFly partitions (e.g., HAMMER and UFS). While it is possible to only encrypt any partition like `/home/`, it is also possible to encrypt the whole root file system. The latter is especially useful for mobile devices. It is also possible to encrypt the swap partition while still being able to dump a kernel core. Further, the code is SMP aware, so expect a speedup if using multi-core machines and don't have cryptographic hardware support. -**Packet Filter (pf)** - Pf was updated to a version based upon OpenBSD 4.2. The previous version of pf in DragonFly was based on OpenBSD 3.5. This, in addition to laying the ground for further following OpenBSD's implementation, introduced several performance gains: Information like route-to, altq, tags, etc are now stored in the `mbuf` header directly. This was partially already the case up to DragonFly 2.6, but now the implementation corresponds to OpenBSD's. Furthermore an often unnecessary checksumming was removed, which gains another 10% performance. Also state tables and interface bound states were reimplemented and the pf_test_*() functions where fold into pf_test_rule() to make things clearer. DragonFly-specific additions, support for fairq packet queueing and pickups, have remained intact. +**Packet Filter (pf)** - Pf was updated to a version based upon OpenBSD 4.2. The previous version of pf in DragonFly was based on OpenBSD 3.5. This, in addition to laying the ground for further following OpenBSD's implementation, introduced several performance gains: Information like route-to, altq, tags, etc are now stored in the `mbuf` header directly. This was partially already the case up to DragonFly 2.6, but now the implementation corresponds to OpenBSD's. + +Furthermore an often unnecessary checksumming was removed, which gains another 10% performance. Also state tables and interface bound states were reimplemented and the pf_test_*() functions where fold into pf_test_rule() to make things clearer. DragonFly-specific additions, support for fairq packet queueing and pickups, have remained intact. **WiFi Stack Update** - FreeBSD's WiFi (802.11) network stack has been ported. While not all WiFi drivers have been ported the ability to port drivers from FreeBSD much more easily will allow us to ultimately add support for more and newer WiFi devices in the near future. -**MP Performance** - The multiprocessor work that has been ongoing in DragonFly is really starting to bear fruit. The MPLOCK (The primary lock, that when held ensures only a single cpu is operating within the kernel) has been pushed back significantly with this release. Most of the frontend code now uses soft tokens instead of the MPLOCK, though for safety these particular soft tokens still acquire the MPLOCK. We will be phasing out the safety feature as work progresses. More importantly, HAMMER now runs with a per-mount lock and has specific optimizations to run 100% MPSAFE in the cached read & stat paths. Much of the system backend including the buffer cache, the networking subsystem (protocol stacks and netif drivers), and the AHCI disk driver are now completely MP-safe and do not acquire the MPLOCK at all. For most intents and purposes the system is running MP-safe. I don't want to sell this short because large portions of the core infrastructure have been MP-safe for years. But now those MP-safe paths for the first time can reach all the way from userland to the device drivers on the backend. +**MP Performance** - The multiprocessor work that has been ongoing in DragonFly is really starting to bear fruit. The MPLOCK (The primary lock, that when held ensures only a single cpu is operating within the kernel) has been pushed back significantly with this release. Most of the frontend code now uses soft tokens instead of the MPLOCK, though for safety these particular soft tokens still acquire the MPLOCK. We will be phasing out the safety feature as work progresses. + +More importantly, HAMMER now runs with a per-mount lock and has specific optimizations to run 100% MPSAFE in the cached read & stat paths. + +Much of the system backend including the buffer cache, the networking subsystem (protocol stacks and netif drivers), and the AHCI disk driver are now completely MP-safe and do not acquire the MPLOCK at all. For most intents and purposes the system is running MP-safe. I don't want to sell this short because large portions of the core infrastructure have been MP-safe for years. But now those MP-safe paths for the first time can reach all the way from userland to the device drivers on the backend. ## Availability @@ -107,7 +113,6 @@ Test your setup with `host`, `dig` and so on. Check for a running `named` proces * Major update of pf from OpenBSD 3.5 to 4.2, keeping DragonFly specific additions (support for pickups and fairq). * Network socket flags were made atomic. * Many minor bug fixes and improvements to HAMMER. -* HAMMER now has a catastrophic recovery utility. * Additional major portions of the network stack were removed from under the MPLOCK. * Major performance improvements to softcrypto on SMP systems. * kern_udev - A framework to associate optional information with device nodes. @@ -127,6 +132,13 @@ Test your setup with `host`, `dig` and so on. Check for a running `named` proces * It is now possible to dump to dm disks. * Sync amdpm(4) with FreeBSD (and bring in amdsmb(4)). * Sync alpm(4) with FreeBSD. +* New swapoff utility to turn off swap space. +* APIC_IO now works a whole lot better. +* Release ISOs and IMGs now start up with emergency interrupt polling turned on to improve the chances of being able to boot on a wider range of systems. +* Numerous issues with NFS have been resolved. +* Diskless NFS booting now attaches using NFSv3. +* Much better scaling in low-memory systems (aka VMs), as little as 64M of physical memory with a recommended minimum of 128M. +* Much better KVM efficiency on systems with large amounts of ram. 2.6 had some issues with KVM filling up on 32 bit systems. Those issues should now be gone. 64-bit systems now run with 128G of KVM. > ### Hardware changes (non-networking) * Driver for Areca RAID controllers (arcmsr). @@ -135,36 +147,25 @@ Test your setup with `host`, `dig` and so on. Check for a running `named` proces * VIA Padlock support fixed. * The uguru(4) driver for ABIT temperature, voltage and fan sensors was ported from OpenBSD. * twa(4) was synced with FreeBSD version 3.80.06.003. -* New swapoff utility to turn off swap space. +* SMP cpu startup code now tries to work around BIOS SMI bugs which cause AP cpu inits to fail. > ### Hardware changes (networking) * New wireless network card framework has been ported from FreeBSD. * Wireless cards utilizing the following drivers are supported in this release: ath, iwi, iwn, ral, wi, wpi. * The following drivers have not been ported and will not yet work: acx, an, bwi, ndis, rtw, rum, ural. -> ### Multiprocessor Safe Work -* Major MPSAFE Infrastructure was done. -* The following parts (referencing source files) of the kernel are now MPSAFE: - * imgact_resident - * kern_mpipe - * kern_plimit - * kern_prot - * kern_sensors - * kern_sig - * kern_slaballoc - * kern_uuid - * kern_umtx - * syscons - * sys_pipe - * sys_process - * uipc_mbuf - * vfs_sync - * vm_zeroidle - * vnode_pager -* Additional subsystems that are now MPSAFE: protocol drain routines, pf packet filter, kevent. The ahci and sili drivers and tty's have also received MPSAFE treatment. +> ### New Multiprocessor Safe Work +* HAMMER VFS API is now MPSAFE, HAMMER uses per-mount locks and optimizes the read/stat paths. +* tmpfs. +* The network protocol stack and most of the backend drivers. The path from userland all the way through to the backend driver is now MPSAFE. +* PF packet filter gets its own lock. +* kqueue/kevent (and thus also select/poll). +* The AHCI and SILI drivers. +* The BUF/BIO subsystem. +* TTYs have their own lock. > ### Userland changes -* A catastrophic recovery command was added to the hammer(8) utility, allowing data to be potentially recovered from physically damaged media. +* A catastrophic recovery command was added to the hammer(8) utility, allowing data to be recovered from physically damaged media. * Power/CPU frequency management daemon named powerd(8). * libdevattr - A library giving access to additional information about kernel device nodes with an API that is mostly compatible with Linux' libudev. * udevd - A support daemon for libdevattr. @@ -186,16 +187,19 @@ Test your setup with `host`, `dig` and so on. Check for a running `named` proces * Various vkernel updates including support for diskless operation. * nmalloc (libc malloc) gained a per-thread magazine layer for improved scalability. -> ### amd64-specific changes +> ### x86_64-specific changes * A number of rare race conditions was fixed. This improves overall stability. * It is now possible to use powernow(4). * It is now possible to boot an SMP kernel without having to enable `APIC_IO`. +* The kernel now configures 128GB of KVM and memory scaling has been tuned. Among other things this means that a well-endowed system will cache significantly more vnodes and configure a larger buffer cache. +* The kernel now supports up to 512G of swap by default. > ### Removals * BIND is no longer in the base system. See Special Upgrade notes above for a migration path. * libevent. > ### Contributed Software +* Shipping with pkgsrc-2010Q3 built packages. * Imported drill and libldns as a resolving utility in base as BIND has gone. * Imported lvm (Logical Volume Manager). * Imported cryptsetup for use with the new device mapper crypto target, dm_target_crypt.