Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config/runtime: Add support for parameter "platforms" #2545

Closed
wants to merge 1 commit into from

Conversation

nuclearcat
Copy link
Member

We might have limited set of platforms available in certain lab. Lab owners should have option to define such list.
As per suggestion: kernelci/kernelci-project#350 (comment)

@nuclearcat nuclearcat marked this pull request as draft May 7, 2024 07:05
@a-wai
Copy link
Contributor

a-wai commented May 7, 2024

What would be the point of this, as in, what problem would it actually solve ? Scheduler entries already link to a runtime instance and list the platforms on which jobs should run.

I'm not sure adding platforms to runtime definitions would add anything useful here.

@nuclearcat nuclearcat force-pushed the add-platforms-option branch 2 times, most recently from e86ca17 to abe76cd Compare May 7, 2024 07:49
@nuclearcat
Copy link
Member Author

We might have for example raspberry pi device defined as platform, available in baylibre and collabora, as many other common SBC, and we have job that will execute for example generic arm64 build on number of platforms and labs:

  - job: baseline-arm64
    event:
      channel: node
      name: kbuild-gcc-10-arm64
      result: pass
    runtime:
      type: lava
      name: lava-collabora
    platforms:
      - bcm2711-rpi-4-b
      - meson-g12b-a311d-khadas-vim3
      - rk3399-gru-kevin
      - rk3399-rock-pi-4b
      - rk3588-rock-5b
      - sun50i-h6-pine-h64

(we nee to add support of list of runtime names btw)
But for example baylibre don't want to allow KernelCI to run jobs on their Raspberry PI, so with this patch they can define list of allowed platforms only.

@nuclearcat
Copy link
Member Author

Also this is easy and safe place (less error-prone) where lab owners can specify mandatory "permit" list, so nobody by mistake put jobs on devices that kernelci not supposed to run.

@a-wai
Copy link
Contributor

a-wai commented May 7, 2024

TBH unless we add the ability to specify a runtime list in scheduler entries (which in itself sounds like a good idea) I doubt this will help: this adds yet another config possibility and might actually confuse new users, rather than help them.

Another possible use for this would be to provide a way to run a job on all platforms present in a given runtime/lab, but this would only work if a lab contains devices of only one architecture (as jobs depend on kbuild nodes, each providing a kernel for a single architecture).

My conclusion is that in the current state of things, adding one more parameter will only introduce more complexity and not solve any problem we can't already address with the way scheduler entries work.

If we were to change the scheduling logic (allow list of runtimes, run on all platforms of a given runtime if no platforms list, etc...) my opinion could change, but I think such changes should be discussed as a separate issue first.

We might have limited set of platforms available in certain lab.
Lab owners should have option to define such list.
As per suggestion: kernelci/kernelci-project#350 (comment)

Signed-off-by: Denys Fedoryshchenko <[email protected]>
@nuclearcat nuclearcat force-pushed the add-platforms-option branch from abe76cd to 431e1c1 Compare May 7, 2024 13:50
@nuclearcat
Copy link
Member Author

As per feedback closing for now

@nuclearcat nuclearcat closed this Jun 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants