(no commit message)
authordillon <dillon@web>
Tue, 4 Dec 2018 20:25:29 +0000 (20:25 +0000)
committerIkiWiki <ikiwiki.info>
Tue, 4 Dec 2018 20:25:29 +0000 (20:25 +0000)
release54/index.mdwn

index 08377d1..d40567b 100644 (file)
@@ -20,19 +20,15 @@ The details of all commits between the 5.2 and 5.4 branches are available in the
 
 * GCC 4.7.4 and GCC 5.4.1 are still installed.  4.7.4 is our backup compiler, and 5.4.1 is still there to ensure a smooth transition, but should generally not be used.  buildworld builds all three by default to ensure maximum compatibility.
 
+* Many passes through world sources were made to address various warnings and errors the new GCC brought with it.
+
 ### HAMMER2
 
 * HAMMER2 is recommended as the default root filesystem in non-clustered mode.
 * Clustered support is not yet available.
 * Increased bulkfree cache to reduce the number of iterations required.
 * Fixed numerous bugs.
-* 
-
-### Driver updates
-
-* A number of drivers of use when running DragonFly as a guest VM have been added or updated, including ena, if_vtnet, virtio_balloon, and virtio_pci.
-* Improvements for DRM and radeon.
-* Serial-output-only installs are now possible.
+* Improved support on low-memory machines.
 
 ### Network updates
 
@@ -83,31 +79,73 @@ Don't forget to upgrade your existing packages.  5.4 packages have already been
 
 ## All changes since DragonFly 5.2
 
+### Security Issues
+
+* Fix CVE-2018-8897, debug register issue.
+* Complete the full Spectre mitigation support.  Default disabled due to extreme performance loss.  The machdep.spectre_support sysctl can be used to probe support, and machdep.spectre_mitigation sysctl can be used to enable/disable support (can be done at run time).
+* Change the default /root perms from 755 to 700 in the build template.
+* OpenBSD collab - completely remove delayed FP state to avoid known side-channel attack.
+* OpenBSD collab - proactively clean FP state on switch to avoid known side-channel attack.
+* OpenBSD collab - proactively zero user registers on entry into kernel (syscall, interrupt, or exception) to avoid certain speculative side-channel attacks.
+
 ### Kernel
 
 * drm has been updated to match Linux kernel 4.7.10 in a number of locations.
 * The radeon driver has been updated; currently matches Linux 3.18.
 * CVE-2018-8897 mitigated.
 * x2apic timer support added.
-* various updates to autofs
 * Add a private_data field to struct file to improve application support.
-* Fix an old UFS bug that would panic on certain filesystem full conditions.
-* Rename UFS constants throughout to improve separation.
 * Fix pageout/sbusy race.
 * Refactor AcpiOs*Lock() operation to use lockmgr locks to reduce freezes and improve debugability.
 * Improve SPINLOCK and acpi_timer performance when under emulation.
 * nvme - Improve the likelihood of dump success by removing certain blocking locks from the dump path.
-* Numerous spinlock performance and edge-case improvements.  Deal with shared starvation in the face of a long series of exclusive locks, and vise-versa.
+* Numerous spinlock performance and edge-case improvements.  Deal with shared starvation in the face of a long series of exclusive locks, and vise-versa.  Add TSC-based windowing as a fall-back when excessive contention is present.
 * Add a dirty vnode management facility.
 * Remove bottlenecks from the rlimit handling code by reflecting p_limit into td_limit.
 * Increase the size of the vm_object hash table by 4x to reduce collisions.
 * Fix duplicate da* reporting at boot time and fix the related lockup.
 * Implement a per-thread (fd,fp) cache to reduce cache ping-ponging in heavily-threaded processes.
 * Refactor the lwkt_token pool hash algorithm to improve SMP.
-* Refactor uidinfo, lockf to remove SMP bottlenecks.
+* Refactor uidinfo
+* Refactor lockf operation to remove SMP bottlenecks.
 * Increase copyin item batching from 8 to 32 for select() and poll().
+* Improve concurrent tmpfs use by removing SMP bottlenecks.
+* Improve allocvnode() by removing SMP bottlenecks.
+* Improve common file descriptor internals for better SMP operation.
+* Improve namecache performance.
+* Improve scheduler concurrency by addressing some of the more blatent cache ping-ponging.
+* Remove numerous kernel global debugging and (unused) statistics counters that were causing cache ping-ponging.
+* Carefully refactored contended tokens and spinlocks for better SMP operation on many-cores systems.
+* Carefully refactored the mutex contention code.
+* Fix a kfree() statistics accounting bug.
+* Improves kfree() SMP operation.
+* Fix legacy IRQ bug by ensuring that legacy IRQs only appear on one CPU.
+* Fix a multitude of usched issues that could cause unrelated processes to be misscheduled.
+* Refactor the nice priority calculations to improve expected relative behavior when multiple cpu-bound processes are NICEd to different values.
+* Refactor machdep.cpu_idle_hlt for better AMD handling.
+* Rearrange pmap PV caching a bit to improve performance.
+* Optimize the syscall path to improve performance.
+* Rearrange a few structures to localize fields for cache line optimization.
+* Remove vm_zeroidle.c.  Remove the asynchronous page zeroing code.  Instead, we now zero pages on demand, just before they are used, to reduce unnecessary cache interactions and to reduce a long-time debuggability issue with pre-zero'd pages.
+* X2APIC support added and tested.
+* ACPI updated from Intel base.
+* Fix a swapcache cleaning issue that could cause swapcache to behave in a non-useful manner.
+* Change closefrom() EINTR behavior.  closefrom() no longer breaks out of its loop when EINTR is received from close() (which could occur with NFS descriptors).  EINTR will still be rolled up and returned (callers usually ignore this).
+* Fix a rare pmap_scan_callback() panic.
+* Fix a umtx race in the kernel.
+* Fix a NULL pointer indirection on lost socket bug.
+* Enable NX for PROT_READ-only mappings by default.  NX cannot be enabled for PROT_WRITE (without PROT_EXEC) due to assumptions made by applications.  Suggested by OpenBSD.
+* 
 
+### Filesystems
 
+* autofs - Various updates to autofs
+* ufs - Fix an old UFS bug that would panic on certain filesystem full conditions.
+* ufs - Rename UFS constants throughout to improve separation.
+* tmpfs - Fix NFS exports of tmpfs filesystems.
+* tmpfs - Significantly improve tmpfs concurrency.
+* Fix minor bugs in HAMMER1 that could result in an assertion under heavy loads.
+* HAMMER2 is now the recommended default filesystem for root.
 
 ### Networking
 
@@ -124,25 +162,37 @@ Don't forget to upgrade your existing packages.  5.4 packages have already been
 * Fix a user-after-free mbuf issue - obtained from NetBSD via FreeBSD.
 * IPSEC has been removed from the system, for many reasons.  Basically, VPNs are far superior and more deterministic in terms of maintainability.
 
+### Driver updates
 
-### Other drivers
-
+* A number of drivers of use when running DragonFly as a guest VM have been added or updated, including ena, if_vtnet, virtio_balloon, and virtio_pci.
+* Improvements for DRM and radeon.
+* Serial-output-only installs are now possible.
 * The virtio_balloon memory driver has been added.
 * /dev/sndstat can now be opened multiple times by the same device.
 * mpr(4) driver for LSI Fusion-MPT 3/3.5 SAS controllers added.
 * MosChip PCIe serial communications now supported.
 * Add missing descriptions for usb4bsd C610/X99 controllers
+* igb(4) bring in WOL (wake-on-lan) support from FreeBSD.
+* Add support for PCIe serial com, and console support.
+* Remove numerous old PCI and ISA serial drivers.
 
 ### Userland
 
 * Refactor /usr/Makefile (for src-create and other targets).
 * Refactor buildworld, in particular moving the initrd build from installworld to buildworld
 * Add rc support for ipfw3
-* Refactor mkinitrd
+* Major refactor of the initrd infrastructure.
 * Update pwcache(3) from NetBSD
 * Getty - minor sync from FreeBSD
 * Update vis(3) and unvis(3) from NetBSD
-* Update pciconf database
+* Update pciconf database.
+* Fix -Walloc-size-large-than bug in gcc-4.7 and 5.0.
+* Remove rhosts from the default template (the rcmds, like rcp, rlogin, etc. were removed from the tree in the previous release).
+* Fix a signed overflow in mktime() that blew up GCC-8's -O2 constant folding code.
+* Add strsuftoll[,x]() to libc in preparation for makefs(8).  This helps various dports as well.  Taken from NetBSD.
+* Add tcsetsid() to libc.
+* Adjust symlink() prototype to match standards.
+* Improve buildworld concurrency when building the compilers.
 
 ### Boot
 
@@ -160,6 +210,7 @@ Don't forget to upgrade your existing packages.  5.4 packages have already been
 * ACPICA updated to 20181031.
 * Time zone data updated to tzdata2018g.
 * Compiler - see next section
+* diff utils updated.
 
 ### Compiler status