[PATCH v5] drm/ci: add tests on vkms

Daniel Vetter daniel at ffwll.ch
Mon Jun 17 14:06:01 UTC 2024


On Tue, Jun 11, 2024 at 02:40:37PM +0530, Vignesh Raman wrote:
> Add job that runs igt on top of vkms.
> 
> Acked-by: Maíra Canal <mcanal at igalia.com>
> Acked-by: Helen Koike <helen.koike at collabora.com>
> Signed-off-by: Vignesh Raman <vignesh.raman at collabora.com>
> Acked-by: Jessica Zhang <quic_jesszhan at quicinc.com>
> Tested-by: Jessica Zhang <quic_jesszhan at quicinc.com>
> Acked-by: Maxime Ripard <mripard at kernel.org>
> Signed-off-by: Helen Koike <helen.koike at collabora.com>

Do we have some effort going on to fix the testcases (or vkms)? With pure
software testcases there really shouldn't ever be any flakes, and if we
can use vkms to improve our testcase quality, then I think the entire
gitlab CI project was already more than worth it ...

Cheers, Sima

> ---
> 
> v2:
> - do not mv modules to /lib/modules in the job definition, leave it to
>   crosvm-runner.sh
> 
> v3:
> - Enable CONFIG_DRM_VKMS in x86_64.config and update xfails
> 
> v4:
> - Build vkms as module and test with latest IGT. 
>   This patch depends on https://lore.kernel.org/dri-devel/20240130150340.687871-1-vignesh.raman@collabora.com/
> 
> v5:
> - Test with the updated IGT and update xfails
> 
> ---
>  MAINTAINERS                                   |  1 +
>  drivers/gpu/drm/ci/build.sh                   |  1 -
>  drivers/gpu/drm/ci/gitlab-ci.yml              |  1 +
>  drivers/gpu/drm/ci/igt_runner.sh              |  6 +-
>  drivers/gpu/drm/ci/image-tags.yml             |  2 +-
>  drivers/gpu/drm/ci/test.yml                   | 24 ++++++-
>  drivers/gpu/drm/ci/x86_64.config              |  1 +
>  drivers/gpu/drm/ci/xfails/vkms-none-fails.txt | 57 ++++++++++++++++
>  .../gpu/drm/ci/xfails/vkms-none-flakes.txt    | 15 +++++
>  drivers/gpu/drm/ci/xfails/vkms-none-skips.txt | 67 +++++++++++++++++++
>  10 files changed, 169 insertions(+), 6 deletions(-)
>  create mode 100644 drivers/gpu/drm/ci/xfails/vkms-none-fails.txt
>  create mode 100644 drivers/gpu/drm/ci/xfails/vkms-none-flakes.txt
>  create mode 100644 drivers/gpu/drm/ci/xfails/vkms-none-skips.txt
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 8aee861d18f9..94065f5028cf 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -7036,6 +7036,7 @@ L:	dri-devel at lists.freedesktop.org
>  S:	Maintained
>  T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
>  F:	Documentation/gpu/vkms.rst
> +F:	drivers/gpu/drm/ci/xfails/vkms*
>  F:	drivers/gpu/drm/vkms/
>  
>  DRM DRIVER FOR VIRTUALBOX VIRTUAL GPU
> diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh
> index a67871fdcd3f..e938074ac8e7 100644
> --- a/drivers/gpu/drm/ci/build.sh
> +++ b/drivers/gpu/drm/ci/build.sh
> @@ -157,7 +157,6 @@ fi
>  
>  mkdir -p artifacts/install/lib
>  mv install/* artifacts/install/.
> -rm -rf artifacts/install/modules
>  ln -s common artifacts/install/ci-common
>  cp .config artifacts/${CI_JOB_NAME}_config
>  
> diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml
> index 1b29c3b6406b..80fb0f57ae46 100644
> --- a/drivers/gpu/drm/ci/gitlab-ci.yml
> +++ b/drivers/gpu/drm/ci/gitlab-ci.yml
> @@ -123,6 +123,7 @@ stages:
>    - msm
>    - rockchip
>    - virtio-gpu
> +  - software-driver
>  
>  # YAML anchors for rule conditions
>  # --------------------------------
> diff --git a/drivers/gpu/drm/ci/igt_runner.sh b/drivers/gpu/drm/ci/igt_runner.sh
> index d49ad434b580..79f41d7da772 100755
> --- a/drivers/gpu/drm/ci/igt_runner.sh
> +++ b/drivers/gpu/drm/ci/igt_runner.sh
> @@ -30,10 +30,10 @@ case "$DRIVER_NAME" in
>              export IGT_FORCE_DRIVER="panfrost"
>          fi
>          ;;
> -    amdgpu)
> +    amdgpu|vkms)
>          # Cannot use HWCI_KERNEL_MODULES as at that point we don't have the module in /lib
> -        mv /install/modules/lib/modules/* /lib/modules/.
> -        modprobe amdgpu
> +        mv /install/modules/lib/modules/* /lib/modules/. || true
> +        modprobe --first-time $DRIVER_NAME
>          ;;
>  esac
>  
> diff --git a/drivers/gpu/drm/ci/image-tags.yml b/drivers/gpu/drm/ci/image-tags.yml
> index 60323ebc7304..13eda37bdf05 100644
> --- a/drivers/gpu/drm/ci/image-tags.yml
> +++ b/drivers/gpu/drm/ci/image-tags.yml
> @@ -4,7 +4,7 @@ variables:
>     DEBIAN_BASE_TAG: "${CONTAINER_TAG}"
>  
>     DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build"
> -   DEBIAN_BUILD_TAG: "2023-10-08-config"
> +   DEBIAN_BUILD_TAG: "2024-06-10-vkms"
>  
>     KERNEL_ROOTFS_TAG: "2023-10-06-amd"
>  
> diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml
> index 322cce714657..ee908b66aad2 100644
> --- a/drivers/gpu/drm/ci/test.yml
> +++ b/drivers/gpu/drm/ci/test.yml
> @@ -338,7 +338,7 @@ meson:g12b:
>      RUNNER_TAG: mesa-ci-x86-64-lava-meson-g12b-a311d-khadas-vim3
>  
>  virtio_gpu:none:
> -  stage: virtio-gpu
> +  stage: software-driver
>    variables:
>      CROSVM_GALLIUM_DRIVER: llvmpipe
>      DRIVER_NAME: virtio_gpu
> @@ -358,3 +358,25 @@ virtio_gpu:none:
>      - debian/x86_64_test-gl
>      - testing:x86_64
>      - igt:x86_64
> +
> +vkms:none:
> +  stage: software-driver
> +  variables:
> +    DRIVER_NAME: vkms
> +    GPU_VERSION: none
> +  extends:
> +    - .test-gl
> +    - .test-rules
> +  tags:
> +    - kvm
> +  script:
> +    - ln -sf $CI_PROJECT_DIR/install /install
> +    - mv install/bzImage /lava-files/bzImage
> +    - mkdir -p /lib/modules
> +    - mkdir -p $CI_PROJECT_DIR/results
> +    - ln -sf $CI_PROJECT_DIR/results /results
> +    - ./install/crosvm-runner.sh ./install/igt_runner.sh
> +  needs:
> +    - debian/x86_64_test-gl
> +    - testing:x86_64
> +    - igt:x86_64
> diff --git a/drivers/gpu/drm/ci/x86_64.config b/drivers/gpu/drm/ci/x86_64.config
> index 1cbd49a5b23a..8eaba388b141 100644
> --- a/drivers/gpu/drm/ci/x86_64.config
> +++ b/drivers/gpu/drm/ci/x86_64.config
> @@ -24,6 +24,7 @@ CONFIG_DRM=y
>  CONFIG_DRM_PANEL_SIMPLE=y
>  CONFIG_PWM_CROS_EC=y
>  CONFIG_BACKLIGHT_PWM=y
> +CONFIG_DRM_VKMS=m
>  
>  # Strip out some stuff we don't need for graphics testing, to reduce
>  # the build.
> diff --git a/drivers/gpu/drm/ci/xfails/vkms-none-fails.txt b/drivers/gpu/drm/ci/xfails/vkms-none-fails.txt
> new file mode 100644
> index 000000000000..691c383b21a0
> --- /dev/null
> +++ b/drivers/gpu/drm/ci/xfails/vkms-none-fails.txt
> @@ -0,0 +1,57 @@
> +core_hotunplug at hotrebind,Fail
> +core_hotunplug at hotrebind-lateclose,Fail
> +core_hotunplug at hotreplug,Fail
> +core_hotunplug at hotreplug-lateclose,Fail
> +core_hotunplug at hotunbind-rebind,Fail
> +core_hotunplug at hotunplug-rescan,Fail
> +core_hotunplug at unbind-rebind,Fail
> +core_hotunplug at unplug-rescan,Fail
> +device_reset at cold-reset-bound,Fail
> +device_reset at reset-bound,Fail
> +device_reset at unbind-cold-reset-rebind,Fail
> +device_reset at unbind-reset-rebind,Fail
> +dumb_buffer at invalid-bpp,Fail
> +kms_content_protection at atomic,Crash
> +kms_content_protection at atomic-dpms,Crash
> +kms_content_protection at content-type-change,Crash
> +kms_content_protection at lic-type-0,Crash
> +kms_content_protection at lic-type-1,Crash
> +kms_content_protection at srm,Crash
> +kms_content_protection at type1,Crash
> +kms_content_protection at uevent,Crash
> +kms_cursor_crc at cursor-rapid-movement-128x128,Fail
> +kms_cursor_crc at cursor-rapid-movement-128x42,Fail
> +kms_cursor_crc at cursor-rapid-movement-256x256,Fail
> +kms_cursor_crc at cursor-rapid-movement-256x85,Fail
> +kms_cursor_crc at cursor-rapid-movement-32x10,Fail
> +kms_cursor_crc at cursor-rapid-movement-32x32,Fail
> +kms_cursor_crc at cursor-rapid-movement-512x170,Fail
> +kms_cursor_crc at cursor-rapid-movement-512x512,Fail
> +kms_cursor_crc at cursor-rapid-movement-64x21,Fail
> +kms_cursor_crc at cursor-rapid-movement-64x64,Fail
> +kms_cursor_legacy at basic-flip-before-cursor-atomic,Fail
> +kms_cursor_legacy at basic-flip-before-cursor-legacy,Fail
> +kms_cursor_legacy at cursor-vs-flip-atomic,Fail
> +kms_cursor_legacy at cursor-vs-flip-legacy,Fail
> +kms_cursor_legacy at cursor-vs-flip-toggle,Fail
> +kms_cursor_legacy at cursor-vs-flip-varying-size,Fail
> +kms_cursor_legacy at flip-vs-cursor-atomic,Fail
> +kms_cursor_legacy at flip-vs-cursor-crc-atomic,Fail
> +kms_cursor_legacy at flip-vs-cursor-crc-legacy,Fail
> +kms_cursor_legacy at flip-vs-cursor-legacy,Fail
> +kms_flip at flip-vs-modeset-vs-hang,Fail
> +kms_flip at flip-vs-panning-vs-hang,Fail
> +kms_flip at flip-vs-suspend,Timeout
> +kms_flip at flip-vs-suspend-interruptible,Timeout
> +kms_flip at plain-flip-fb-recreate,Fail
> +kms_lease at lease-uevent,Fail
> +kms_pipe_crc_basic at nonblocking-crc,Fail
> +kms_pipe_crc_basic at nonblocking-crc-frame-sequence,Fail
> +kms_writeback at writeback-check-output,Fail
> +kms_writeback at writeback-check-output-XRGB2101010,Fail
> +kms_writeback at writeback-fb-id,Fail
> +kms_writeback at writeback-fb-id-XRGB2101010,Fail
> +kms_writeback at writeback-invalid-parameters,Fail
> +kms_writeback at writeback-pixel-formats,Fail
> +perf at i915-ref-count,Fail
> +tools_test at tools_test,Fail
> diff --git a/drivers/gpu/drm/ci/xfails/vkms-none-flakes.txt b/drivers/gpu/drm/ci/xfails/vkms-none-flakes.txt
> new file mode 100644
> index 000000000000..56484a30aff5
> --- /dev/null
> +++ b/drivers/gpu/drm/ci/xfails/vkms-none-flakes.txt
> @@ -0,0 +1,15 @@
> +# Board Name: vkms
> +# Bug Report: https://lore.kernel.org/dri-devel/61ed26af-062c-443c-9df2-d1ee319f3fb0@collabora.com/T/#u
> +# Failure Rate: 50
> +# IGT Version: 1.28-g0df7b9b97
> +# Linux Version: 6.9.0-rc7
> +kms_cursor_legacy at long-nonblocking-modeset-vs-cursor-atomic
> +kms_flip at basic-flip-vs-wf_vblank
> +kms_flip at flip-vs-expired-vblank-interruptible
> +kms_flip at flip-vs-wf_vblank-interruptible
> +kms_flip at plain-flip-fb-recreate-interruptible
> +kms_flip at plain-flip-ts-check
> +kms_flip at plain-flip-ts-check-interruptible
> +kms_flip at flip-vs-absolute-wf_vblank
> +kms_flip at flip-vs-absolute-wf_vblank-interruptible
> +kms_flip at flip-vs-blocking-wf-vblank
> diff --git a/drivers/gpu/drm/ci/xfails/vkms-none-skips.txt b/drivers/gpu/drm/ci/xfails/vkms-none-skips.txt
> new file mode 100644
> index 000000000000..5a9093ddb613
> --- /dev/null
> +++ b/drivers/gpu/drm/ci/xfails/vkms-none-skips.txt
> @@ -0,0 +1,67 @@
> +# keeps printing vkms_vblank_simulate: vblank timer overrun and never ends
> +kms_invalid_mode at int-max-clock
> +
> +# Kernel panic
> +kms_cursor_crc at cursor-rapid-movement-32x10
> +# Oops: 0000 [#1] PREEMPT SMP NOPTI
> +# CPU: 0 PID: 2635 Comm: kworker/u8:13 Not tainted 6.9.0-rc7-g40935263a1fd #1
> +# Hardware name: ChromiumOS crosvm, BIOS 0
> +# Workqueue: vkms_composer vkms_composer_worker [vkms]
> +# RIP: 0010:compose_active_planes+0x1c7/0x4e0 [vkms]
> +# Code: c9 0f 84 6a 01 00 00 8b 42 30 2b 42 28 41 39 c5 0f 8c 6f 01 00 00 49 83 c7 01 49 39 df 74 3b 4b 8b 34 fc 48 8b 96 48 01 00 00 <8b> 42 78 89 c1 83 e1 0a a8 20 74 b1 45 89 f5 41 f7 d5 44 03 6a 34
> +# RSP: 0018:ffffbb4700c17d58 EFLAGS: 00010246
> +# RAX: 0000000000000400 RBX: 0000000000000002 RCX: 0000000000000002
> +# RDX: 0000000000000000 RSI: ffffa2ad0788c000 RDI: 00000000fff479a8
> +# RBP: 0000000000000004 R08: 0000000000000000 R09: 0000000000000000
> +# R10: ffffa2ad0bb14000 R11: 0000000000000000 R12: ffffa2ad03e21700
> +# R13: 0000000000000003 R14: 0000000000000004 R15: 0000000000000000
> +# FS:  0000000000000000(0000) GS:ffffa2ad2bc00000(0000) knlGS:0000000000000000
> +# CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> +# CR2: 0000000000000078 CR3: 000000010bd30000 CR4: 0000000000350ef0
> +# Call Trace:
> +#  <TASK>
> +#  ? __die+0x1e/0x60
> +#  ? page_fault_oops+0x17b/0x490
> +#  ? exc_page_fault+0x6d/0x230
> +#  ? asm_exc_page_fault+0x26/0x30
> +#  ? compose_active_planes+0x1c7/0x4e0 [vkms]
> +#  ? compose_active_planes+0x2a3/0x4e0 [vkms]
> +#  ? srso_return_thunk+0x5/0x5f
> +#  vkms_composer_worker+0x205/0x240 [vkms]
> +#  process_one_work+0x1f4/0x6b0
> +#  ? lock_is_held_type+0x9e/0x110
> +#  worker_thread+0x17e/0x350
> +#  ? __pfx_worker_thread+0x10/0x10
> +#  kthread+0xce/0x100
> +#  ? __pfx_kthread+0x10/0x10
> +#  ret_from_fork+0x2f/0x50
> +#  ? __pfx_kthread+0x10/0x10
> +#  ret_from_fork_asm+0x1a/0x30
> +#  </TASK>
> +# Modules linked in: vkms
> +# CR2: 0000000000000078
> +# ---[ end trace 0000000000000000 ]---
> +# RIP: 0010:compose_active_planes+0x1c7/0x4e0 [vkms]
> +# Code: c9 0f 84 6a 01 00 00 8b 42 30 2b 42 28 41 39 c5 0f 8c 6f 01 00 00 49 83 c7 01 49 39 df 74 3b 4b 8b 34 fc 48 8b 96 48 01 00 00 <8b> 42 78 89 c1 83 e1 0a a8 20 74 b1 45 89 f5 41 f7 d5 44 03 6a 34
> +# RSP: 0018:ffffbb4700c17d58 EFLAGS: 00010246
> +# RAX: 0000000000000400 RBX: 0000000000000002 RCX: 0000000000000002
> +# RDX: 0000000000000000 RSI: ffffa2ad0788c000 RDI: 00000000fff479a8
> +# RBP: 0000000000000004 R08: 0000000000000000 R09: 0000000000000000
> +# R10: ffffa2ad0bb14000 R11: 0000000000000000 R12: ffffa2ad03e21700
> +# R13: 0000000000000003 R14: 0000000000000004 R15: 0000000000000000
> +# FS:  0000000000000000(0000) GS:ffffa2ad2bc00000(0000) knlGS:0000000000000000
> +# CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> +
> +# Skip driver specific tests
> +^amdgpu.*
> +msm_.*
> +nouveau_.*
> +panfrost_.*
> +^v3d.*
> +^vc4.*
> +^vmwgfx*
> +
> +# Skip intel specific tests
> +gem_.*
> +i915_.*
> +xe_.*
> -- 
> 2.40.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list