Discover this podcast and so much more

Podcasts are free to enjoy without a subscription. We also offer ebooks, audiobooks, and so much more for just $11.99/month.

304: Prospering with Vulkan

304: Prospering with Vulkan

FromBSD Now


304: Prospering with Vulkan

FromBSD Now

ratings:
Length:
64 minutes
Released:
Jun 27, 2019
Format:
Podcast episode

Description

DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.
Headlines
DragonflyBSD 5.6 is out (https://www.dragonflybsd.org/release56)
Version 5.6.0 released 17 June 2019
Version 5.6.1 released 19 June 2019 (https://www.dragonflydigest.com/2019/06/19/23091.html)
Big-ticket items
Improved VM
Informal test results showing the changes from 5.4 to 5.6 are available.
Reduce stalls in the kernel vmpagealloc() code (vmpagelist_find()).
Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened.
Add a vmpagehash*() API that allows the kernel to do heuristical lockless lookups of VM pages.
Change vmhold() and vmunhold() semantics to not require any spin-locks.
Change vmpagewakeup() to not require any spin-locks.
Change wiring vm_page's no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly.
Refactor the handling of fictitious pages.
Remove m->md.pvlist entirely. VM pages in mappings no longer allocate pventry's, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache).
Refactor vmobject shadowing, disconnecting the backing linkages from the vmobject itself and instead organizing the linkages in a new structure called vmmapbacking which hangs off the vmmapentry.
pmap operations now iterate vmmapbacking structures (rather than spin-locked page lists based on the vmpage and pventry's), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations.
Simplify the collapse code, removing most of the original code and replacing it with simpler per-vmmapentry optimizations to limit the shadow depth.
DRM
Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however.
Improve UEFI framebuffer support.
A major deadlock has been fixed in the radeon/ttm code.
Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup.
Add DRMIOCTLGET_PCIINFO to improve mesa/libdrm support.
Fix excessive wired memory build-ups.
Fix Linux/DragonFly PAGE_MASK confusion in the DRM code.
Fix idr_*() API bugs.
HAMMER2
The filesystem sync code has been rewritten to significantly improve performance.
Sequential write performance also improved.
Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash.
Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot.
Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency.
Improve umount operation.
Fix an allocator race that could lead to corruption.
Numerous other bugs fixed.
Improve verbosity of CHECK (CRC error) console messages.
OpenBSD Vulkan Support (https://www.phoronix.com/scan.php?page=news_item&px=OpenBSD-Vulkan-Support)
Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port.
This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn't enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers.
This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that
Released:
Jun 27, 2019
Format:
Podcast episode

Titles in the series (100)

Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros. The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day.