-
Notifications
You must be signed in to change notification settings - Fork 11
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
workflows: Add LAVA tests workflow #48
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
The segfault is likely a driver fault, however it's possibly linked to bad input being issued from cros-codecs. Hard to say without a backtrace and other ways to reproduce. If this is run against a debug version of the driver with tracing enabled we can probably identify the cause. For https://github.com/intel/media-driver they have the MOS_TRACE macro and friends that can be enabled with a compile flag. |
@dwlsalmeida I used the |
@cazou without a stacktrace it's hard to tell :/ I know very little about CI, but can't you ask it to run ccdec with valgrind or something? If I can get any insight into what part of the code is causing this I can fix it. Also, it's very weird that absolutely nothing in VP9 is passing, definitely something is up. |
Summarizing what I know about the segfaults, taking The source stride and the destination stride do not match for Tiger Lake:
This causes a segfault here in the driver, when copying the V plane.
Running this on my Ice Lake machine, I get I have no idea why this returns 1920 for the V plane on Tiger Lake for presumably i420 content:
My hunch is that, somehow, this line gets executed:
Instead of
In
Notably, we stopped indicating the fourcc when creating the surfaces some time ago:
It may very well be that the bug is in between the surface's internal format and the @cazou can you confirm the VA-API version? ( |
Thanks for this, this is looking good! I think one feature we will need is the ability to keep track of which tests are expected to fail, since we cannot reach 100% due to bugs in drivers and sometimes cros-codecs itself. So the CI job should be successful as long as no test regressed. |
@dwlsalmeida To be fully correct, this happens on debian on both hp-x360-12b-ca0500na-n4000-octopus and acer-cp514-2h-1160g7-volteer device types on lava.
Gentoo:
Debian:
I edited the debian info, it was with one of my debug version, now it is the one from the debian package CPU is 11th gen Intel i7-1185G7 |
It looks like an issue with the debian package. I tried on bullseye (oldstable), bookworm (stable) and trixe (unstable) and all have the same issue. But when I rebuild the driver from the git repo at the same version, it works correctly (no segfault). |
I confirm that this is an issue with the way the package is built: Debian separates non-free libs from the other ones, so the A simple fix is to install With that package, the segfault issue is not a blocker anymore to continue implementing the CI. |
FWIW, on Arch, we all get the "non-free" stuff by default -> https://gitlab.archlinux.org/archlinux/packaging/packages/intel-media-driver/-/blob/main/PKGBUILD |
708ce03
to
b42f0f9
Compare
f71aa87
to
d272cbd
Compare
@cazou, before we can merge this we will need you to fix the CLA situation - could you check https://github.com/chromeos/cros-codecs/pull/48/checks?check_run_id=16226713377 ? |
fcbff5d
to
759732e
Compare
@Gnurou @dwlsalmeida The failures are due to the missing action secrets on this project. We need to add, as secrets:
|
5918412
to
d8db7cb
Compare
Ok, so can we prevent the LAVA tests from being run in the Github actions for now? We will enable them with the CL that adds the necessary tokens. Besides the submit jobs seem to be failing for unrelated reasons:
|
They can, yes. But that's basically all there is in this PR. Can't we just merge this when the secrets are set ?
Ha yes, I'll fix it. Upstream uses tags instead of a branch, so the whole version number is needed. |
Hi @cazou,
I'm fine with that but have to admit I am a bit oblivious as to what secrets we need to obtain, how, and where to set them (as they are "secrets" I suppose we shall not push them into this repository). Could you enlighten me a bit about that? |
Hi @Gnurou ! We need to set those secrets: I am currently in the process of getting a token from our LAVA people and we'll be able to give that to you for this repo. The GH_BEARER secret must be a token that you generate for this repository, with the read permission. It will be used by LAVA to recover the built ccdec artifact to be tested. They can be set in Settings > Secrets and Variables > Actions. There is a And a variable |
@cazou Can you also make the |
d8db7cb
to
c4468c8
Compare
Build ccdec and run tests with fluster on LAVA. The workflow waits for the results from LAVA and shows a report with each test status.
c4468c8
to
7b3962d
Compare
Updated the commit as kernelci/kernelci-core#2051 was merged. It now uses the kernelci amd64 bullseye-gst-fluster rootfs |
Attempting a merge now that the secrets are in - fingers crossed... |
cros-codecs CI workflow:
The
ci/config.yaml
contains the test configurations. For each architecture (amd/intel), it specifies:vp8
,h.264
, ...)The github action workflow uses
ci/config.yaml
to get the lavadevice_type
to run the test on.The test on lava is run from
ci/test-cases/run_tests.py
and usesci/config.yaml
to generate the fluster command to run.About the lava test job