workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Guillaume Tucker <gtucker@gtucker.io>
To: Nicolas Dufresne <nicolas.dufresne@collabora.com>,
	Nikolai Kondrashov <spbnick@gmail.com>,
	Helen Koike <helen.koike@collabora.com>,
	linuxtv-ci@linuxtv.org, dave.pigott@collabora.com,
	mripard@kernel.org, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-kselftest@vger.kernel.org,
	gustavo.padovan@collabora.com, pawiecz@collabora.com,
	tales.aparecida@gmail.com, workflows@vger.kernel.org,
	kernelci@lists.linux.dev, skhan@linuxfoundation.org,
	kunit-dev@googlegroups.com, nfraprado@collabora.com,
	davidgow@google.com, cocci@inria.fr, Julia.Lawall@inria.fr,
	laura.nao@collabora.com, ricardo.canuelo@collabora.com,
	kernel@collabora.com, torvalds@linuxfoundation.org,
	gregkh@linuxfoundation.org
Subject: Re: [PATCH 0/3] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing
Date: Fri, 1 Mar 2024 22:56:30 +0100	[thread overview]
Message-ID: <3d7e66bc-967e-45ec-a9e9-12dafd3b3e68@gtucker.io> (raw)
In-Reply-To: <51fa8932e57010620e9a9e16a1979f4883e95a7d.camel@collabora.com>

On 29/02/2024 17:28, Nicolas Dufresne wrote:
> Hi,
> 
> Le jeudi 29 février 2024 à 16:16 +0200, Nikolai Kondrashov a écrit :
>> On 2/29/24 2:20 PM, Guillaume Tucker wrote:
>>> Hello,
>>>
>>> On 28/02/2024 23:55, Helen Koike wrote:
>>>> Dear Kernel Community,
>>>>
>>>> This patch introduces a `.gitlab-ci` file along with a `ci/` folder, defining a
>>>> basic test pipeline triggered by code pushes to a GitLab-CI instance. This
>>>> initial version includes static checks (checkpatch and smatch for now) and build
>>>> tests across various architectures and configurations. It leverages an
>>>> integrated cache for efficient build times and introduces a flexible 'scenarios'
>>>> mechanism for subsystem-specific extensions.
>>>
>>> This sounds like a nice starting point to me as an additional way
>>> to run tests upstream.  I have one particular question as I see a
>>> pattern through the rest of the email, please see below.
>>>
>>> [...]
>>>
>>>> 4. **Collaborative Testing Environment:** The kernel community is already
>>>> engaged in numerous testing efforts, including various GitLab-CI pipelines such
>>>> as DRM-CI, which I maintain, along with other solutions like KernelCI and
>>>> BPF-CI. This proposal is designed to further stimulate contributions to the
>>>> evolving testing landscape. Our goal is to establish a comprehensive suite of
>>>> common tools and files.
>>>
>>> [...]
>>>
>>>> **Leveraging External Test Labs:**
>>>> We can extend our testing to external labs, similar to what DRM-CI currently
>>>> does. This includes:
>>>> - Lava labs
>>>> - Bare metal labs
>>>> - Using KernelCI-provided labs
>>>>
>>>> **Other integrations**
>>>> - Submit results to KCIDB
>>>
>>> [...]
>>>
>>>> **Join Our Slack Channel:**
>>>> We have a Slack channel, #gitlab-ci, on the KernelCI Slack instance https://kernelci.slack.com/ .
>>>> Feel free to join and contribute to the conversation. The KernelCI team has
>>>> weekly calls where we also discuss the GitLab-CI pipeline.
>>>>
>>>> **Acknowledgments:**
>>>> A special thanks to Nikolai Kondrashov, Tales da Aparecida - both from Red Hat -
>>>> and KernelCI community for their valuable feedback and support in this proposal.
>>>
>>> Where does this fit on the KernelCI roadmap?
>>>
>>> I see it mentioned a few times but it's not entirely clear
>>> whether this initiative is an independent one or in some way
>>> linked to KernelCI.  Say, are you planning to use the kci tool,
>>> new API, compiler toolchains, user-space and Docker images etc?
>>> Or, are KernelCI plans evolving to follow this move?
>>
>> I would say this is an important part of KernelCI the project, considering its 
>> aim to improve testing and CI in the kernel. It's not a part of KernelCI the 
>> service as it is right now, although I would say it would be good to have 
>> ability to submit KernelCI jobs from GitLab CI and pull results in the same 
>> pipeline, as we discussed earlier.

Right, I think this needs a bit of disambiguation.  The legacy
KernelCI system from the Linaro days several years ago is really
a service on its own like the many other CIs out there.  However,
the new KernelCI API and related tooling (kci command line, new
web dashboard, modular runtime design etc.) is not that.  It's
about addressing all the community requirements and that includes
being able to run a same test manually in a shell, or in a VM, or
automatically from GitLab CI or using a main generic pipeline
hosted by KernelCI itself.  With this approach, there's no
distinction between "the project" and "the service", and as we
discussed before there shouldn't even be a distinction with
KCIDB.  Just KernelCI.

However I don't really see this happening, unless I'm missing a
part of the story or some upcoming announcement with an updated
roadmap.  For some reason the old and established paradigm seems
unshakeable.  The new KernelCI implementation is starting to look
just like a refresh of the old one with newer components - which
is a huge missed opportunity to really change things IMHO.

This may sound like a bit of a tangent, facilitating GitLab CI
for the upstream kernel is of course significant progress in any
case - no question about that.  My comment is more about why it's
being driven hand-in-hand with KernelCI in what seems like a
diverging direction from KernelCI's announced plans.  Why push
for a GitLab-centered orchestration when there's a more universal
solution being proposed by the project?  I would find it easier
to understand - and I sense I'm not the only one here reading the
thread - if KernelCI wasn't mentioned that many times in the
cover letter and if the scripts didn't have KCI_* in so many
places, basically if this was clearly an independent initiative
such as KUnit, 0-day or regzbot.

> I'd like to add that both CI have a different purpose in the Linux project. This
> CI work is a pre-merge verification. Everyone needs to run checkpatch and
> smatch, this is automating it (and will catch those that forgot or ran it
> incorrectly). But it can go further by effectively testing specific patches on
> real hardware (with pretty narrow filters). It will help catch submission issues
> earlier, and reduce kernelCI regression rate. As a side effect, kernelCI infra
> will endup catching the "integration" issues, which are the issue as a result of
> simultenous changes in different trees. They are also often more complex and
> benefit from the bisection capabilities.
> 
> kernelCI tests are also a lot more intensive, they usually covers everything,
> but they bundle multiple changes per run. The pre-merge tests will be reduced to
> what seems meaningful for the changes. Its important to understand that pre-
> merge CI have a time cost, and we need to make sure CI time does not exceed the
> merge window period.

You're referring to the legacy KernelCI, to illustrate the point
I made earlier.  The plan with the new implementation was to be
able to do pre-merge testing as well as many other things,
basically to provide a platform able to cope with the diversity
of workflows across the kernel subsystems and the complexity of
the "system under test" itself.


Well, let's see how this goes and it does look quite promising.
Evolution is always a chaotic process, especially in a complex
project like this.  I'm not expecting to get all the answers to
the questions I have but it seemed important to raise this point
and seek a bit more clarity around KernelCI.

Guillaume


  reply	other threads:[~2024-03-01 21:56 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-28 22:55 Helen Koike
2024-02-28 22:55 ` [PATCH 1/3] " Helen Koike
2024-02-29  2:44   ` Bird, Tim
2024-02-29 16:15     ` Nicolas Dufresne
2024-02-29  9:02   ` Maxime Ripard
2024-02-29  9:23     ` Nikolai Kondrashov
2024-02-29  9:56       ` Maxime Ripard
2024-02-29 10:05         ` Laurent Pinchart
2024-02-29 20:21       ` Linus Torvalds
2024-03-01 10:27         ` Nikolai Kondrashov
2024-03-01 14:07           ` Mark Brown
2024-03-01 14:21             ` Nikolai Kondrashov
2024-03-01 20:10           ` Linus Torvalds
2024-03-04 21:45             ` Helen Koike
2024-03-07 22:43               ` Leonardo Brás
2024-05-23 13:21               ` Daniel Vetter
2024-03-02 22:10         ` Guenter Roeck
2024-03-03  0:01           ` Randy Dunlap
2024-03-03  9:30             ` Geert Uytterhoeven
2024-03-04  8:12               ` Geert Uytterhoeven
2024-03-04  9:15                 ` Maxime Ripard
2024-03-04 10:07                   ` Geert Uytterhoeven
2024-03-04 10:19                     ` Maxime Ripard
2024-03-04 11:12                       ` Geert Uytterhoeven
2024-03-04 11:28                         ` Maxime Ripard
2024-03-04  9:24           ` Maxime Ripard
2024-03-04 15:46             ` Guenter Roeck
2024-03-04 16:05               ` Maxime Ripard
2024-03-04 16:17                 ` Guenter Roeck
2024-03-04 17:09                   ` Maxime Ripard
2024-03-04 17:22                     ` Guenter Roeck
2024-03-04 19:44                     ` Guenter Roeck
2024-03-05 11:54         ` Michel Dänzer
2024-03-07 18:05     ` Nicolas Dufresne
2024-03-11  8:40       ` Maxime Ripard
2024-02-28 22:55 ` [PATCH 2/3] kci-gitlab: Add documentation Helen Koike
2024-02-28 22:55 ` [PATCH 3/3] kci-gitlab: docs: Add images Helen Koike
2024-02-28 23:07 ` [PATCH 0/3] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing Laurent Pinchart
2024-02-29  8:43   ` Maxime Ripard
2024-02-29  9:26   ` Nikolai Kondrashov
2024-02-29  9:34     ` Laurent Pinchart
2024-02-29 11:10       ` Nikolai Kondrashov
2024-02-29 11:19         ` Laurent Pinchart
2024-02-29 11:22           ` Nikolai Kondrashov
2024-02-29 11:41           ` Mark Brown
2024-02-29 11:53             ` Guillaume Tucker
2024-02-29 12:20               ` Laurent Pinchart
2024-02-29 12:25                 ` Laurent Pinchart
2024-02-29 14:12                   ` Nikolai Kondrashov
2024-02-29  9:39   ` Sakari Ailus
2024-02-29 11:09     ` Mark Brown
2024-02-29 12:20 ` Guillaume Tucker
2024-02-29 14:16   ` Nikolai Kondrashov
2024-02-29 16:28     ` Nicolas Dufresne
2024-03-01 21:56       ` Guillaume Tucker [this message]
2024-03-02 21:48         ` Gustavo Padovan
2024-03-04  8:33           ` Guillaume Tucker
2024-05-21  9:28 ` Jarkko Sakkinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d7e66bc-967e-45ec-a9e9-12dafd3b3e68@gtucker.io \
    --to=gtucker@gtucker.io \
    --cc=Julia.Lawall@inria.fr \
    --cc=cocci@inria.fr \
    --cc=dave.pigott@collabora.com \
    --cc=davidgow@google.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gustavo.padovan@collabora.com \
    --cc=helen.koike@collabora.com \
    --cc=kernel@collabora.com \
    --cc=kernelci@lists.linux.dev \
    --cc=kunit-dev@googlegroups.com \
    --cc=laura.nao@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linuxtv-ci@linuxtv.org \
    --cc=mripard@kernel.org \
    --cc=nfraprado@collabora.com \
    --cc=nicolas.dufresne@collabora.com \
    --cc=pawiecz@collabora.com \
    --cc=ricardo.canuelo@collabora.com \
    --cc=skhan@linuxfoundation.org \
    --cc=spbnick@gmail.com \
    --cc=tales.aparecida@gmail.com \
    --cc=torvalds@linuxfoundation.org \
    --cc=workflows@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox