Bouncing on trampolines to run eBPF programs

This blog post is the second installment in our eBPF blog post series, following our blog post about eBPF selftests.

As eBPF is more and more used in the industry, eBPF kernel developers give considerable attention to eBPF performance: some standard use cases like system monitoring involve hundreds of eBPF programs attached to events triggered at high frequencies. It is then paramount to keep eBPF programs execution overhead as low as possible. This blog post aims to shed some light on an internal eBPF mechanism perfectly showcasing those efforts: the eBPF trampoline.

Continue reading “Bouncing on trampolines to run eBPF programs”

Back from Display Next Hackfest 2025

This year, the Linux Display Next Hackfest was hosted by AMD in Toronto. The event brought together a diverse group of contributors from a wide range of projects and companies, all united by a shared interest in advancing Linux Graphics. Participants included kernel developers, compositor maintainers, hardware vendors, and others deeply involved in the graphics stack. For the second year in a row, I had the opportunity to attend in person—an important step for Bootlin, as staying closely engaged with the latest developments in the Linux Graphics Stack is key to delivering upstream-friendly, cutting-edge support for our customers.

As usual, a wide range of topics were discussed: commit failure feedback, backlight API, adaptive backlight management, testing, pageflip, scheduling, variable refresh rate (VRR), atomic commits, and others. What made this edition especially noteworthy was the presence of two color experts: a full day was dedicated to exploring HDR—what it is, how it works, and how we can support it properly in Linux.

Display Next Hackfest 2025

You can read the notes for this event on Harry’s blog, or from Xaver Hugl, more will probably be posted later by other participants.

Continue reading “Back from Display Next Hackfest 2025”

Linux 6.16 released, Bootlin contributions

Penguin coding, AI generatedLinux 6.16 was released last Sunday, and as usual LWN provides the best coverage of what’s new: part 1 and part 2, as well as the KernelNewbies.org page for this release.

This time around, the engineers at Bootlin contributed 89 patches to the 6.16 release, but also as maintainers, they reviewed/merged 117 patches from other contributors!

Continue reading “Linux 6.16 released, Bootlin contributions”

Back from Netdev 0x19

Netdev 0x19Around mid-March, Bootlin engineers Köry Maincent and Romain Gantois had the chance to attend edition 0x19 of the Netdev conference, where developers from the Linux kernel networking community assemble for four days of technical presentations and discussions.

They were generally very much impressed by the quality and detail of the talks given during this conference, and they have selected two of the talks that they found the most interesting, which they summarized below. We expect the slides and videos to be published at some point in the future, but they don’t seem to be available at the moment.

Continue reading “Back from Netdev 0x19”

Linux 6.14 released, Bootlin contributions inside

Penguin coding, AI generatedLinux 6.14 was released last week, and as usual, we recommend checking out the LWN articles covering the 6.14 merge window (part 1, part 2) to get a good sense of the main new features and updates in this release.

Bootlin engineers have once again been busy contributing to this kernel release, with 125 commits authored by Bootlin engineers, and 60 patches reviewed and merged by Bootlin engineers who are maintainers of specific parts of the Linux kernel.

Continue reading “Linux 6.14 released, Bootlin contributions inside”

Linux 6.12 released, Bootlin contributions inside

Linux 6.12 has been released during the past week-end, pretty much as expected after 7 release candidates. As usual, we recommend our readers to go through the amazing LWN.net articles covering the 6.12 merge window (part 1, part 2) to get a high-level overview of the major new features and improvements in this 6.12 release. One of the prominent improvement in this release, as far as the embeded industry is concerned, is obviously the merge of the final bits enabling PREEMPT_RT… which already caused our Real-Time Linux with PREEMPT_RT training course to be updated.

As usual, Bootlin again contributed to this release: with 118 commits merged, we are again in the top 20 contributing companies! Also, in addition to contributing our own code, several of our engineers are also maintainers, and as part of this work those engineers review and merge patches from other contributors. As part of this effort, for this 6.12 release:

  • Alexandre Belloni, as the RTC and I3C subsystems maintainer, merged 29 patches from other contributors
  • Miquèl Raynal, as the MTD subsystem co-maintainer, merged 24 patches from other contributors
  • Grégory Clement, as the Marvell platform maintainer, merged 4 patches from other contributors

Overall, 13 active Bootlin engineers made contributions to this release, which on a total staff of 24 people, means that more than half of our team has contributed to the Linux kernel for 6.12, a good indication of our strong focus on Linux kernel development and upstreaming!

Continue reading “Linux 6.12 released, Bootlin contributions inside”

Linux 6.11 released, Bootlin contributions inside

Linux 6.11 has been released a week ago, the day before Open Source Summit Europe started, but as a large part of the Bootlin team was attending this conference and the immediately following Linux Plumbers conference, we are only posting now our usual blog post about our Linux 6.11 contributions.

As usual, we warmly recommend our readers to look at the articles from LWN.net covering the 6.11 merge window (part 1, part 2) to get a good high-level overview of the major new features and hardware support added in 6.11. CNX-Software also has a useful article on the 6.11 features relevant for embedded platforms.

From a Bootlin perspective, we contributed a total of 120 commits in this release, making us the 19th contributing company by number of commits, worldwide, according to the statistics. In addition to those 120 commits authored by Bootlin engineers, we reviewed and merged 76 patches from other contributors, as part of the Linux kernel maintainer role of several Bootlin engineers (Alexandre Belloni as the RTC and I3C maintainers, Miquèl Raynal as the MTD co-maintainer, and Grégory Clement as the Marvell platform maintainer).

Continue reading “Linux 6.11 released, Bootlin contributions inside”

Linux 6.10 released, Bootlin contributions inside

Linux 6.10 was released last Sunday, following its now well-known release cadence. As usual, head over to LWN.net to have some good summary of the important features merged in this kernel release: part 1 and part 2.

LWN also published an article on statistics of the 6.10 release cycle, and Bootlin shows up in the most active employers by changed lines, with 7746 lines changed by Bootlin engineers. According to ths Kernel Patch Statistics site, we contributed 110 changes, putting us as the 19th contributing company (counting “Unknown” and “Hobbyists” as companies).

Also, in addition to the 110 patches we contributed, some of our engineers are also maintainers of different subsystems, and as such they review/merge patches contributed by others:

  • Alexandre Belloni reviewed/merged 19 patches for the I3C and RTC subsystems which he maintains
  • Grégory Clement reviewed/merged 14 patches for the Marvell ARM and ARM64 platforms that he maintains
  • Miquèl Raynal reviewed/merged 12 patches for the MTD subsystem, which he co-maintains

Continue reading “Linux 6.10 released, Bootlin contributions inside”

Power over Ethernet (PoE) support into the official Linux Kernel

Introduction

Power over Ethernet (PoE) is a technology that combines power and data transmission over a single Ethernet cable. It simplifies the installation of networked devices like cameras, phones, and wireless access points by eliminating the need for separate power cables. PoE standards define how power is delivered alongside data, ensuring compatibility across devices. Originally denoted as “Power via MDI” (Media Dependent Interface) in the 802.3 IEEE standard, it later evolved into the recognized term “PoE” in the 2022 version of the standard. PoE equipment consists of two key components: Power Sourcing Equipment (PSE) and Powered Devices (PD).

Linux support, DENT initiative

Up until recently, the upstream Linux kernel had absolutely no support for Power over Ethernet technologies. Due to that, every hardware vendor providing PoE hardware was delivering its own vendor-specific and non-standard solution, often centered around not so great user-space libraries, with dubious integration with the rest of the Linux ecosystem and networking stack, like is unfortunately still done quite often by hardware vendors.

The DENT project, which exists under the umbrella of the Linux Foundation, aims at using the Linux Kernel, Switchdev, and other Linux based projects as the basis for building a new standardized network operating system without abstractions or overhead. Among other things supported by DENT is dentOS, a SwitchDev based NOS built on top of Open Network Linux, which includes PoE support, but based on yet another non-standard fully user-space driven solution in the name of poed, where even the HW-specific drivers are implemented in user-space.

So DENT set as a goal to implement a fully upstream solution in the Linux kernel to properly support Power over Ethernet, and contracted Bootlin to perform this development and upstreaming effort.

Continue reading “Power over Ethernet (PoE) support into the official Linux Kernel”

Linux 6.9 released, Bootlin contributions inside!

Linux 6.9 was released last Sunday, and as usual we refer our readers to the excellent LWN.net coverage of the Linux 6.9 merge window (part 1 and part 2) to get a good overall picture of the improvements and new features brought by this release.

On our side, we contributed a total of 119 commits authored by Bootlin engineers, but we also merged a total of 95 patches from other contributors, as several Bootlin engineers as also maintainers of various drivers/subsystems in the Linux kernel.

Continue reading “Linux 6.9 released, Bootlin contributions inside!”