From 4c2a2457fff6c59dff4f4cd4dc643d57403ad012 Mon Sep 17 00:00:00 2001 From: dillon Date: Wed, 11 Oct 2017 20:45:19 +0000 Subject: [PATCH] commit log scan (2) --- release50/index.mdwn | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/release50/index.mdwn b/release50/index.mdwn index 8d990682..84e68bb3 100644 --- a/release50/index.mdwn +++ b/release50/index.mdwn @@ -87,7 +87,7 @@ already been built and are immediately available. * NX support added to kernel, but does not work with some interpreted or JIT languages so disabled by default. * Fix a crypto subsystem stall. * 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. -* Longer stir in arc4random() +* Longer stir in arc4random(), make arc4random per-cpu to reduce contention. * Fix a zget() panic which can occur during heavy paging * Fix clustering inefficiencies * tmpfs and vn can't handle certain swapoff situations. Be sure to fail a swapoff attempt under such conditions so not corruption occurs. @@ -99,6 +99,22 @@ already been built and are immediately available. * Fix broken cpu rotator in lwkt_alloc_thread(). * Fix a rare allproc scan vs p_ucred race * Fix unnecessary ucred duplication which led to potentially as many ucred allocations as vnodes. +* Fix a memory ordering race in the shared lock mutex code. +* Fix an ordering issue with coincident systimer interrupts. This improves user/sys/idle percentage reporting. +* Change our MBR partition type from 0xA5 (which we shared with FreeBSD) to 0x6C +* Fix a callout_stop()/callout_reset() rearming race +* Improve flushing during low-memory situations +* 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. +* Fix the panic() code for AMD cpus that assumed mwait hinting support when there might not be any. +* Improve TSC handling. +* Fix a SMP tsleep_interlock() vs wakeup() race. +* 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. +* Increase the default posix-lock limit. +* Remove a performance bottleneck related to large numbers of pipe() close() operations. +* Scale tsleep() performance to hundreds of thousands of processes. +* Refactor the maxproc calculation, allowing maxproc to be higher without improperly scaling maxvnodes and other resources to insane levels. +* Refactor the load calculation code to not stall cpu 0 when a large number of processes are present (aka a million procsses). +* ### Graphics @@ -114,9 +130,15 @@ already been built and are immediately available. * Do not pad if_re chips which do not require explicit padding. This fixes UDP checksum generation on these chipsets. * Limit the number of accepted sockets that kevent() reports. Defaults to 32. Does not effect accept() calls. This deconfuses some third party applications. * Bring in vmx (VMWare virtual network driver, aka vmxnet3). +* Add Kabylake support (add Kabylake PCI IDs) * Improve syncache performance. * Add an interface network filter to IPFW. +* Add an ipfrag filter to IPFW. +* Rework IPFW's states and tracks. * Reduce unnecessary IPIs by using sendmsg_oncpu() when possible. +* Improve ipflow code +* Improve polling code +* Randomize the local port ### Other drivers @@ -141,9 +163,9 @@ already been built and are immediately available. ### Various tools have been upgraded in the base system: -* +### Hammer Changes -### Hammer Status +* Improve concurrent dedup stability under heavy concurrent loads. ### Hammer2 Status -- 2.41.0