DragonFly BSD 4.6.0 发布,更好的支持 NVMe

DragonFly BSD论坛
RonnieGek
帖子: 3
注册时间: 01 8月 2016, 15:39

DragonFly BSD 4.6.0 发布,更好的支持 NVMe

帖子RonnieGek » 03 8月 2016, 09:31

DragonFly BSD 4.6.0 发布了,DragonFly是一份作为FreeBSD-4.x系列在逻辑上的延续而设计的操作系统及应用环境。这些操作系统与Linux可归为相同的类别,因为它 们都基于UNIX理念及应用程序接口。DragonFly是这条发展道路上的一个分支,可以说,是给了BSD一个向着不同于FreeBSD-5系列的崭新 方向而发展的机会。

该版本更好的支持NVMe,初步支持EFI ,增强提升SMP和网络方面的性能。采用 Linux 4.4 kernel, i915驱动也同步更新,使得处理器更为稳定,尤其是对Broadwell 和 Skylake系列处理器支持更为友好。

内核方面改进:

Fix a namecache race (triggered by heavy tmpfs mount/umount rate)
Fix two unmount / access races when many mounts are present
Improve context switch hotpath
Cut pmap invalidations from buffer cache activity in half
Reduce certain potential interrupt stacking issues
Implement a new fixed memory pool for physio accesses, eliminating all SMP invalidations from the path
Refactor pmap invalidations to operate at a higher priority than critical sections, reduce response latency and greatly reducing multi-core stalls during heavy invalidation activity
Fix a 2-instruction SMP race during thread exit.
Add buffer cache repurposing to reduce TLB invalidations in high-I/O-thru-filesystem situations. Defaults to off (sysctl vfs.repurpose_enable).
Revamp the IPIQ (IPI messaging) mechanics to avoid deadlocks during heavy activity.
Revamp the IPI interrupt signalling mechanics to reduce unnecessary duplicate IPIs.
We no longer use the vm_map subsystem to dynamically allocate and deallocate KVM for the buffer-cache. Instead we pre-reserve the maximum amount of (unmapped) KVM for every buffer. This makes certain congestion-control algorithms for the buffer cache unnecessary and they have been removed.
Add a SMP %rip sniffer IPI, very useful for debugging.
Fix an issue where the reported real-time becomes inconsistent between cpu threads under heavy loads. This issue generally resulted in 'make' getting confused.
Refactor the VM prefaulting code to improve pipe-lining. This improves burst page-in performance when starting large applications such as chrome.
A lot of work to reduce noticable (but short) stalls in various subsystems when they have to work on large data-sets. For example such as when a process with 64GB of RSS exits.
Fix zfree()'s hysteresis, greatly reducing unnecessary IPIs.
Reduce stalls during major token contention. It used to be that a large multi-threaded program contending on a single lock across all cpus could create noticable stalls even if the program was running niced or at a high (aka low) dynamic priority. These situations have been fixed.
New threads should not inherit the sigalstack. Fixes issues with 'go'.
Fix MSI support issues.
Improve buffer flush and cluster_write linearity.
Allow drivers to register interrupts which are specifically meant to be high-frequency (disable the rate limiter for such interrupts).
Bring in ipfw3
implement a lockless in-kernel NAT for ipfw3 (note that PF's NAT is also mostly lockless).
Add ipfwsync for ipfw3, for synchronizing state between multiple machines.
Various procfs workarounds added to fix truss issues.
Implement PIE (place independent executables). Randomization be enabled with a sysctl kern.elf64.pie_base_mmap.
Implement ppoll() with precise microsecond timeout.
Fix VM issues with virtio.
Add EVFILT_FS support to kqueue.
Cut-down on the amount of BSS in the kernel binary. We ran over the loader's 64MB limit (with the initrd image and a few kld's also loaded), AGAIN!
modules.local mechanism added for non-base kernel modules.
Implement I2cSerialBus ACPI module support (used by IG4).
Implement ACPI's GPIO.
Work around HW VM bugs by aligning the kernel load's end address to 2MB, so there is no transition from 4K pages to 2MB pages for kernel text+data+bss.
Many, many HAMMER improvements.
HAMMER mount is now forced to noatime by default.
Do not allow the kqueue sleep timer to wrap.
User process scheduler adjustments to improve interactive responsiveness in situations where (essentially) batch jobs are syscall-heavy or VM fault-heavy.
Fix cpu selection skew in the scheduler with high fork/exec rates.
Fixed vfork()/getpid() bug in heavily threaded programs.
Refactor vm_page_alloc() and the pre-zeroing code to maintain cpu-v-cache affinity.
更多改进信息,可查看完整发布说明。
http://www.dragonflybsd.org/release46/
下载地址: http://www.dragonflybsd.org/download/

回到 “DragonFly BSD论坛”

在线用户

用户浏览此论坛: 没有注册用户 和 1 访客