KernelCI kci-dev: Closing the Developer Feedback Loop

Arisu Tachibana
  • KernelCI Infra WG member
  • kci-dev creator / maintainer
  • Gentoo Kernel leader
  • CIP testing member
  • Cybertrust Japan Co., Ltd.
Arisu Tachibana – LPC 2025

20 minutes

  • ~10 minutes: quick kci-dev intro & demo-style overview
  • ~10 minutes: roadmap discussion and open Q&A
Arisu Tachibana – LPC 2025

Who this talk is for

  • If you are in this MC you are probably interested in Kernel testing
  • Make it easier with kci-dev
Arisu Tachibana – LPC 2025

Motivation: Why the feedback loop isn’t closed (yet)

  • Massive combination of trees, branches, architectures, and tests
  • KernelCI provides tons of data, but primarily via dashboards and APIs
  • Developers still rely on email reports or ad-hoc scripts to get results
  • Friction remains in getting CI feedback directly into dev workflow
Arisu Tachibana – LPC 2025

KernelCI in one slide

  • Upstream, open testing platform for the Linux kernel
  • Builds, boots, and tests across distributed labs (continuous integration at scale)
  • Volume: thousands of kernel builds and boot tests each week
  • Interaction historically via web UI or raw JSON APIs – not developer-friendly
  • Need: an ergonomic way to query and trigger tests from the terminal
Arisu Tachibana – LPC 2025

What kci-dev lets you do today

  • Query results: Get build/boot summaries, compare test results between revisions, filter by hardware, etc. – all via one CLI
  • Trigger tests: Launch KernelCI jobs for your tree or branch on demand and do simple bisection (no waiting for nightly runs)
  • Fetch logs quickly: Download and inspect boot logs or test output straight from the terminal
  • Integrate easily: Scriptable JSON outputs for CI pipelines, plus shell completions for interactive use
Arisu Tachibana – LPC 2025

Real-World Context

1. Developer Tree
  • Trigger KernelCI jobs for any tree in KernelCI
  • Example: using kci-dev checkout with --giturl, --branch, --tipoftree
2. CIP SLTS kernels
  • Trigger SLTS kernel builds for CIP trees
  • Example:
    kci-dev checkout --giturl https://git.kernel.org/.../cip/linux-cip.git --branch linux-6.1.y-cip --tipoftree
  • Validate long-term maintenance CI status directly from the terminal
Arisu Tachibana – LPC 2025
3. ChromiumOS coverage
  • Use kci-dev maestro coverage to retrieve kernel coverage info
  • Terminal shows function/line coverage and URLs to the reports
  • Graph views generated through --graph-output and opened locally
4. Gentoo Kernel (gentoo-sources)
  • Validate Gentoo patchset kernels using KernelCI
  • Run builds/tests against gentoo-sources trees before publication
  • Compare revisions using kci-dev results compare
Arisu Tachibana – LPC 2025

Triggering builds with job filter

kci-dev checkout \
  --giturl https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git \
  --branch master \
  --tipoftree \
  --job-filter baseline-arm64-foundriesio \
  --watch \
  --test crit
Retrieving latest commit on tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git branch: master
Commit to checkout: d358e5254674b70f34c847715ca509e46eb81e6f
OK
treeid: 98a7e00aae69091a4923f00f2f42508b4c2558c962b797bafa661ceadc8063b1
checkout_nodeid: 693af331fee8383e92b6a864
Watching for jobs on treeid: 98a7e00aae69091a4923f00f2f42508b4c2558c962b797bafa661ceadc8063b1
Watching for test result: crit
job_filter: baseline-arm64-foundriesio, checkout
Running job....
PASS branch checkout - node_id:693af331fee8383e92b6a864 (2025-12-11T16:39:06.510000)
Running job.............................
Arisu Tachibana – LPC 2025

Remaining gaps in developer workflow

  • Maintainer adoption: Not all maintainers use kci-dev yet – some workflows (e.g. patch series on mailing lists) aren’t covered
  • Context switching: Still some need to visit dashboards for certain info (e.g. detailed triage or artifact browsing)
  • Incomplete features: New KernelCI data (like bisect info) need better CLI support or docs
  • Performance concerns: Large result sets can be slow to fetch; no offline caching means repeated queries are inefficient
Arisu Tachibana – LPC 2025

Technical debt & under-the-hood improvements

  • Refactor and modularize: Clean up duplicate logic (e.g. consolidate Maestro API code) to simplify maintenance
  • Improve test coverage: Add more unit and integration tests for kci-dev itself to catch regressions early
  • Robustness: Handle API changes gracefully (ensure kci-dev keeps working as KernelCI evolves)
  • Library-ready structure: Decouple CLI parsing from core logic so kci-dev functions can be imported and reused easily
Arisu Tachibana – LPC 2025

Future features on the roadmap

  • Ad-hoc patch testing: Trigger KernelCI runs on patch series or unmerged code (e.g. from an mbox or local branch)
  • Smarter result diffing: Richer comparisons between test runs (highlight regressions, link to relevant logs, inline dashboard links for context)
  • Local caching of data: Cache recent results locally to speed up repeated queries and allow basic offline result browsing
  • Deeper Git integration: Automatically infer context (current git repo/branch) for commands and potentially integrate with git workflows (e.g., run tests on git push)
Arisu Tachibana – LPC 2025

Team priorities & milestones

  • Make kci-dev maintainer and developers friendly: Ensure kernel tree maintainers can seamlessly use it for their workflows (multiple branches, stable releases, etc.)
  • Enable library usage: Provide a supported Python API so kci-dev can be imported as a module in other tools or CI systems
  • Stability towards v1.0: Focus on fixing bugs and polishing UX for a stable 1.0 release (address known issues, consistent outputs)
  • Stay in sync with KernelCI: Align with KernelCI’s new pipeline and features, so kci-dev remains fully compatible as the backend evolves
Arisu Tachibana – LPC 2025

Questions for Kernel Developers & Maintainers

  • What slows you down today?
  • Do you need CI results earlier in your workflow? How early?
  • What data from KernelCI do you actually look at during development?
  • Would patch-series testing (mbox / git range) help your workflow?
  • How often do you compare test results between revisions?
  • Do you want CI to auto-run on your tree, or only on-demand? Tree registration on KernelCI or local patches? self-service maestro deploy method?
  • What’s missing in kci-dev to make you use it daily?
Arisu Tachibana – LPC 2025

Getting started after this talk

  • Give kci-dev a try on your own kernel tree this week (pip install kci-dev and go!)
  • Share your feedback: Identify your top pain points in kernel testing and let us know if kci-dev doesn’t solve them yet
  • Join the community: Come to KernelCI community meetings or chat – help us prioritize what matters to you https://discord.gg/KWbrbWEyqb
  • Contribute: Whether it’s a bug report, a documentation fix, or a code patch, all contributions are welcome and valued
Arisu Tachibana – LPC 2025

Thank You!

Arisu Tachibana – LPC 2025

briefly outline recap, gaps, roadmap, and collaboration.

call out maintainers/developers/CI engineers and relate to their pain points.

explain that KernelCI data is rich but feedback into dev workflow is still clunky.

give a quick KernelCI overview and why a CLI like kci-dev is needed.

walk through a concrete example of querying, triggering, and inspecting logs.

highlight adoption gaps, context switching, missing features, and performance pain.

stress refactoring, better tests, robustness, and preparing for library use.

present patch testing, smarter diffing, caching, and git integration as key future ideas.

summarize priorities around maintainers, library API, 1.0 stability, and KernelCI sync. For example few days ago I had to fix kci-dev compare because dashboard api changed and was requiring boot_origin

You can start improving your workflow right now by using kci-dev, and you can help improve kci-dev itself by providing feedbacks

thank the audience, show contact links, and open for Q&A.