Gentoo GKernelCI, a Gentoo kernel subproject, participated at Linux Conf AU 2021
Hello everyone,
I'm Alice, the creator and leader of EMLinuxCI at MIRACLE LINUX powered by Cybertrust Japan Co., Ltd.
MIRACLE LINUX is a brand that continuously contributes to open source since its inception.
EMLinuxCI is a Continuous Integration (CI) system used for automatically building and testing EMLinux (a long term support embedded distribution).
I’m also an official Gentoo Developer and Gentoo board member.
Gentoo GKernelCI, a Gentoo kernel subproject, participated at Linux Conf AU on January 23-25 with a presentation regarding updates on GKernelCI.
In the following blog I will write a report about the Linux Conf AU event.
What is Linux.conf.au
Linux.conf.au is the largest linux and open source conference in Asia-Pacific region.
Is regarded as a deeply technical event with presentations from experts on a wide array of subjects related to open source.
This year linux.conf.au was held online. My presentation about GKernelCI v2 and KCIDB got accepted in the Kernel Miniconf track.
The Kernel Miniconf track was Jan. 23rd. saturday from 7:00~15:00 JST (GMT+9).
We had 7 sessions.
My session was at 14:10 JST (GMT+9) . My talk was an update concerning GKernelCI.
About the presentation GKernelCI v2 and KCIDB.
The most big part of my presentation was the use of KCIDB tool (https://github.com/kernelci/kcidb) for sending GKernelCI data results to the KCIDB database currently in the production environment for the KernelCI project.
KernelCI was started by Kevin Hilman, Tyler Baker, Alan Bennett, Milo Casagrande. KernelCI's main goal is to collect results and send them to the kernel upstream.
KCIDB is a tool that allows different CI systems to send results in a “standardized” way to the KCIDB database part of KernelCI.
This is useful for keeping upstream kernel developers informed about problems on various Kernel versions.
[example of JSON data sended using KCIDB]
During my presentation I also explained about GKernelCI.
GKernelCI is a project that I made for auto building and testing gentoo sources.
GKernelCI project is almost the same old as the KernelCI project born around 2016/2017.
I started GKernelCI because the Gentoo kernel sources release process had some repetitive parts that could be easily automated. Both for saving time on testing but also for improving the release process stability and security.
GKernelCI was also one of the first CI to send mail to upstream for checking that the released kernel was working properly.
We did this in January 2018 because of the meltdown spectre problem.
Currently GKernelCI is part of the KernelCI bigger picture sending data to the KCIDB database.
GKernelCI future
GKernelCI will continue its progress on making Gentoo kernel sources automated stabilization and simple to do.
For reaching a complete automation of the Gentoo kernel stabilization, GKernelCI is simplifying and standardizing the stabilization process. Making the stabilization process more secure by adding better and more testing than the current stabilization process. For example instead of just booting with different kernel configurations we are also doing kselftest testing.
We will also test on multiple virtualized architectures and toolchains at once.
KernelCI is continuously testing Kernel upstream, doing so improving stability and security.
In the following picture we can see that not only GKernelCI is contributing to the KernelCI testing data, using KCIDB, but also CKI (Red Hat), Syzbot (Google), and ARM. Tuxsuite (linaro) and Yocto are also working on implementing KCIDB on their own workflow.
※ GKernelCI logo as been added in the KernelCI bigger picture design. The logo of GKernelCI has been made by Haruka Kawahara. Haruka Kawahara is also an employee of Cybertrust Japan Co., Ltd.
If you read this blog and are interested in GkernelCI, KernelCI or just for knowing more, please use the following links:
-
GKernelCI: https://github.com/GKernelCI
-
GKernelCI main repository: https://github.com/GKernelCI/Gdocker
-
GKernelCI dashboard: https://kernel1.amd64.dev.gentoo.org/
-
KernelCI: https://github.com/KernelCI
-
KCIDB dashboard: https://staging.kernelci.org:3000/
-
Linux Conf AU: https://linux.conf.au/
Have fun with GKernelCI and KernelCI!
GkernelCI and KernelCI are always looking for new contributors, like you!
Presentation:
https://lca-kernel.ozlabs.org/2021-Ferrazzi-GKernelCIv2-new-features-and-KernelCI-compatibility.pdf
video:
https://www.youtube.com/watch?v=LVZu9K6RWII
example of JSON data sended using KCIDB:
{
"version": {
"major": 3,
"minor": 0
},
"revisions": [
{
"id": "f40ddce88593482919761f74910f42f4b84c004b+ae4de022037bb85f0c32fab60b559798604fd72ef89b8cd7bc88f988bd16bbfe",
"origin": "gkernelci",
"discovery_time": "2021-03-04T14:34:31.219218324+00:00",
"git_repository_url": "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git",
"git_repository_branch": "master",
"git_commit_hash": "f40ddce88593482919761f74910f42f4b84c004b",
"contacts": [
"Mike Pagano <mpagano@gentoo.org>",
"Alice Ferrazzi <alicef@gentoo.org>"
],
"patch_mboxes": [
{
"name": "1000_linux-5.11.1.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/1000_linux-5.11.1.patch"
},
{
"name": "1001_linux-5.11.2.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/1001_linux-5.11.2.patch"
},
{
"name": "1002_linux-5.11.3.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/1002_linux-5.11.3.patch"
},
{
"name": "1500_XATTR_USER_PREFIX.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/1500_XATTR_USER_PREFIX.patch"
},
{
"name": "2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch"
},
{
"name": "2900_tmp513-Fix-build-issue-by-selecting-CONFIG_REG.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/2900_tmp513-Fix-build-issue-by-selecting-CONFIG_REG.patch"
},
{
"name": "2920_sign-file-patch-for-libressl.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/2920_sign-file-patch-for-libressl.patch"
},
{
"name": "4567_distro-Gentoo-Kconfig.patch",
"url": "https://raw.githubusercontent.com/GKernelCI/linux-patches/5.11/4567_distro-Gentoo-Kconfig.patch"
}
],
"valid": true
}
],
"builds": [
{
"id": "gkernelci:5.11:amd64_5",
"origin": "gkernelci",
"start_time": "2021-03-04T14:34:31.219218324+00:00",
"revision_id": "f40ddce88593482919761f74910f42f4b84c004b+ae4de022037bb85f0c32fab60b559798604fd72ef89b8cd7bc88f988bd16bbfe",
"architecture": "amd64",
"valid": true
}
]
}