Add 5.0.1 commit message link.
[ikiwiki.git] / release50 / index.mdwn
1 # DragonFly BSD 5.0
2
3 * Version 5.0.0 released 16 October 2017
4 * Version 5.0.1 released 06 November 2017
5
6 DragonFly version 5.0 brings the first bootable release of HAMMER2, DragonFly's next generation file system.  
7
8 The details of all commits between the 4.8 and 5.0 branches are available in the associated commit messages for [5.0.0rc1](http://lists.dragonflybsd.org/pipermail/commits/2017-September/626463.html), [5.0.0rc2](http://lists.dragonflybsd.org/pipermail/commits/2017-September/626480.html), [5.0.0](http://lists.dragonflybsd.org/pipermail/commits/2017-October/626587.html), and [5.0.1](http://lists.dragonflybsd.org/pipermail/commits/2017-November/626755.html).
9  
10 ## Big-ticket items
11
12 ### HAMMER2
13
14 Preliminary HAMMER2 support has been released into the wild as-of the 5.0 release.  This support is considered EXPERIMENTAL and should generally not yet be used for production machines and important data.  The boot loader will support both UFS and HAMMER2 /boot.  The installer will still use a UFS /boot even for a HAMMER2 installation because the /boot partition is typically very small and HAMMER2, like HAMMER1, does not instantly free space when files are deleted or replaced.
15
16 DragonFly 5.0 has single-image HAMMER2 support, with live dedup (for cp's), compression, fast recovery, snapshot, and boot support.  HAMMER2 does not yet support multi-volume or clustering, though commands for it exist.  Please use non-clustered single images for now.
17
18 ### ipfw Updates
19
20 IPFW has gone through a number of updates in DragonFly and now offers [better](http://lists.dragonflybsd.org/pipermail/commits/2017-September/626329.html) [performance](http://lists.dragonflybsd.org/pipermail/commits/2017-September/626290.html).  pf and ipfw3 are also still supported.
21
22 ### Improved graphics support
23
24 * The i915 driver has been brought up to match what's in the Linux 4.7.10 kernel. Intel GPUs are supported up to the Kabylake generation.
25 * [vga_switcheroo(4)](https://leaf.dragonflybsd.org/cgi/web-man?command=vga_switcheroo&section=ANY) module added, allowing the use of Intel GPUs on hybrid-graphics systems.
26 * The new apple_gmux driver enables switching to the Intel video chipset on dual Intel/NVIDIA and Intel/Radeon Macbook computers.
27
28 ### Other user-affecting changes
29
30 * [[efisetup(8)|https://leaf.dragonflybsd.org/cgi/web-man?command=efisetup&section=ANY]] added.  
31 * DragonFly can now support [over 900,000 processes](http://lists.dragonflybsd.org/pipermail/users/2017-August/313552.html) on a single machine.
32 * Client-side SSH by default does not try password authentication, which is the default behavior in newer versions of OpenSSH.  Pass an explicit '-o
33 PasswordAuthentication=yes' or change /etc/ssh/ssh_config if you need the old behavior.  Public key users are unaffected.
34
35 ## Details
36
37 ### Checksums
38
39     MD5 (dfly-x86_64-5.0.0_REL.img) = 0b37697389e4dc7380ad4dee1cadf9b0
40     MD5 (dfly-x86_64-5.0.0_REL.iso) = 599d5e151c0315c1112f7585a8265faf
41     MD5 (dfly-x86_64-5.0.0_REL.img.bz2) = b40b76dbdd88cafb8db85bc74a7e438f
42     MD5 (dfly-x86_64-5.0.0_REL.iso.bz2) = 22ecc945e0aacd1bb2ea2318b428a9b0
43
44 ### Upgrading
45
46 If you have an existing 4.8.x system and are running a generic kernel, the normal upgrade process, described below, will work.  
47
48 * Note that DSA OpenSSH keys were deprecated in the 4.6 to 4.8 release.  If you are upgrading from a release older than 4.8 and use DSA OpenSSH keys, please update your private/public key pair or risk locking yourself out.
49
50 Change your local /usr/src to 5.0:
51
52     cd /usr/src
53     git fetch origin
54     git branch DragonFly_RELEASE_5_0 origin/DragonFly_RELEASE_5_0
55     git checkout DragonFly_RELEASE_5_0
56     git pull
57
58 And then rebuild: (in /usr/src )
59
60     make buildworld
61     make buildkernel
62     make installkernel
63     make installworld
64     make upgrade
65
66 Don't forget to upgrade your existing packages.  5.0 packages have
67 already been built and are immediately available.
68
69     pkg upgrade
70
71 ## All changes since DragonFly 4.8
72
73 ### Kernel
74
75 * if_sl, if_ppp, and if_faith are now built as modules and can be removed from kernel configs.
76 * NX (no-execute) pmap support has been added.
77 * Use 64-bit serials for poll/select's kevent.udata.  This fixes an issue where serial cycling could cause spurious events to be reported.
78 * Fix several issues for encrypted installations.
79 * Fix a blocked-lock issue in procfs
80 * Fix a serious permissions bug for sticky directories
81 * Fix event preset bug
82 * Fix an ACPI initialization ordering issue
83 * Fix a CAM shutdown ordering issue
84 * NX support added to kernel, but does not work with some interpreted or JIT languages so disabled by default.
85 * Fix a crypto subsystem stall.
86 * Ryzen CPUs can lockup when the instruction pre-fetcher (which can be speculative) transitions from a canonical to a non-canonical address.  This can happen if the top of the user stack is mapped.  Unmap the top of the user stack, and the top of the user stack is no longer considered to be part of userspace.
87 * Longer stir in arc4random(), make arc4random per-cpu to reduce contention.
88 * Fix a zget() panic which can occur during heavy paging
89 * Fix clustering inefficiencies
90 * tmpfs and vn can't handle certain swapoff situations.  Be sure to fail a swapoff attempt under such conditions so not corruption occurs.
91 * Fix a gcc code reordering problem related to td_critcount operations.  This fixes a lockmgr() race.
92 * Significantly reduce tsleep()/wakeup() queue collisions.
93 * Do many more NUMA-localized allocations for per-cpu structures.
94 * Add better AMD topology detection.
95 * Restrict kill(-1, ...) to the current reaper group.  This fixes issues during bulk builds via synth where third-party programs erroneously signal process -1 after a fork() failure.
96 * Fix broken cpu rotator in lwkt_alloc_thread().
97 * Fix a rare allproc scan vs p_ucred race
98 * Fix unnecessary ucred duplication which led to potentially as many ucred allocations as vnodes.
99 * Fix a memory ordering race in the shared lock mutex code.
100 * Fix an ordering issue with coincident systimer interrupts.  This improves user/sys/idle percentage reporting.
101 * Change our MBR partition type from 0xA5 (which we shared with FreeBSD) to 0x6C
102 * Fix a callout_stop()/callout_reset() rearming race
103 * Improve flushing during low-memory situations
104 * Add an emergency pager.  The normal pager can pageout vnode-backed pages, but the complexity of the filesystem VFS can cause low-memory deadlocks during such flushes.  The emergency pager only pages out anonymous memory and can recover these situations.
105 * Fix the panic() code for AMD cpus that assumed mwait hinting support when there might not be any.
106 * Improve TSC handling.
107 * Fix a SMP tsleep_interlock() vs wakeup() race.
108 * Validate the kernel up to 1 million processes (since PIDs are restricted to 6 digits, this is the max).  Fix numerous issues that crop up under high-process-count conditions.  Yes, it actually does work.
109 * Increase the default posix-lock limit.
110 * Remove a performance bottleneck related to large numbers of pipe() close() operations.
111 * Scale tsleep() performance to hundreds of thousands of processes.
112 * Refactor the maxproc calculation, allowing maxproc to be higher without improperly scaling maxvnodes and other resources to insane levels.
113 * Refactor the load calculation code to not stall cpu 0 when a large number of processes are present (aka a million procsses).
114 * Fix excessive call stack depth for stuck interrupts.
115 * Refactor IPI vector assignments and reformulate INVLTLB IPIs
116
117 ### Networking
118
119 * [Direct input support for polling](http://lists.dragonflybsd.org/pipermail/commits/2017-September/626402.html), on by default for [ix(4)](https://leaf.dragonflybsd.org/cgi/web-man?command=ix&section=ANY). 
120 * Allow up to 64 TX and RX rings for X550 chipsets
121 * Do not pad if_re chips which do not require explicit padding.  This fixes UDP checksum generation on these chipsets.
122 * Limit the number of accepted sockets that kevent() reports.  Defaults to 32.  Does not effect accept() calls.  This deconfuses some third party applications.
123 * Bring in vmx (VMWare virtual network driver, aka vmxnet3).
124 * Add Kabylake support (add Kabylake PCI IDs)
125 * Improve syncache performance.
126 * Add an interface network filter to IPFW.
127 * Add an ipfrag filter to IPFW.
128 * Rework IPFW's states and tracks.
129 * Reduce unnecessary IPIs by using sendmsg_oncpu() when possible.
130 * Improve ipflow code.
131 * Improve polling code.
132 * Fix issue with accelerated IPv4/IPv6 fragment draining.
133 * Randomize the local port.
134 * MSI enabled by default for if_em devices which support it.
135
136
137 ### Other drivers
138
139 * [virtio_scsi(4)](https://leaf.dragonflybsd.org/cgi/web-man?command=virtio_scsi&section=ANY) added
140 * [ig4(4)](https://leaf.dragonflybsd.org/cgi/web-man?command=ig4&section=ANY) devices are now recognized.
141 * internal updates to the [isp(4)](https://leaf.dragonflybsd.org/cgi/web-man?command=isp&section=ANY) SCSI adapter driver.
142 * [ADMA2 mode](http://lists.dragonflybsd.org/pipermail/commits/2017-May/625874.html) is now supported for SD card data transfer.
143 * UHS1 SD card disk format is [now supported](http://lists.dragonflybsd.org/pipermail/commits/2017-May/625911.html).
144 * Properly delete /dev/dsp and /dev/mixer on sound module unload.
145 * NVMe now handles devices without MSI-X support (aka virtualized NVMe).
146 * vtnet and virtio_blk improvements.
147
148 ### Userland
149
150 * HAMMER1 now is at an internal version of 7, reflecting a new, faster [checksum operation](http://lists.dragonflybsd.org/pipermail/commits/2017-March/625653.html).
151 * [kcollect(8)](https://leaf.dragonflybsd.org/cgi/web-man?command=kcollect&section=ANY) has been added for automatic data gathering on a running DragonFly system.
152 * [sshlockout(8)](https://leaf.dragonflybsd.org/cgi/web-man?command=sshlockout&section=ANY) will now lock out based on [number of attempts](http://lists.dragonflybsd.org/pipermail/commits/2017-July/626020.html).
153 * Fix a static buffer overflow in mfiutil
154 * Fix a graphics compatibility enable test in 'window'
155 * Fix several sscanf bugs in userland
156 * usched now allows a process to change its own cpu affinity
157 * Fix a bug in ceill()
158 * Fix a seg-fault on crypt failure.
159 * Many namespace cleanups to improve dports compatibility.
160 * OpenSSH updated to 7.6p1
161
162 ### Various tools have been upgraded in the base system:
163
164 ### Hammer Changes
165
166 * Improve concurrent dedup stability under heavy concurrent loads.
167 * HAMMER to version 7.  This version changes the CRC mechanic from an older slower CRC API to the ISCSI CRC code, which is 6x faster.  Improves HAMMER performance.  HAMMER supports both old and new CRC methods and is backwards compatible, but only files created after this change will use the new mechanism.
168
169 ### Clang status
170
171 A starting framework has been added for using clang as the alternate base compiler in DragonFly, to replace gcc 4.7.  It's not yet complete.  Clang can of course be added as a package.
172
173 ### Package updates
174
175 Many package updates but I think most notably we need to point to chrome60 finally getting into dports with accelerated video and graphics support.
176
177 ### 64-bit status
178
179 * Note that DragonFly is a 64-bit-only operating system as of 4.6, and will not run on 32-bit hardware.
180
181 * AMD Ryzen is supported and DragonFly 5.0 has a workaround for a [hardware bug](http://lists.dragonflybsd.org/pipermail/commits/2017-August/626190.html).