The sched_exit Microconference

The sched_ext Microconference was very active this year at Linux Plumbers in Prague. It featured
six talks, preceded by an opening discussion on the future direction of sched_ext.
(Written by Andrea Righi)

Three main topics dominated the discussions

  • Priority inversion and how to handle it in sched_ext: lock holder and
    lock waiter preemption, time slice extension, and making proxy execution
    work together with BPF schedulers.
  • Paravirtualized scheduling: letting the host and guest schedulers
    cooperate across the VM boundary, with sched_ext as the policy engine on
    the host.
  • Device and topology-aware scheduling: using hardware feedback (Intel
    HFI), device/accelerator locality and cache topology to drive task
    placement.

Intro: where sched_ext is going

The opening discussion outlined three directions for sched_ext development:

  • Move more into BPF. With BPF arenas, queuing and idle CPU management can
    be implemented entirely in BPF, and several schedulers are already
    converging on this model. Once they all move, a significant amount of
    in-kernel sched_ext code can be removed.
  • Composability. Long discussed, now a good time to tackle it: reusable
    BPF/user-space building blocks (load balancer from one scheduler, idle CPU
    selection from another, etc.) that can be combined into new schedulers.
  • Generate BPF code from Rust. Most schedulers today are Rust in
    user space plus C for the BPF part. The trend, aligned with the wider
    BPF community, is to generate the BPF code from Rust as well, so a
    single language and shared abstractions can be used to access
    scheduling data structures from both sides. Prototypes exist but this
    is not there yet.

Priority inversion

Making proxy execution compatible with sched_ext
(Andrea Righi and John Stultz)

Proxy execution lets a mutex-blocked task lend its scheduling context to the
lock owner. The work presented makes this compatible with sched_ext, with
support enabled explicitly by each BPF scheduler. Dispatching a blocked task
triggers the core proxy machinery, keeping the BPF scheduler in control.

The compatibility changes and follow-up improvements are queued for Linux v7.4.
Distributions will be able to enable both `CONFIG_SCHED_PROXY_EXEC` and
`CONFIG_SCHED_CLASS_EXT` in the same kernel, removing their previous mutual
exclusion. The follow-up changes will also make proxy migrations transparent to
BPF, without exposing intermediate bookkeeping through extra enqueue callbacks.

Discussion points:

  • User-space locks: futexes are not covered since `FUTEX_WAIT` does not
    identify the owner. A new futex op that carries ownership is being explored;
    passing user-space owner hints (e.g., via BPF maps or futex flags) is
    inherently racy. A “directed yield” (timed proxy to a specific task) was
    mentioned as future work.
  • rwsems / semaphores: writer boosting is supported via a patch; boosting
    multiple readers is harder and has overhead. Plain semaphores have no owner
    and cannot be proxied.
  • Observability: there are no upstream tracepoints for proxy execution
    yet, which makes traces confusing (the owner runs under the donor’s
    context). Something similar to the existing PI tracepoints was requested.

Taming latency spikes caused by lock holder and lock waiter preemption
(Changwoo Min)

On the Steam Frame VR headset, camera processing must finish within 33ms but
needs only about 7–8ms of CPU time. Under heavy gaming load, preempting a lock
holder or delaying a woken lock waiter can stretch the pipeline enough to miss
that deadline.

LAVD addresses both cases with time slice extension and boosting of lock
waiters. The mitigations reduced scheduling delays above 2ms across four games,
with no missed camera frames observed during an hour of gameplay in the tested
titles.

A common interface for lock ownership and waiting information, covering kernel
and user-space locks, would help replace scheduler-specific heuristics.

Discussion points:

  • Abuse of the extension is bounded by fairness: a task that constantly
    extends its slice is deprioritized.
  • Why not just rely on proxy execution? Proxy is reactive (owner scheduled
    out, donor scheduled in, owner scheduled in again), with extra overhead.
    The consensus was that the two approaches are complementary: slice
    extension is like a spinlock (cheap, good for short critical sections),
    proxy execution is like a mutex (heavier, but handles long ones).

Paravirtualized scheduling

Bridging the VM Boundary: Scheduling Passthrough via pvsched and sched_ext
(Josh Don and Vineeth Remanan Pillai)

A host scheduler normally sees opaque vCPU threads, without knowing whether
they are running urgent guest work or background jobs. pvsched provides a
bidirectional channel: guests communicate priorities and preemption hints,
while hosts report which vCPUs they can run concurrently.

The proposed v3 design moves negotiation into the VMM through a virtual PCI
device, keeping policy outside KVM. On the host, sched_ext can implement bounded
vCPU boosting and gang scheduling. Guests can concentrate work on the vCPUs the
host can actually run, reducing the cost of double scheduling.

The next revision is still to be posted upstream.

Discussion points:

  • BPF arenas as an alternative to a dedicated device: a host scheduler
    could allocate an arena, hand out per-guest chunks and get zero-copy
    communication with no kernel changes, needing only a way to pin arena
    memory. Someone from the audience pointed out that allocating memory on
    the host and mapping it into the guest on the fly is slow (memslot
    creation, guest notification), which is why guest-initiated allocation was
    chosen. However, this cost can be avoided: the host BPF scheduler can
    create the arena once when it is started and hand out per-guest chunks
    from the preallocated arena, mapping each chunk when the guest is set up
    rather than on the fly, which keeps the fast path cheap. It was also
    noted that the device model keeps the handshake arch-agnostic and
    evolvable without kernel changes.
  • There is related work from others in this area; the agreement was that
    the various efforts should converge on a single kernel module, possibly
    alongside a BPF-arena-based path.
  • Standardization: post the kernel module first, then the QEMU device, then
    other VMMs.
  • The preferred-CPU framework (steal governor) is related, but reactive,
    while pvsched allows an explicit policy.

Device and topology-aware scheduling

Automatic placement of accelerator workloads
(Balbir Singh and Lee Trager)

CPU and memory placement can have a large effect on accelerator performance,
but manual pinning requires applications or administrators to know the topology
and device usage in advance. The proposed alternative combines hints about
which device a task is using, sched_ext task placement, and memory-access
telemetry to guide page placement. PMU counters were also suggested as a source
of remote-access and bandwidth telemetry to inform those decisions.

Two interfaces are needed: a generic process-to-device association and BPF
control over NUMA placement preferences. A series enabling NUMA balancing under
sched_ext had recently been posted, together with a kfunc for requesting a
preferred memory node.

Discussion points:

  • Exposing PMU telemetry to non-root applications raises side-channel
    concerns; IPC is fairly safe, cache/TLB misses are a gray area. An
    allowlist of audited events was suggested.
  • Is a BPF map the right interface, or is a common user-space library needed
    so all frameworks can provide hints?
  • Migrating network-heavy tasks across nodes may interact badly with per-CPU
    queues and TCP flows.
  • NUMA balancing needs improvements, including asynchronous migration and
    charging migration work to the right task. Enabling it under sched_ext
    reuses the existing mechanism, so that work can proceed in parallel with
    those fixes. Telemetry-driven `move_pages()` can serve as an interim solution.

HFI plug-in for sched_ext
(Srinivas Pandruvada)

Intel’s Hardware Feedback Interface supplies per-CPU performance and efficiency
hints that reflect the platform’s changing power budget. Integrating these
hints into LAVD improved Shadow of the Tomb Raider performance by about three
frames per second on a hybrid Intel handheld at a 10W power limit.

The prototype took less than a month. A Rust user-space thread receives HFI
updates over netlink and passes them to BPF through a map; LAVD then adjusts CPU
selection and effective capacity.

Discussion points:

  • Why is HFI not used by the in-kernel scheduler? Older generations were too
    noisy, and the firmware was tuned mostly on Windows workloads; the last two
    generations treat Linux on equal footing, so it is worth revisiting.
  • Qualcomm’s WALT has a similar CPU isolation feature (thermal and
    low-utilization cases), implemented downstream via Android vendor hooks.
  • The preferred-CPU framework (steal governor) could be a natural in-kernel
    hook for HFI exclusion. The thermal pressure signal filter currently only allows
    slowing down the reaction time, and patches to make it configurable in both
    directions may be revisited given how fast firmware can now report changes.
  • The HFI code is structured as a library and was proposed for inclusion in
    the scx library so other schedulers can reuse it.

Stickiness: keeping tasks cache-warm in the work-conserving LAVD scheduler
(Gavin Guo)

Keeping a task on a cache-warm CPU can improve performance, but waiting for that
CPU competes with the benefit of running immediately elsewhere. The session
compared cache-warmth modelling, CPU reservation, and look-ahead dispatch from a
shared queue.

Results depended on the workload and approach. Warmth-based placement improved
P99 latency for short waits, while look-ahead dispatch showed no noticeable
memcached latency improvement under light or moderate load and added overhead
under heavier load.

Discussion points:

  • Staying on a busy CPU is a short-term gain, while an idle CPU may offer
    long-term uninterrupted execution, so the right answer is very workload-
    and topology-dependent (shared vs non-shared L2/L3, snoop efficiency).
  • Suggestions included using PMU counters (as scx_cosmos already does) or Intel
    RDT/CMT for cache occupancy (limited by the number of monitoring IDs),
    tracking only latency-critical tasks, and broader workloads such as
    stress-ng and video encoders.

LPC 2026 – Kernel Testing MC

The Kernel Testing & Dependability Micro-Conference was back again at Plumbers this year, in Prague and with a wide variety of topics. In addition to the well-established frameworks such as KUnit and kselftest, some new frontiers are being explored with the spotlight on LLM-assisted tools. Developers are also getting special treats with new kci-dev features and expert insights into local build testing at scale.

Primary author: Guillaume Tucker

kci-dev

What Changed, What Works, and What Kernel Developers Still Need – by Arisu Tachibana (virtual)

The kci-dev command line tool enables developers to interact with KernelCI. Here’s a summary of the latest changes:

  • Core implementation moved to the kcidev Python module as an API library
  • Standalone patch file testing enabled on top of a Git checkout
  • Submission of results to KCIDB enabled with artifacts uploaded to storage
  • Experimental MCP added on top of the API

The tool also benefits from these new plugins:

  • kci-patchwork to apply patch series from Patchwork and submit test job
  • kci_release_review to compare revisions and create reports

Plugins can help extend functionality so they should be a good way of driving future kci-dev development. The MCP may also enable new use cases. Please join the KernelCI mailing list and Discord channel as per the contact page if you wish to take part and discuss things further.

Build Identity

Kernel Builds Deserve an Identity: Portable Kernel Artifacts and Traceable Test Results – by Cong Wang

The raw metadata provided by uname, Git, IDs from various CI systems etc. does not provide any standard or consistent way to identify a build. As such, bug reports can’t directly refer to a single reproducible binary.

Cong Wang’s proposal is the Kernel Bundle Image (KBI) project. It draws a parallel with how OCI solved this for container images. The idea is essentially to create OCI images for kernel builds. However, it still has a low level of adoption and isn’t used by current automated testing systems.

How may KBI gain more traction?

Where should the line be drawn about what to include in the kernel build ID? There hasn’t been a clear consensus on this yet, whether it should include device trees, firmware blobs and other artifacts.

Yocto / OE also has a way to reproduce entire OS builds, including the kernel. This may be used as a guideline or potentially combined with the KBI approach.

It’s also worth noting that TuxMake is able to reproduce binary-identical builds for a given set of inputs (container image and build parameters), which does not constitute a build ID per se but could still be potentially very helpful for this purpose.

A related initiative is KernelSbom since a bill of materials could define the input to a KBI image: source with metadata, main build artifacts, additional contents (firmware, BPF).

KUnit Configuration

Rethinking KUnit Configuration – by David Gow

The session started with a poll: roughly half of the room use KUnit regularly and 3 people answered yes to the last question about running KUnit with multiple configurations. This tends to show that the tool is well established for standard usage but few developers use it in an expert way.

The main issue covered by this session is about limitations with the .kunitconfig file and qemu_config Python module, especially the lack of output format options and the fact that each config covers only a single KUnit run.

Proposal: Determine a single standard configuration mechanism to go beyond limitations while being easy to share between developers. Passing metadata through to the results would also be especially useful for CI systems which can deal with more details and trace the results back to their origin.

Should this be solved with a new config system or by extending an existing one?

KUnit config example

  • Option 1: extend .kunitconfig (currently a plain Kconfig fragment)
  • Option 2: native Python module since kunit.py is already in Python
  • Any other options?

David’s preferred option is to extend .kunitconfig.

For multiple runs bundled together, it’s important to be able to parse the results as if they were individual ones e.g. objects embedded within a bigger blob. One potential solution is to produce results in separate files (KTAP).

Multiple runs are useful for CI integration with a single entry point. It also removes the overhead of setting up many short-lived individual jobs. This doesn’t however appear to be too useful for manual runs. It can help a bit with git bisect run although multiple KUnit commands may be bundled within a single script.

It’s also worth noting that having isolated kernel runs would prevent a single crash from breaking the whole series.

The overall consensus is that multiple runs in a single command or config aren’t probably that useful except in particular cases e.g. CI hooks.

Build Testing

Optimizing local kernel build testing – by Arnd Bergmann

As a sequel from Arnd’s talk at Kernel Recipes, this session is to discuss using a manual, local setup to achieve wide build testing coverage. The focus is on linux-next, with -Werror enabled to try and catch all new build issues.

The best approach when something breaks is to send a fix if possible as it is a lot more effective than just reporting bugs. By doing this for many years, Arnd has fixed thousands of bugs upstream (3000+) and touched every subsystem in the kernel.

The most common problems are Kconfig dependency bugs since its logic is complicated and deceptive, especially with tristate options. The new kconfirm tool aims at solving this issue via static analysis.

Arnd keeps a small config fragment to maximise the effectiveness of build testing:

# maximize search space, disable options not worth testing
CONFIG_COMPILE_TEST=y
# avoid long build times
# PROFILE_ALL_BRANCHES is not set
# reduce compile-time dependencies
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y

Should orchestration of parallel builds be integrated upstream?

This sounds useful although the discussion didn’t expand on how to approach this topic in practice. The general makefile and arm64-specific testrandconfig64 files attached have been kindly provided by Arnd as a reference based on his local setup. Please feel free to reach out to him via email should you wish to discuss this further.

Should local build regression reports be sent to KCIDB? With a proposed fix in a patch?

Several people would welcome this and a follow-up discussion is intended to take place with the KernelCI team.

kcov and kselftest

Kselftest coverage with kcov – by Shuah Khan

Thousands of tests are available in-tree via kselftest and KUnit, but what is their coverage? Shuah has made an experimental tool to run kselftest with kcov and start looking into the issue. Coverage data is not ready to be published yet so the discussion was more about the potential use cases. You can already expect to see a more in-depth follow-up analysis on this topic next year and other general kselftest sessions at every future LPC.

How is code coverage useful?

When working with unknown customer workloads, comparing their coverage with well-known tests gives an idea of how much the tests are covering these workloads.

One issue with enabling kcov at build time is that it’s not suitable for production kernels. However, ftrace is usually enabled so it could be used in combination with kcov with different granularity (function-level only coverage with ftrace).

Another dimension to the problem is about evaluating other tools e.g. LLVM/Clang coverage. See also the LLM fuzzing session on a related topic.

KFuzzTest

KFuzzTest: One year on – by Ethan Graham

The aim of KFuzzTest is to combine the benefits of fuzzing and unit testing. A new, experimental API is now available in the latest version of the patch series to make it easier to write tests and facilitate adoption.

The next core feature which is currently under development is stateful fuzzing. Initial trials found a known bug which had already been fixed but this showed the tool’s potential.

Can fuzzing target specific code?

This is not trivial. In some cases, hardware mocks may be used to enable coverage on specific drivers. Generally speaking, KFuzzTest’s aim is to narrow down fuzzing to isolated functions like a unit test would typically do. The effectiveness of this method is still being debated, perhaps the sweet spot lies in between this and syzkaller’s broader approach.

How about stateful fuzzing?

Stateful fuzzing in userspace exists and enables setting extra boundaries. Kernel fuzzing is typically run from outside the kernel, kind of guessing how to invoke the syscalls. Having the kernel asking a userspace fuzzer has led to successful experiments in the past. So overall, stateful fuzzing is feasible.

How about KUnit overlap?

David Gow is in favour of adding functionality that lets userspace pass data into KUnit tests. This could also facilitate making reproducers. However, the stateful approach is not a good fit for KUnit with long strings of operations as unit tests are meant to be run in isolation.

LLM Fuzzing

LLM-Assisted Fuzzing with Syzkaller – by Chuyang Wang & Aleksandr Nogikh

LLM fuzzing graph

The issue when fuzzing with high-level descriptions is that they don’t go deep enough to reach good code coverage. Hand-written seed programs partially solve this but the approach doesn’t scale.

The proposed solution here is to rely on LLM-generated ones instead. While attempting to reach areas never covered by syzbot, an overall 15% increased coverage was reached over a few months using this approach. This uncovered a new issue with the LLM trying to evade syzkaller’s sandboxing environment. The next step is going to integrate with syzbot.

Is AI-driven cheaper?

Probably but not measured in terms of actual costs. One seed program could then expand coverage.

How about fuzzing drivers?

This is tricky because testing drivers often requires access to real hardware. USB is an exception as physical devices are not strictly necessary. This has enabled the team to significantly increase fuzzing coverage and report many bugs over a short period of time.

Still useful to upstream hand-written seed programs?

Yes, these are complementary approaches.

KernelCI in the Cloud

Testing the kernel where the fleet runs: KernelCI in the cloud – by Norbert Manthey & Stanislav Uschakow

Going beyond the historical use cases of KernelCI which originated on embedded platforms, this session is about testing kernels deployed in the Cloud. The system covers x86_64 and Graviton (arm64) VMs in an AWS lab. Additionally, nested KVM guests on particular VM types are also supported. It provides the typical scalability and variety of platforms one would typically expect to find in this environment. Developers may also run the tests themselves using their own AWS account.

Current upstream kernel coverage includes mainline, linux-next and LTS. Runtime coverage is limited to baseline boot testing and basic checks. Performance testing is next on the roadmap.

How is A/B testing done in the AWS Cloud?

The approach is to run both A and B kernels with the same VM definition to reduce dependencies on the environment (hardware of physical host, virtualization stack, firmware, …). Keeping the kernel as the single moving part enforces it to be the only root cause for any difference found in test results. The code for this A/B testing is made available as a GitHub repository under the KernelCI project umbrella.

How does A/B testing on AWS work with live migrations?

Tests are not relying on a file system for now to keep resource dependencies low. Hypervisor updates can cause one VM to stop but tests are run multiple times and in a distributed way so the impact is mitigated.

Are you running KUnit?

KernelCI is running KUnit in other environments, not in AWS. It’s unclear whether doing this would increase existing coverage.

Which kernel trees have the priority?

Testing linux-next and mainline kernels should be the priority. Covering LTS is also useful to verify that fixes get backported successfully as they would typically be applied to the AWS forks too although those are outside the scope of KernelCI.

Are any more details of the test runs available?

In order to give maintainers access to more details about test runs, the AWS lab setup needs to expand its integration with KernelCI in general. Additional features have been requested during LPC such as being able to automatically bisect issues and sending regressions as direct replies to patches via emails threads. Those reports should also be sent to the kernel regressions list.

Testing BoF

Note – The speaker has apologised for not being able to host the last session of the schedule due to personal reasons. It was replaced with an impromptu Testing BoF instead.

One particular point was discussed:

How to address kselftest failing to build and run?

  • Tests may fail to build due to missing dependencies. The kselftest_deps.sh tool can be used to discover those. Integrating it into the kselftest Makefile is being considered in order to report them directly to the user.
  • Test build failures don’t cause the overall kselftest build to fail. This is good, although reporting this in a better way might be helpful.
  • Build and run regressions need better reporting, they could be made more visible using a tag in email subjects.

Wrapping Up

One lesson learnt is that AI-assisted development tends to be more about data analysis while the initial scope of the Testing MC is rather to focus on low-level tools. These may be seen as optimised, primitive functions producing raw data that LLMs can then leverage and potentially use to orchestrate test runs. Having a session about LLM-assisted fuzzing was a good fit though as it showcased how AI can make use of existing testing components in novel ways.

Last but not least, many thanks to all the speakers for reviewing this blog post, the conference committee and all the attendees for making Plumbers such a great experience. It was a pleasure to be a co-organiser of the Testing MC again this year.

See you at LPC 2027 🐧

LPC 2026 Video recordings are available

We are glad to announce that video recordings of the talks are available on our YouTube channel.

You can use the complete conference playlist or look for “video” links in each contribution in the schedule

Free Live Streaming and Matrix Chat available

To watch any of our live streams on youtube, go to the schedule overview and hover over the paperclip to see the ‘Live Stream’ link.  Live streams are only available for A/V assisted tracks (so not non-A/V BoFs).  If you want a two way conversation, you need to have a matrix account, join the Linux Plumbers Space and find the room corresponding to the track you’re watching.

Linux Plumbers Conference 2026 is now SOLD OUT!

It has become a trend for us now. Linux Plumbers Conference 2026 that is to be held in Prague on October 5th through to the 7th is now sold out. But do not fret, you may still be able to attend, but to do so, you will need to add yourself to the wait-list.

Please note that the wait-list is a priority ordered list but adding yourself early still does help. The highest priority is for people with accepted content, followed by people who have submitted content but it was not accepted. Then we look at the rest. Each of these priority levels are processed in a first-come/first-served fashion. Thus, the earlier you add yourself, the higher you are in your priority level. We also take the “latest date you can be registered” seriously. If a spot opens up after the date you put in there and you are the next in line, you will be skipped.

Good luck everyone who wants to attend but still did not buy a ticket. We hope the wait-list will be empty by the time the conference begins.

Microconference Topic CfP is coming to an End

This Friday (August 7th) is the last day to submit a topic to any of the Microconferences. If you have something interesting to discuss at a Microconference, do not hesitate, submit now! It’s also a good idea to reread The Ideal Microconference Topic Session. Notifications for accepted and rejected topics will happen on or before August 21st.

Linux Plumbers Conference Registration is now Open

We’re pleased to announce Linux Plumbers Conference registration is now open. Please see our attend page for details.

All Microconferences have now been accepted!

Hello Linux Plumbers community!

All Microconferences have now been accepted. Please go ahead and take a look at them and if you find something you would like to discuss, please submit a contribution. To do so, go to the Call for Proposals page, select the Submit new abstract button, add your discussion topic and submit. Make sure to select the proper Microconference in the Track field.

It is also a good idea to read the blog about The Ideal Microconference Topic Submission to understand what is expected of a microconference topic.

Changes to Registration Availability for 2026

As most of you are painfully aware, Linux Plumbers Conference registrations can run out very fast (yes, we got lots of complaints last year).  This year, we’re taking a couple of steps to alleviate the issue.  Firstly, we’re expanding the venue size in Prague to match the number of attendees we got in Vienna (800) which will hopefully mean we have more than enough places to keep registration open all the way up to the beginning of the conference.  Secondly, we’re going to have an pre-registration period starting two weeks before general registration opens for anyone who submits content.  The way this will work is that if you submit anything via indico before general  registration opens, you’ll receive a voucher and instructions to participate (this applies to every track and MC submission regardless of the accept/reject or pending state).  The cost will be the same as general registration (US$600) but you’ll be under no obligation to take up the voucher, which will expire when general registration opens.  We’re aligning the acceptance/rejection notices of the tracks we directly control (Refereed and Kernel Summit) to be complete around the time we open pre-registration.  However, for other tracks and MC submissions that aren’t aligned, if you take up an early registration voucher but are subsequently offered a free pass, we’ll refund it (although if your company pays, we’d appreciate not having to since cvent charges us).

As a reminder of free pass distribution: every accepted Track Speaker (Refereed, Kernel Summit, Net, BPF and Toolchain) gets a free pass.  However, Microconferences operate differently and accepted Microconference discussion leads may not receive a free pass (Microconferences have two free passes each and can distribute them arbitrarily to encourage key attendees).

The anticipated date for the opening of pre-registration is Friday 10 July 2026 (with the first day of general registration being 24 July), but remember this may change due to logistical problems with the cvent website (which we don’t control).

Submission time for Linux Plumbers 2026

Submissions for the Refereed Track, Kernel Summit, BoF and Microconferences are now open. Linux Plumbers will be held this year in Prague, Czechia from October 5-7th.

The Refereed presentations are 45 minutes in length (Talk+Q&A) and should focus on a specific aspect of the “plumbing” in a Linux ecosystem. Examples of Linux plumbing include core kernel subsystems, init systems, core libraries, toolchains, windowing systems, management tools, device support, media creation/playback, testing, and so on. The best presentations are not about finished work, but rather problem statements, proposals, or proof-of-concept solutions that require face-to-face discussions and debate.

The Kernel Summit track is divided into sessions of 45 minutes. Sessions may be focused on the discussion of specific Linux kernel topics which can be better resolved in person than over e-mail. The program committee will also consider “information sharing” topics if they are clearly of interest to the wider development community (i.e., advanced training in topics that would be useful to kernel developers). In addition to submitting proposals to the Linux Plumber website, please also send a copy of the proposal as an e-mail to the ksummit@lists.linux.dev mailing list with a subject prefix of [TECH TOPIC].

The Microconferences are 3 and a half hours of technical discussion, broken up into 15 to 30 minute subtopics. The only presentations allowed are those that are needed to bring the audience up to speed and should not last more than half the allotted time for the subtopic. To submit a Microconference, provide a topic, some examples of subtopics to be discussed and a list of key people that should be present to have meaningful discussions. For Microconferences that have been to Linux Plumbers in the past, they should provide a list of accomplishments that were a direct result of the discussions from their previous sessions (with links to patches and such).

Presenters and Microconference subtopic leads should be physically present at the conference. Remote presentations will be allowed strictly on an emergency basis.

The Microconference Track submissions end at 11:59PM UTC on Thursday, April 23, 2026, submissions for subtopics within a Microconference will open shortly after the Microconference has been fully accepted.

The Refereed Track and Kernel Summit submissions end at 11:59PM UTC on Sunday, June 28, 2026.

Please submit your Refereed Track, Kernel Summit, BoF or Microconference topic. We are looking forward to seeing the great content that is submitted that makes Linux Plumbers the best technical conference there is.

Diamond Sponsors


Platinum Sponsors
Gold Sponsors
Silver Sponsors
T-Shirt Sponsor

Attendee Gift Sponsor

Video Recording Sponsor

Conference Services Provided by