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

Multinode #152

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Multinode #152

wants to merge 2 commits into from

Conversation

touilkhouloud
Copy link

Support lava multinode jobs.

Khouloud Touil added 2 commits August 2, 2019 16:26
As lava supports multinode jobs, we are adding this patch to parse lava
multinode jobs and stores its data in the data base.
The multinode data (key/value) are stored into the test_group collection.

Signed-off-by: Khouloud Touil <ktouil@baylibre.com>
When it's a multinode job, there is two callbacks with the same metadata
so one will overwrite the other if they have the same names, so we are
adding this patch to check if it's a multinode job or not and decide
what name should be given.

Signed-off-by: Khouloud Touil <ktouil@baylibre.com>
@@ -90,6 +90,7 @@ def __init__(self, name, lab_name):
self.time = -1
self.vcs_commit = None
self.warnings = 0
self.lava_multinode = {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test groups are LAVA agnostic, so leaking LAVA multinode things here is not going to work.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't get what you mean, I tested with a multinode job and a none multinode job and there is no error.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean that this data model should not assume anything about LAVA. So if you need to add some extra data to each test group or test case, you can do that but don't make it follow the LAVA multinode design. It needs to be something that works on its own in a self-contained way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So what we need is an abstraction that's not LAVA-centric to describe a group of jobs that are all connected/related.

It appears that the LAVA multinode data has a key called target_group which is a unique ID (generated by LAVA) that is shared across all sub-jobs of a multi-node job.

For starters, this would be the minimum thing needed to know that a group of (sub)jobs were all part of the same main (multinode) job.

@gctucker
Copy link
Contributor

gctucker commented Aug 5, 2019

@touilkhouloud Can you please explain how the multinode LAVA data is meant to be used in KernelCI?

@touilkhouloud
Copy link
Author

touilkhouloud commented Aug 5, 2019

The idea came when we noticed that a multinode job has 2 callbacks that shares the same metadata and the json/logs files will have the same name so one will overwrite the otherone so we need some data that differs between the 2 callbacks which is in our case the "role" data for ex one is the host and the other is the target, with this data, @khilman suggested that we may store other multinode data as the group size and others.

@gctucker
Copy link
Contributor

gctucker commented Aug 5, 2019

Is there any plan to get multinode job results sent to kernelci.org?

I would be interested to see what kind of data would be added to the test results as that is what would be driving the changes in the database models.

@touilkhouloud
Copy link
Author

touilkhouloud commented Aug 5, 2019

We still working on creating templates for multinode job, the use of a multinode job is so big and it differs, in our case we are using a host and a target but you can use more then 2 divices per job and it will create callbacks as many as the number of the devices.
This is a link for the results, http://kernelci.dev.baylibre.com:8080/test/board/sun8i-h2-plus-orangepi-zero/job/stable/kernel/v5.0.21/ the multinod is the test plan and server is the host tests (not exactly tests) as for the client is the target tests
it lacks the attachement data not in data base but you may find it in the data base 8082
I don't know if this is what you asked for but it may help you I guess

@khilman
Copy link
Contributor

khilman commented Aug 5, 2019

Is there any plan to get multinode job results sent to kernelci.org?

@gctucker yes, the goal is to contribute test results that require multinode to kernelCI. For starters, the tests we're working on are power measurements during boot and also during specific tests.

I would be interested to see what kind of data would be added to the test results as that is what would be driving the changes in the database models.

The kind of data needed in the model is primarily a way to find all the (sub)jobs that were part of a single multinode job. That could simply be a unique ID (LAVA seems to provide this already in the callback data for multi-node jobs as the target_group key) In the case of power measurement, that means the job that controlled the measurement equipment and the job on the DUT that was being measured.

In addition to some unique ID for all related jobs, I think we'll also need some arbitrary string for human-readable display of the related jobs. In LAVA multinode terms, we would use the "role" name for that (e.g. "client" or "server" in a network test) or ("measurement host" and "DUT") for a power measurement test.

For starters, those are the minimum requirements that would be needed in the data model.

@gctucker gctucker requested a review from a team September 24, 2019 09:17
@gctucker gctucker added this to In Progress in KernelCI project board via automation Sep 24, 2019
@gctucker gctucker added the staging-skip Don't test automatically on staging.kernelci.org label Sep 24, 2019
@gctucker gctucker moved this from In Progress to Backlog in KernelCI project board Jan 29, 2020
Base automatically changed from master to main January 12, 2021 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
staging-skip Don't test automatically on staging.kernelci.org
Projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants