• FreeBSD Status Report - First Quarter 2023 (1/3)

    From Lorenzo Salvadore@21:1/5 to All on Wed Apr 19 15:00:07 2023
    FreeBSD Status Report First Quarter 2023

    Here is the first status report of 2023, including 25 reports: we have our usual team reports, some news about cloud projects, progress in the src, ports and doc trees and more.

    We also provide some information about 13.2-RELEASE, which was postponed to the beginning of 2023Q2; but since this report is being published after the new version release, it is already available for installation. Users of RELEASE versions can now take advantage of many improvements such as better support for iwlwifi(4) driver or the new rtw88(4) driver, topics that have been covered in past status reports.

    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-2023-01-2023-03/

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

    • FreeBSD Team Reports
    □ FreeBSD Core Team
    □ FreeBSD Foundation
    □ FreeBSD Release Engineering Team
    □ Cluster Administration Team
    □ Continuous Integration
    □ Ports Collection
    □ Status Team
    • Userland
    □ daemon(8) improvements
    • Kernel
    □ Enabling Snapshots on Filesystems Using Journaled Soft Updates in 13.2
    □ Improve the kinst DTrace provider
    □ Native Linux timerfd
    • Architectures
    □ Kernel Address Sanitizer on AArch64
    □ bsd-user: Upstreaming and Status Report
    • Cloud
    □ FreeBSD as a Tier 1 cloud-init Platform
    □ OpenStack on FreeBSD
    • Documentation
    □ Documentation Engineering Team
    □ The FreeBSD Russian Documentation Project
    • Ports
    □ Freshports: SQL Injection Attack and Help Request
    □ DRM drivers (i.e. GPU drivers)
    □ KDE on FreeBSD
    □ FSX
    □ GCC on FreeBSD
    □ Valgrind - Preparing for Valgrind 3.21
    • Third Party Projects
    □ PkgBase.live
    □ 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 <core@FreeBSD.org>

    The FreeBSD Core Team is the governing body of FreeBSD.

    Items

    Core Team Charter: Draft

    At the first Core Team meeting of 2023, Team delegates from the December 2022 meeting in Boulder, US presented the delegation’s conclusions to the entire Team. The Team will continue to discuss the issues and work together with the FreeBSD Foundation.

    FreeBSD annual developers survey

    The Core Team together with the FreeBSD Foundation have decided that the FreeBSD Foundation will be in charge of conducting the annual developers survey.

    Matrix IM solution

    The Core Team continues to evaluate Matrix as an IM solution for FreeBSD developers. An instance has already been prepared and tests are underway.

    Commit bits

    • Core approved the src commit bit for Cheng Cui (cc@)

    • Core approved the restore of the src commit bit for Joseph Koshy (jkoshy@).

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

    FreeBSD Foundation

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

    Contact: Deb Goodkin <deb@FreeBSDFoundation.org>

    The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated to supporting and promoting the FreeBSD Project and community worldwide. Donations from individuals and corporations are used to fund and manage software development projects, conferences, and developer summits. We also provide travel grants to FreeBSD contributors, purchase and support hardware to improve and maintain FreeBSD infrastructure, and provide resources to improve security, quality assurance, and release engineering efforts. We publish marketing material to promote, educate, and advocate for the FreeBSD Project, facilitate collaboration between commercial vendors and FreeBSD developers, and finally, represent the FreeBSD Project in executing contracts, license agreements, and other legal arrangements that require a recognized legal entity.

    Fundraising Efforts

    We finally have our 2022 fundraising numbers in and we raised a total of $1,231,096! We were short of our goal, which forced us to pull around $74,000 from our longer term investments.

    Besides receiving a lot of donations from you our users and contributors, we received larger donations from Juniper, Meta, Arm, Netflix, Beckhoff, Tarsnap, Modirum, Koum Family Foundation, and Stormshield. I’d like to extend a heartfelt thank you on behalf of the Foundation to everyone, including individuals and corporations, for your financial contributions in 2022!

    This year our budget is around $2,230,000, which includes increased spending towards FreeBSD advocacy and software development. More than half our budget is allocated towards work directly related to improving FreeBSD and keeping it secure. To fund the 2023 budget, we increased our fundraising goal and plan on using some of our investment money. When we received our first million dollar donation, the plan was to use up to 10% of it each year to increase our work to improve FreeBSD, so this has been part of our funding plan for a few years now.

    The 2023 budget is in the process of being approved by the board of directors and will be published once it is approved.

    This quarter we received donations from Juniper, Tarsnap, Microsoft, and Stormshield. So, we are already off to a great start! But, we definitely need more to support our planned efforts for 2023.

    If you want to help us continue our efforts, please consider making a donation towards our 2023 fundraising campaign! https://www.freebsdfoundation.org/donate/

    We also have a Partnership Program for larger commercial donors. You can read about it at https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/.

    OS Improvements

    During the first quarter of 2023, 226 src, 39 ports, and 12 doc tree commits identified the Foundation as a sponsor. Some of this sponsored work is described in separate report entries:

    • Continuous Integration

    • Enabling Snapshots on Filesystems Using Journaled Soft Updates

    • FreeBSD as a Tier 1 cloud-init Platform

    • FreeBSD Release Engineering Team

    • Improve the kinst DTrace provider

    • OpenStack on FreeBSD

    Other Foundation-sponsored work included:

    • OpenSSH fixes and updates to versions 9.2p1 and 9.3p1

    • a vendor import and update of libpcap to version 1.10.3

    • improvements to tmpfs, msdosfs, and makefs

    • the addition of a new kqueue1 syscall

    • man page updates

    • dtrace and bhyve fixes

    • LinuxKPI work

    Continuous Integration and Quality Assurance

    The Foundation provides a full-time staff member and funds projects to improve continuous integration, automated testing, and overall quality assurance efforts for the FreeBSD project. You can read more about CI work in a dedicated report entry. A current project that is being funded by the FreeBSD Foundation is one to develop a set of scripts to help src developers conduct CI tests themselves. One of the main goals is to offer more visibility at the pre-commit stage. A review for the first milestone has been submitted.

    FreeBSD Advocacy and Education

    Much of our effort is dedicated to the FreeBSD Project advocacy. This may involve highlighting interesting FreeBSD work, producing literature and video tutorials, attending events, or giving presentations. The goal of the literature we produce is to teach people FreeBSD basics and help make their path to adoption or contribution easier. Other than attending and presenting at events, we encourage and help community members run their own FreeBSD events, give presentations, or staff FreeBSD tables.

    The FreeBSD Foundation sponsors many conferences, events, and summits around the globe. These events can be BSD-related, open source, or technology events geared towards underrepresented groups. We support the FreeBSD-focused events to help provide a venue for sharing knowledge, working together on projects, and facilitating collaboration between developers and commercial users. This all helps provide a healthy ecosystem. We support the non-FreeBSD events to promote and raise awareness of FreeBSD, to increase the use of FreeBSD in different applications, and to recruit more contributors to the Project. We are back to attending events mostly in person and began planning the in person May 2023 Developer Summit, co-located with BSDCan. In addition to attending and planning events, we are continually working on new training initiatives and updating our selection of how-to guides to facilitate getting more folks to try out FreeBSD.

    Check out some of our advocacy and education work:

    • Hosted a stand at FOSDEM 2023, February 4-5, 2023 in Brussels, Belgium.
    Check out the trip report.

    • Hosted a table at State of Open Con 2023, February, 7-8, 2023, in London,
    England. Read more about it.

    • Sponsored, held a workshop and hosted a booth at SCALE 20x, in March 9-12,
    2023, Pasadena, California. Check out the trip report.

    • Sponsored Open Source 101, March 23 2023, in Charlotte, NC.

    • Sponsored and began planning the in-person May 2023 Developer Summit taking
    place May 17-18, 2023 in Ottawa, Ontario

    • Secured our Media Partner sponsorship status and submitted a workshop for
    All Things Open, October 15-17, 2023 in Raleigh, NC.

    • Submitted a Workshop proposal for FOSSY, July 13-16, 2023, in Portland, OR.

    • The FreeBSD Project was accepted as a Participating Organization for Google
    Summer of Code.

    • We held GSoC Office Hours to help prospective participants with questions.

    • Published March Newsletter

    • Additional Blog Posts

    □ Under the Hood with FreeBSD and Ampere Altra

    □ New Open Position: FreeBSD Userland Software Developer - Note: Posting
    is closed.

    □ BSDCan 2023 Travel Grant Application Now Open - Note: Applications are
    closed

    • FreeBSD in the News:

    □ VMBlog State of Open Con Q&A with Deb Goodkin

    We help educate the world about FreeBSD by publishing the professionally produced FreeBSD Journal. As we mentioned previously, the FreeBSD Journal is now a free publication. Find out more and access the latest issues at https://www.freebsdfoundation.org/journal/.

    You can find out more about events we attended and upcoming events at https://www.FreeBSDfoundation.org/news-and-events/.

    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://www.freebsdfoundation.org to find more about how we support FreeBSD and how we can help you!

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

    FreeBSD Release Engineering Team

    Links:
    FreeBSD 13.2-RELEASE schedule URL: https://www.freebsd.org/releases/13.2R/schedule/
    FreeBSD 14.0-RELEASE schedule URL: https://www.freebsd.org/releases/14.0R/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, <re@FreeBSD.org>

    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 2023, the Release Engineering Team started work on the upcoming 13.2-RELEASE. As of this writing, the 13.2 cycle has followed the originally set schedule, with the addition of fourth, fifth and sixth RC builds, postponing the final release from the end of March to early April.

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

    Sponsor: Rubicon Communications, LLC ("Netgate")
    Sponsor: Tarsnap
    Sponsor: The FreeBSD Foundation

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

    Cluster Administration Team

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

    Contact: Cluster Administration Team <clusteradm@FreeBSD.org>

    FreeBSD Cluster Administration Team members are responsible for managing the machines the Project relies on to synchronise 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.

    • Improve the PowerPC package builders.

    □ With new parts obtained through the FreeBSD Foundation, the builders
    now have new NVMEs with heatsinks and more memory. It helped seize the
    heat issue, and they are building packages faster now.

    • Decouple dynamic resources from the main websites.

    □ Work in coordination with doceng and webmaster to decouple dynamic
    resources from the websites, www.FreeBSD.org, and docs.FreeBSD.org.

    Work in progress

    • Large-scale network upgrade at our primary site.

    □ New Juniper switches arrived at our primary site to replace the former
    ones. We thank Juniper for the donation.

    • Replace old servers in our primary site and a few mirrors.

    □ Besides the broken CI servers, we have a few old servers with broken
    disks and faulty PSUs. This task is in conjunction with the FreeBSD
    Foundation and donors/sponsors.

    • Deploy infrastructure to mirror the websites.

    □ Since the FreeBSD website is now mostly static, we have begun deploying
    infrastructure to mirror www.FreeBSD.org and docs.FreeBSD.org around
    the world in FreeBSD project-managed mirrors.

    • Create a new search database engine for internal FreeBSD.org searching
    needs like mailing list and docs.

    FreeBSD Official Mirrors Overview

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

    The hardware and network connection have been generously provided by:

    • Bytemark Hosting

    • 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

    • Your.Org.

    The Frankfurt single server mirror is the primary Europe mirror in bandwidth and usage.

    We are still looking for an additional full mirror site (five servers) in Europe to replace old servers in the United Kingdom full mirror site.

    We see a good pattern in having single mirrors in Internet Exchange Points worldwide (Australia, Brazil, and South Africa); if you know or work for some of them that could sponsor a single mirror server, please get in touch. United States (West Coast) and Europe (anywhere) are preferable places.

    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 artifact archive URL: https://artifact.ci.FreeBSD.org
    FreeBSD Jenkins wiki URL: https://wiki.FreeBSD.org/Jenkins
    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 <jenkins-admin@FreeBSD.org>
    Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>
    Contact: freebsd-testing Mailing List
    Contact: IRC #freebsd-ci channel on EFNet

    In the first quarter of 2023, 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:

    • FreeBSD-main-aarch64-KASAN_test and its supporting jobs have been added.

    • FreeBSD-stable-13-amd64-KASAN_test and its supporting jobs have been added.

    • FreeBSD-main-amd64-gcc12_build now sends failing reports to the committers
    whose commits may be related.

    • Various fixes or workarounds to the tests of non-x86 architectures from
    trasz@

    • Present Testing/CI Status Update in AsiaBSDCon 2023 Developer Summit

    Work in progress tasks:

    • Designing and implementing pre-commit CI building and testing (to support
    the workflow working group)

    • Designing and implementing use of CI cluster to build release artifacts as
    release engineering does

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

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

    • Organizing the scripts in freebsd-ci repository to prepare for merging to
    src repository

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

    • Merge https://reviews.freebsd.org/D38815

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

    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 don’t
    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
    FreeBSD Ports Monitoring URL: http://portsmon.freebsd.org/
    Ports Management Team URL: https://www.freebsd.org/portmgr/
    Ports Tarball URL: http://ftp.freebsd.org/pub/FreeBSD/ports/ports/

    Contact: René Ladan <portmgr-secretary@FreeBSD.org>
    Contact: FreeBSD Ports Management Team <portmgr@FreeBSD.org>

    The Ports Management Team is responsible for overseeing the overall direction of the Ports Tree, building packages (through its subsidiary pkgmgr), and personnel matters. Below is what happened in this quarter.

    Currently we have around 33,500 ports in the tree. For these ports, there are 3,021 open problem reports, of which 764 are unassigned. The first three months of this year saw 9,021 commits by 163 committers for the main branch and 701 commits by 55 committers for the 2023Q1 branch. Compared to 2022Q4, this means a slight increase in the number of ports, port PRs, ports commits, and active port committers.

    During this quarter, we welcomed Robert Clausecker (fuz@), Vladimir Druzenko (vvd@), Robert Nagy (rnagy@), welcomed back Norikatsu Shigemura (nork@), and said goodbye to Marius Strobl (marius@). Portgmr added Muhammad Moinur Rahman (bofh@) as a new member after a successful lurkership.

    During the bi-weekly portmgr meetings, the following topics were discussed:

    • improving the situation of binary packages for kernel modules

    • ways to measure the impact of ports on their dependencies and how to
    maintain high-impact ports.

    During this quarter, 32 exp-runs were run to test port updates, updating default versions (LLVM to 15, MySQL to 8.0, Ruby to 3.1), and updating byacc in base. Furthermore, the default version of Go switched to 1.20 and that of Lazarus to 2.2.6.

    Four new USES were introduced:

    • budgie to support ports related to the Budgie Desktop

    • ldap to provide support for OpenLDAP, with a new default version of 26
    (i.e. 2.6)

    • nextcloud to support Nextcloud applications

    • ruby to provide support for Ruby ports (formerly bsd.ruby.mk).

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

    Status Team

    Links:
    FreeBSD status reports URL: https://www.freebsd.org/status/
    FreeBSD Status Report Process URL: https://docs.freebsd.org/en/articles/freebsd-status-report-process/
    Archived status reports GitHub repository URL: https://github.com/freebsd/freebsd-quarterly

    Contact: <status@FreeBSD.org>

    The new workflow has started

    In the first quarter of this year, the status team has started implementing the new workflow that was announced at the end of 2022. Here are some details.

    New email addresses

    Last quarter we have announced the creation of new email addresses:

    • <status@FreeBSD.org>, for interacting with the status team directly;

    • <status-submissions@FreeBSD.org, for sending reports submissions;

    • <freebsd-status-calls@FreeBSD.org>, a mailing list to which you can
    subscribe to get reminders about status report submission deadlines.

    Unfortunately, the mailing list does not work as expected at the moment. The issue has been reported but no solution could be found yet. However, a work around allowed to send the second and the last reminder to the list.

    Automation

    Some automation has been introduced to ensure that no report submission is lost:

    • on Phabricator a herald rule automatically blocks any review touching the
    status reports directory: even if a report submitter forgets to add the
    status team as reviewer, salvadore@ (member of the status team) will block
    the patch anyway. The same rule will also block any review that includes
    the status team as reviewer, to ensure that at least one member of status
    has reviewed the patch before commit.

    • a GitHub action automatically adds the newly introduced status report label
    to any pull request touching the status reports directory. The GitHub
    action should be easily modifiable by anyone wanting to apply more labels
    automatically depending on the path of the modified files.

    More automation is planned.

    Documentation reorganization

    The status report README and How To have been updated and merged in one unique document: the FreeBSD status report process. You can check it out to read details about reports submission and publication. It will be updated regularly as the status team proceeds with the implementation of its new workflow. In particular, new material about automation is coming soon.

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

    Userland

    Changes affecting the base system and programs in it.

    daemon(8) improvements

    Links:
    daemon(8) URL: https://man.freebsd.org/daemon/8
    Libera IRC URL: https://libera.chat/

    Contact: Ihor Antonov <ihor@antonovs.family>
    Contact: Kyle Evans <kevans@FreeBSD.org>

    An ongoing effort to improve code quality and supervision capabilities of the daemon utility. Daemon is a tool that can daemonize (send to background) or supervise any running process, automatically restarting it if it crashes. Daemon is widely used in the ports tree and can be used more in base.

    This quarter long_opts support was added and the codebase went through an initial refactoring phase to prepare it for further changes. There are no functional changes so far but more changes are coming. Please contact directly or on #freebsd-dev on Libera IRC if you encounter unexpected bugs.

    Planned work items for the next quarter:

    • use of kqueue for all event sources

    • fix Bug #268580

    • fix Bug #236117

    • fix Bug #254511

    • fix Bug #212829

    • procctl PROC_REAP_ACQUIRE

    We are looking for feedback, bug reports (old and new) and feature requests.

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

    Kernel

    Updates to kernel subsystems/features, driver support, filesystems, and more.

    Enabling Snapshots on Filesystems Using Journaled Soft Updates in 13.2

    Contact: Marshall Kirk McKusick <mckusick@freebsd.org>

    The ability to make UFS/FFS filesystem snapshots when running with journaled soft updates, and using them for doing background dumps on a live filesystem, was merged to releng/13.2 during the first quarter of 2023, and lands in FreeBSD 13.2-RELEASE.

    Background dumps are requested by using the -L flag to dump(8).

    The details of this project were described in the 2022 fourth quarter report.

    Sponsored by: The FreeBSD Foundation

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

    Improve the kinst DTrace provider

    Links:
    libdtrace: implement inline function tracing URL: https://reviews.freebsd.org/D38825
    dtrace(1): add -d flag to dump D script post-dt_sugar URL: https://reviews.freebsd.org/D38732

    Contact: Christos Margiolis <christos@FreeBSD.org>
    Contact: Mark Johnston <markj@FreeBSD.org>

    kinst is a new DTrace provider created by christos@ and markj@ that allows for arbitrary instruction tracing in a kernel function. kinst has been added to the base system in FreeBSD 14.0.

    The 2022Q3 status report gives a brief introduction to kinst. We’re now working
    on inline function tracing (see review D38825 above) — a much-requested DTrace
    feature — by using kernel DWARF and ELF info to find the call sites of each
    inline copy and use that information to transform D syntax by turning kinst probes of the form:

    kinst::<inline_func>:<entry/return>
    /<pred>/
    {
    <acts>
    }

    To:

    kinst::<caller_func1>:<offset>,
    kinst::<caller_func2>:<offset>,
    kinst::<caller_func3>:<offset>
    /<pred>/
    {
    <acts>
    }

    For example:

    # dtrace -dn 'kinst::cam_iosched_has_more_trim:entry { printf("\t%d\t%s", pid, execname); }'
    kinst::cam_iosched_get_trim:13,
    kinst::cam_iosched_next_bio:13,
    kinst::cam_iosched_schedule:40
    {
    printf("\t%d\t%s", pid, execname);
    }

    dtrace: description 'kinst::cam_iosched_has_more_trim:entry ' matched 3 probes
    CPU ID FUNCTION:NAME
    2 79315 cam_iosched_next_bio:13 0 kernel
    2 79316 cam_iosched_schedule:40 0 kernel
    0 79316 cam_iosched_schedule:40 12 intr
    2 79315 cam_iosched_next_bio:13 0 kernel
    2 79316 cam_iosched_schedule:40 0 kernel
    0 79316 cam_iosched_schedule:40 12 intr
    ^C

    A new -d flag has also been added to dtrace(1) which dumps the D script after libdtrace has applied syntactic transformations.

    Further goals include:

    • Implement a locals structure in D which stores the local variables of the
    traced function. For example with kinst::foo:<x>, we could print the local
    variable bar by doing print(locals→bar) inside a D script.

    • Port kinst to riscv and/or arm64.

    Sponsor: The FreeBSD Foundation

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

    Native Linux timerfd

    Links:
    Differential revision URL: https://reviews.freebsd.org/D38459

    Contact: Jake Freeland <jfree@FreeBSD.org>

    The timerfd facility is a set of Linux-standard system calls that operate on interval timers. These timers are analogous to per-process timers but are represented by a file descriptor, rather than a process. These file descriptors may be passed to other processes, are preserved across fork(2), and may be monitored via kevent(2), poll(2), or select(2).

    A timerfd implementation in FreeBSD already exists for Linux compatibility, but this differential revision makes the interface native. The goal behind this change is to ease the FreeBSD porting process for programs that include timerfd.

    This specific implementation avoids adding new names to the system call table. Instead, timerfd_create() is wrapped by the specialfd() system call. The timerfd_gettime() and `timerfd_settime() calls are wrapped ioctl() s.

    Developers that wish to support FreeBSD should avoid using timerfd. The kqueue () EVFILT_TIMER filter is preferred for establishing arbitrary timers.

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

    Architectures

    Updating platform-specific features and bringing in support for new hardware platforms.

    Kernel Address Sanitizer on AArch64

    Contact: Kyle Evans <kevans@FreeBSD.org>

    Sanitizers are bug detection facilities which use a combination of

    [continued in next message]

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