• FreeBSD Status Report - First Quarter 2024 (1/2)

    From Lorenzo Salvadore@21:1/5 to All on Sun May 5 16:00:09 2024
    FreeBSD Status Report First Quarter 2024

    Here is the first 2024 status report, with 21 entries.

    The New Year brings us many new interesting projects, such as the new libsys that separates system calls from libc and libpthread or work on a graphical installer for FreeBSD, which will help making our OS more user-friendly. Of course, the usual projects keep going on, such as the work on cloud-init, OpenStack, or the GCC ports. As usual our main teams share their progress with us.

    Have a nice read.

    Lorenzo Salvadore, on behalf of the Status Team.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    A rendered version of this report is available here: https://www.freebsd.org/status/report-2024-01-2024-03/

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    Table of Contents

    • FreeBSD Team Reports
    □ FreeBSD Core Team
    □ FreeBSD Foundation
    □ FreeBSD Release Engineering Team
    □ Cluster Administration Team
    □ Continuous Integration
    □ Ports Collection
    • Projects
    □ Audio Stack Improvements
    □ Bhyve Improvements
    □ Graphical Installer for FreeBSD
    • Userland
    □ libsys
    □ PackageKit backend for FreeBSD pkg
    • Kernel
    □ iwlwifi(4) and wireless for 13.3-RELEASE
    • Architectures
    □ Ten64, WHLE-LS1, and HoneyComb
    • Cloud
    □ FreeBSD on Microsoft HyperV and Azure
    □ FreeBSD as a Tier 1 cloud-init Platform
    □ OpenStack on FreeBSD
    • Documentation
    □ Documentation Engineering Team
    • Ports
    □ FreshPorts: Notification of new packages
    □ GCC on FreeBSD
    □ Valgrind: port to arm64 on its way
    • Third Party Projects
    □ Containers and FreeBSD: Pot, Potluck and Potman

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    FreeBSD Team Reports

    Entries from the various official and semi-official teams, as found in the Administration Page.

    FreeBSD Core Team

    Contact: FreeBSD Core Team <[email protected]>

    The FreeBSD Core Team is the governing body of FreeBSD.

    13.3-RELEASE

    FreeBSD 13.3 was released on March 5th, 2024.

    The release announcement is at:

    https://www.freebsd.org/releases/13.3R/announce/

    Along the release engineering team, the project dedicates the 13.3-RELEASE to Glen Barber, with thanks for his many years of contributions as Release Engineer.

    Future of 32-bit platform support

    Core announced Future of 32-bit platform support in FreeBSD for deprecating 32-bit platforms over the next couple of major releases.

    Commit bits

    • Core approved the src commit bit for Bojan Novković

    • Core reactivated the src commit bits for Mark Peek, Mark Murray, and
    Lawrence Stewart

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    FreeBSD Foundation

    Links:
    FreeBSD Foundation URL: https://freebsdfoundation.org/
    Technology Roadmap URL: https://freebsdfoundation.org/blog/technology-roadmap/ Donate URL: https://freebsdfoundation.org/donate/
    Foundation Partnership Program URL: https://freebsdfoundation.org/our-donors/ freebsd-foundation-partnership-program/
    FreeBSD Journal URL: https://freebsdfoundation.org/journal/
    Foundation Events URL: https://freebsdfoundation.org/our-work/events/

    Contact: Deb Goodkin <[email protected]>

    The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated to supporting and promoting the FreeBSD Project and worldwide community, and helping to advance the state of FreeBSD. We do this in both technical and non-technical ways. We are 100% supported by donations from individuals and corporations and those investments help us fund the:

    • Software development projects to implement features and functionality in
    FreeBSD

    • Sponsor and organize conferences and developer summits to provide
    collaborative opportunities and promote FreeBSD

    • Purchase and support of hardware to improve and maintain FreeBSD
    infrastructure

    • Resources to improve security, quality assurance, and continuous
    integration efforts

    • Materials and staff needed to promote, educate, and advocate for FreeBSD

    • Collaboration between commercial vendors and FreeBSD developers

    • Representation of the FreeBSD Project in executing contracts, license
    agreements, and other legal arrangements that require a recognized legal
    entity

    Operations

    We kicked off the new year with ambitious goals to help move the FreeBSD Project forward by identifying features and functionality to support in the operating system and increasing our advocacy efforts to increase and expand the visibility of FreeBSD. Stay tuned for a blog post that will provide more information on our 2024 goals and plans.

    We also published the 2024 Budget. In order to provide greater transparency about the budgeting process, we wrote a blog post that provides more details on how funding is allocated, new breakouts of some of the project expense categories, and more details on where the funding is going.

    OS Improvements

    During the first quarter of 2024, 180 src, 65 ports, and 18 doc tree commits identified The FreeBSD Foundation as a sponsor.

    Three new projects began this quarter.

    • Work began to improve FreeBSD’s audio stack and provide audio developers
    with useful tools and frameworks to make sound development on FreeBSD
    easier. Read more in Christos Margiolis Audio Stack Improvements report
    entry.

    • Olivier Certner began his second contract with the Foundation, and this
    time around, the main goal is to make unionfs stable and useful on FreeBSD.
    Other work may include revamping VFS lookups, improving out-of-memory
    handling, implementing a notification system for en-masse detection of
    filesystem changes such as inotify, and improving console usability.

    • This quarter, a new project to add hierarchical rate limits to the OpenZFS
    file system began. Pawel Dawidek will add support for limits that will be
    configurable, similar to quotas, but would limit the number of read/write
    operations and read/write bandwidth.

    Six projects continued this quarter.

    • You can read about the continued work to port OpenStack components to
    FreeBSD in Chih-Hsin Chang’s OpenStack on FreeBSD report entry.

    • Work continued to improve cloud-init support for FreeBSD. You can read
    about Mina Galić’s work in her FreeBSD as a Tier 1 cloud-init Platform
    report entry.

    • A new joint project began between Advanced Micro Devices (AMD) and The
    FreeBSD Foundation to develop a complete FreeBSD AMD IOMMU driver. This
    work will allow FreeBSD to fully support greater than 256 cores with
    features such as CPU mapping and will also include bhyve integration. For
    those interested in the technical details, follow Konstantin Belousov
    commits tagged with Sponsored by fields for Advanced Micro Devices (AMD)
    and The FreeBSD Foundation.

    • Refer to Pierre Pronchery’s Graphical Installer for FreeBSD report entry to
    read about the status of FreeBSD’s new graphical installer.

    • Work continues to port the Vector Packet Processor (VPP) to FreeBSD. VPP is
    an open-source, high-performance user space networking stack that provides
    fast packet processing suitable for software-defined networking and network
    function virtualization applications. Look for a pending article from the
    developer working on the project, Tom Jones, that details the experience of
    porting VPP to FreeBSD.

    • Björn Zeeb and Cheng Cui continue their wireless work. This quarter was
    mostly focused on bug fixes and stability improvements to LinuxKPI 802.11
    and net80211. Much of this work made it into the 13.3 release.

    Here is a sampling of other Foundation-sponsored development completed over the first quarter of 2024:

    • FreeBSD was accepted in Google Summer of Code 2024 after receiving 22
    contributor proposals; on May 1, we will learn how many projects we will be
    awarded

    • OpenSSH: update to 9.6p1 then 9.7p1

    • Deprecate bsdlabel

    • Import the kernel parts of bhyve/arm64

    • Various RISC-V improvements

    FreeBSD Infrastructure

    A contract was completed to set up a new cluster site at NYI Chicago. You can read about the details of that project on the Foundation’s blog.

    Continuous Integration and Workflow Improvement

    As part of our continued support of the FreeBSD Project, the Foundation supports a full-time staff member dedicated to improving the Project’s continuous integration system and the test infrastructure. The full update can be found within the quarterly status report.

    Partnerships and Research

    A focus of Partnerships this Quarter has been to educate the industry about the innovations in the FreeBSD community and the impact that FreeBSD continues to have as a cornerstone to our digital society. This is an ongoing priority, and one we invite (encourage) everyone using and working on FreeBSD to join us in. Greg Wallace, the Foundation Partnerships lead, is grateful for the opportunities he has had to meet with open source and industry leaders at Microsoft, Google, AWS, OpenSSF, Alpha-Omega, CISA, Eclipse Foundation, Open Source Initiative, Apache Software Foundation, Rust Foundation, Red Hat, Linux Foundation and many others to ensure they have visibility into the key role FreeBSD plays in the global digital infrastructure. This is a role FreeBSD has earned through its technical excellence, security by design, high availability, simplicity of operations, commitment to open source collaboration, and cohesiveness.

    One sees these characteristics of FreeBSD in the important ongoing funded development work such as porting VPP to FreeBSD, sponsored by RG Nets.

    Ensuring industry visibility to the excellence and impact of FreeBSD is vital to ensuring tier one support for FreeBSD across all key hardware and software platforms. As a community, every conversation we have with people outside the BSD communities, and every piece of content we publish, that attest to how FreeBSD powers our individual and corporate success, brings us one step closer.

    To this end, the Foundation is working on a FreeBSD Impact Report that will aggregate the core and often mission critical role FreeBSD plays in society, from embedded systems powered by QNX, to payments and check processing, to digital entertainment, internet and cybersecurity infrastructure.

    Our community is stepping up in innumerable ways, including to make sure FreeBSD supports industry-standard containerized workloads — check out the Open
    Container Initiative FreeBSD runtime extension working group.

    The recently opened hardware vendor support survey will feed into a hardware support guide that reflects the collective experience of all respondents that is intended to help everyone identify hardware vendors that prioritize FreeBSD; it will also help focus Partnerships' outreach on the priority vendors.

    To close, please TELL THE WORLD YOU USE FREEBSD AND WHY. There is no wrong way to do this — put it on your blog, on your favorite social media channel, list
    FreeBSD on your company’s Open Source page, contact the Foundation about a Case
    Study, etc.

    Stormshield, a leading cybersecurity company based in Europe, provides a great example of how vendors that use FreeBSD can do this. The footer of their blogs says: "A strong supporter of Open Source, Stormshield is an active member (and sponsor) of the FreeBSD community…​Whenever we modify Open Source software, make patches or add features, we offer them to the community for inclusion."

    Advocacy

    The first quarter of 2024 marked the beginning of a new era for the Foundation Advocacy team. We welcomed Kim McMahon in the role of Senior Director of Advocacy and Community and also brought on two new technical writers to help increase the frequency and depth of the FreeBSD-related content we produce. Just some of our expanded Q1 efforts to support FreeBSD are below.

    • Began work planning the on the May 2024 FreeBSD Developer Summit,
    co-located with BSDCan, taking place May 29-30, 2024 in Ottawa, Canada

    • Introduced FreeBSD to new and returning folks at State of Open Con 24 in
    London, UK, February 6-7, 2024

    • Held an Introduction to FreeBSD half-day workshop and staffed a booth at
    SCaLE21x, which took place March 14-17, 2024 in Pasadena, CA. Thanks to
    Gordon Tetlow for his help with the workshop

    • The Foundation team also worked on a common message on the improvement and
    benefits of FreeBSD to ensure consistency between the FreeBSD Foundation
    and Core Team

    • Members of the Foundation team served as Administrators for the 2024 Google
    Summer of Code. This year marks the 20th anniversary of Google Summer of
    Code and the 20th year that the FreeBSD Project was accepted as a mentoring
    organization. The Project received 23 applications from prospective interns

    • Provided an overview of FreeBSD 13.x including the 13.3 release

    • Worked on the final report of the 2024 FreeBSD Community Survey. Be on the
    lookout for the report at the end of April

    • In partnership with Innovate UK and Digital Security by Design (DSbD), the
    Foundation held the first annual Digital Security by Design (DSbD)
    Ecosystem Beacon Awards to celebrate innovators working with and enhancing
    CheriBSD

    • Published numerous blogs including:

    □ What Makes the FreeBSD Governance Model Successful

    □ Guiding the future of FreeBSD releases: Colin Percival, the new Release
    Engineering Team Lead

    • Authored or participated in a number of Thought Leadership and News
    articles including:

    □ The Cybersecurity Battle Has Come to Hardware

    □ Ampere in the Wild: How FreeBSD Employs Ampere Arm64 Servers in the
    Data Center

    □ ISAs and the Dawning Hardware Security Revolution

    □ Published the March 2024 FreeBSD Update with a new look

    □ Released the November/December 2023 and January/February 2024 issues of
    the FreeBSD Journal now with HTML versions of the articles

    Fundraising

    Thank you to everyone who gave us a financial contribution last quarter to help fund our work to support the Project. 2024 started strong with a total of $250,855 raised this quarter. We are grateful for your investment in FreeBSD!

    Please consider supporting our efforts in 2024 by making a donation here: https://freebsdfoundation.org/donate/.

    Or, check out our Partnership opportunities here: https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/.

    Legal/FreeBSD IP

    The Foundation owns the FreeBSD trademarks, and it is our responsibility to protect them. We also provide legal support for the core team to investigate questions that arise.

    Go to https://freebsdfoundation.org to find more about how we support FreeBSD and how we can help you!

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    FreeBSD Release Engineering Team

    Links:
    FreeBSD 13.3-RELEASE announcement URL: https://www.freebsd.org/releases/13.3R/announce/
    FreeBSD 14.1-RELEASE schedule URL: https://www.freebsd.org/releases/14.1R/schedule/
    FreeBSD releases URL: https://download.freebsd.org/releases/ISO-IMAGES/
    FreeBSD development snapshots URL: https://download.freebsd.org/snapshots/ISO-IMAGES/

    Contact: FreeBSD Release Engineering Team, <[email protected]>

    The FreeBSD Release Engineering Team is responsible for setting and publishing release schedules for official project releases of FreeBSD, announcing code freezes and maintaining the respective branches, among other things.

    During the first quarter of the year, the Team managed 13.3-RELEASE, leading to the final RELEASE build and announcement in March. Planning has started for the upcoming 14.1-RELEASE cycle.

    The Release Engineering Team continued providing weekly development snapshot builds for the main, stable/14, and stable/13 branches.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Cluster Administration Team

    Links:
    Cluster Administration Team members URL: https://www.freebsd.org/administration/#t-clusteradm

    Contact: Cluster Administration Team <[email protected]>

    FreeBSD Cluster Administration Team members are responsible for managing the machines the Project relies on to synchronize its distributed work and communications.

    In this quarter, the team has worked on the following:

    • Regular support for FreeBSD.org user accounts.

    • Regular disk and parts support (and replacement) for all physical hosts and
    mirrors.

    • Set up a new mirror in Chicago.

    FreeBSD Official Mirrors Overview

    Current locations are Australia, Brazil, Germany, Japan (two full mirror sites), Malaysia, South Africa, Sweden, Taiwan, United Kingdom (full mirror site), United States of America — California, Chicago, New Jersey (primary
    site), and Washington.

    The hardware and network connection have been generously provided by:

    • Bytemark Hosting (being decommissioned)

    • Cloud and SDN Laboratory at BroadBand Tower, Inc

    • Department of Computer Science, National Yang Ming Chiao Tung University

    • Equinix

    • Internet Association of Australia

    • Internet Systems Consortium

    • INX-ZA

    • KDDI Web Communications Inc

    • Malaysian Research & Education Network

    • MetaPeer

    • New York Internet

    • NIC.br

    • Teleservice Skåne AB (new since 2023Q4)

    • Your.Org

    New official mirrors are always welcome. We have noted the benefits of hosting single mirrors at Internet Exchange Points globally, as evidenced by our existing mirrors in Australia, Brazil, and South Africa. If you are affiliated with or know of any organizations willing to sponsor a single mirror server, please contact us. We are particularly interested in locations on the United States West Coast and throughout Europe.

    See generic mirrored layout for full mirror site specs and tiny-mirror for a single mirror site.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Continuous Integration

    Links:
    FreeBSD Jenkins Instance URL: https://ci.FreeBSD.org
    FreeBSD CI Tinderbox view URL: https://https://tinderbox.freebsd.org
    FreeBSD CI artifact archive URL: https://artifact.ci.FreeBSD.org
    Hosted CI wiki URL: https://wiki.FreeBSD.org/HostedCI
    3rd Party Software CI URL: https://wiki.FreeBSD.org/3rdPartySoftwareCI
    Tickets related to freebsd-testing@ URL: https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=open&email1=testing%40FreeBSD.org&emailassigned_to1=1&emailcc1=1&emailtype1=equals
    FreeBSD CI Repository URL: https://github.com/freebsd/freebsd-ci
    dev-ci Mailing List URL: https://lists.FreeBSD.org/subscription/dev-ci

    Contact: Jenkins Admin <[email protected]>
    Contact: Li-Wen Hsu <[email protected]>
    Contact: freebsd-testing Mailing List
    Contact: IRC #freebsd-ci channel on EFNet

    In the first quarter of 2024, we worked with the project contributors and developers to address their testing requirements. Concurrently, we collaborated with external projects and companies to enhance their products by testing more on FreeBSD.

    Important completed tasks:

    • With help from clusteradm, the host running test VMs had disk and memory
    upgraded by reusing the parts of decommissioned machines.

    • Update the build environment of stable/13 jobs to 13.3-RELEASE.

    • Turn i386 build on main branch to use cross build on amd64.

    Work in progress tasks:

    • Merging https://reviews.freebsd.org/D43786

    • Merging https://reviews.freebsd.org/D36257

    • Adding new hardware purchased by the FreeBSD Foundation to the CI cluster

    • Designing and implementing pre-commit CI building and testing and pull/
    merge-request based system (to support the workflow working group)

    • Proof of concept system is in progress.

    • Designing and implementing use of CI cluster to build release artifacts as
    release engineering does, starting with snapshot builds

    • Simplifying CI/test environment setting up for contributors and developers

    • Setting up the CI stage environment and putting the experimental jobs on it

    • Redesigning the hardware test lab and adding more hardware for testing

    Open or queued tasks:

    • Collecting and sorting CI tasks and ideas

    • Setting up public network access for the VM guest running tests

    • Implementing use of bare-metal hardware to run test suites

    • Adding drm ports building tests against -CURRENT

    • Planning to run ztest tests

    • Helping more software get FreeBSD support in its CI pipeline (Wiki pages:
    3rdPartySoftwareCI, HostedCI)

    • Working with hosted CI providers to have better FreeBSD support

    Please see freebsd-testing@ related tickets for more WIP information, and do not hesitate to join the effort!

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Ports Collection

    Links:
    About FreeBSD Ports URL:https://www.FreeBSD.org/ports/
    Contributing to Ports URL: https://docs.freebsd.org/en/articles/contributing/# ports-contributing
    Ports Management Team URL: https://www.freebsd.org/portmgr/
    Ports Tarball URL: http://ftp.freebsd.org/pub/FreeBSD/ports/ports/

    Contact: Tobias C. Berner <[email protected]>
    Contact: FreeBSD Ports Management Team <[email protected]>

    The Ports Management Team is responsible for overseeing the overall direction of the Ports Tree, building packages, and personnel matters. Below is what happened in the last quarter.

    According to INDEX, there are currently 32,244 ports in the Ports Collection. There are currently ~3,300 open ports PRs. The last quarter saw 12,991 commits by 158 committers on the main branch and 888 commits by 61 committers on the 2024Q1 branch. Compared to last quarter, this means a large increase in the number of commits on the main branch (up from 9,424) and slightly more backports to the quarterly branch (up from 781). The number of ports also increased (up from 31,942).

    In Q1 there were around 14,127 commits to main: The most active committers were:

    • 2934 sunpoet

    • 2676 bofh

    • 1297 yuri

    • 748 eduardo

    • 545 jbeich

    • 347 arrowd

    • 233 diizzy

    • 195 yasu

    • 170 ehaupt

    • 164 wen

    A lot has happened in the ports tree in the last quarter, an excerpt of the major software upgrades are:

    • pkg 1.21.0

    • New USES: ocaml

    • Default version of gcc switched to 13

    • Default version of ruby switched to 3.2

    • Default version of lazarus switched to 3.2.0

    • Default version of go switched to 1.21

    • Chromium updated to 123.0.6312.105

    • Electron-28 updated to 28.2.10

    • Electron-27 updated to 27.3.9

    • Firefox updated to 124.0.2

    • Firefox-esr updated to 115.9.1

    • KDE updated to Frameworks 5 5.115, Frameworks 6 to 6.0.0 Plasma Desktop 5
    to 5.27.11, Plasma Desktop 6 to 6.0.2

    • Qt5 updated to 5.15.13

    • Qt6 updated to 6.6.3

    • Python updated to 3.11.9, 3.10.14 and 3.8.10

    • Ruby updated to 3.2.3

    • Rust updated to 1.77.0

    • SDL updated to 2.30.2

    • Sway updated to 1.9

    • wlroots updated to 1.17.2

    • Wine updated to 9.0

    • Xorg server updated to 0.17.2

    During the last quarter, FreeBSD Packages Management Team ran 17 exp-runs to test various ports upgrades, updates to default versions of ports, subpackage support and base system changes.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Projects

    Projects that span multiple categories, from the kernel and userspace to the Ports Collection or external projects.

    Audio Stack Improvements

    Contact: Christos Margiolis <[email protected]>

    The FreeBSD audio stack is one of those fields that does not attract the same attention and development as others do, since it has been left largely unmaintained, and, although high in quality, there is still room for improvement — from lack of audio development frameworks, to missing userland
    utilities and kernel driver-related bugs. This project is meant to touch on all those areas, and as such, is more of a general improvement project, than an implementation of a specific feature.

    So far, my focus has been towards the kernel side of the audio stack, with D43545 being probably the most requested and notable patch. I am also working on scrapping the rather outdated "snd_clone" audio device cloning framework of sound(4), and replacing it with DEVFS_CDEVPRIV(9) (D44411).

    Some of the future tasks include:

    • Attempt to find a better (ideally automatic) way to handle snd_hda(4)
    pin-patching.

    • Implement an oss(3) library and audio(8) utility, in similar fashion to
    mixer(3) and mixer(8).

    • Write a bluetooth device management utility.

    • Improve mixer(3) and mixer(8).

    • Improve documentation and test suite where needed.

    A more detailed description can be found here.

    You can also follow the development process in freebsd-multimedia@, where I post regular reports:

    • Report #1

    • Report #2

    • Report #3

    • Report #4

    • Report #5

    • Report #6

    • Report #7

    • Report #8

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Bhyve Improvements

    Links:
    bhyve production users calls URL: https://callfortesting.org
    FreeBSD Wiki - Enterprise Working Group URL: https://wiki.freebsd.org/EnterpriseWorkingGroup
    FreeBSD Wiki - EWG - bhyve and jails management tooling URL: https://wiki.freebsd.org/ChrisMoerz/bhyve_management
    Jan Bramkamp’s work on s6rc URL: http://static.bultmann.eu/s6-talk/
    vmstated on GitHub URL: https://github.com/christian-moerz/vmstated
    YouTube - vmstated explained URL: https://www.youtube.com/watch?v=f60NCrunXyw

    Contact: Chris Moerz <[email protected]>

    Bhyve I/O Performance Measurements

    Participants of the weekly bhyve production users calls recently discussed bhyve’s I/O performance. Various ways of measuring and comparing were brought up, however it was quickly clear that there is currently no formal analysis and report on this. So, we started this effort in the hopes of better understanding the various impacts of configuration options for a guest on its I/O performance. We created a set of shell scripts that harness a FreeBSD guest for running benchmarks/fio I/O performance measurements under various configurations. This allows us to compare multiple criteria like bandwidth, latency, IOPS, and more.

    So far, we are testing for

    • different storage backends (i.e. ahci-hd, nvme, virtio-blk)

    • different memory settings

    • different CPU pinning options

    • different block sizes for the backing storage

    • different block sizes for accessing virtual disks

    We are also pitting results for different CPU manufacturers against each other and contrasting guest vs host performance to better understand the performance impact of virtualization.

    We plan to continue discussing our results during Michael Dexter’s weekly bhyve
    production users call - come join us if you are interested. We also hope to be able to present the results at EuroBSDCon in Q3.

    Bhyve Virtual Machine Tooling

    Last year, Greg Wallace at the FreeBSD Foundation founded the Enterprise Working Group with the specific goal of addressing pain points of Enterprise users of FreeBSD. One of the work groups that emerged clustered around bhyve and jails management tooling. After collecting a set of desired features and functionality, one overarching key point for bhyve emerged: the desire to have configuration concepts and tooling for bhyve like the ones available for jails.

    While other desirable features were identified as well, i.e. TPM software emulation and snapshot/restore/host-migration, the conceptual tooling question won over those due to the lower degree of complexity and its clarity on goal and the path on how to take steps towards it.

    Technically, this means working out existing gaps around process supervision and virtual machine state management. First steps were taken by experimenting with existing frameworks (i.e. s6rc work by Jan Bramkamp) and eventually — through discussions in the weekly bhyve production user’s calls
    (organized by Michael Dexter) — this led to a proof-of-concept implementation
    of "vmstated".

    Started as an experiment to better understand the problem space of process supervision and virtual machine state handling, vmstated is constructed of a daemon and vmstatedctl management utility. It is built with base-only tooling and libraries and leverages FreeBSD specific constructs like kqueue to minimize its resource impact.

    vmstated is configured via a UCL configuration file (similar to jails.conf) and — in combination with a bhyve_config(5) configuration file — already
    provides highest flexibility in configuring virtual machines. vmstatedctl provides a jail-like command set to start, stop, and retrieve status information about guests. State transitions can easily be hooked via shell scripts and allow running additional commands for network or storage set up and tear down when relevant state changes occur.

    An initial release is already in ports as sysutils/vmstated and updates are pending commit; however, the newest version can be found on GitHub. We are considering expanding the work; we would also like to invite anyone interested to join us in this work! Patches, suggestions, feedback, etc. are all very much welcome!

    If you want to know more about our work, come join us at one of Michael Dexter’s weekly bhyve production users calls or reach me by email.

    Documentation

    We managed to update a few parts of the Handbook and Porter’s Handbook (thanks
    to Ed Maste, Joseph Mingrone, Pau Amma, and Rodney W. Grimes):

    • several improvements and expansions to the virtualization chapter in the
    FreeBSD Handbook

    □ using a bhyve_config(5) configuration file

    □ jailing bhyve

    □ experimental snapshot and restore feature

    □ setting up a Windows guest

    • we also have a review (D43940) up for an initial step to improving the
    bhyve man page


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)