projects/linux·commit 1548b060

Merge tag 'topic/drm-ci-2023-08-31-1' of git://anongit.freedesktop.org/drm/drm

1548b060 · Linus Torvalds <[email protected]> · 2023-09-10 11:55:26 -07:00

Pull drm ci scripts from Dave Airlie:
 "This is a bunch of ci integration for the freedesktop gitlab instance
  where we currently do upstream userspace testing on diverse sets of
  GPU hardware. From my perspective I think it's an experiment worth
  going with and seeing how the benefits/noise playout keeping these
  files useful.

  Ideally I'd like to get this so we can do pre-merge testing on PRs
  eventually.

  Below is some info from danvet on why we've ended up making the
  decision and how we can roll it back if we decide it was a bad plan.

  Why in upstream?

   - like documentation, testcases, tools CI integration is one of these
     things where you can waste endless amounts of time if you
     accidentally have a version that doesn't match your source code

   - but also like the above, there's a balance, this is the initial cut
     of what we think makes sense to keep in sync vs out-of-tree,
     probably needs adjustment

   - gitlab supports out-of-repo gitlab integration and that's what's
     been used for the kernel in drm, but it results in per-driver
     fragmentation and lots of duplicated effort. the simple act of
     smashing an arbitrary winner into a topic branch already started
     surfacing patches on dri-devel and sparking good cross driver team
     discussions

  Why gitlab?

   - it's not any more shit than any of the other CI

   - drm userspace uses it extensively for everything in userspace, we
     have a lot of people and experience with this, including
     integration of hw testing labs

   - media userspace like gstreamer is also on gitlab.fd.o, and there's
     discussion to extend this to the media subsystem in some fashion

  Can this be shared?

   - there's definitely a pile of code that could move to scripts/ if
     other subsystem adopt ci integration in upstream kernel git. other
     bits are more drm/gpu specific like the igt-gpu-tests/tools
     integration

   - docker images can be run locally or in other CI runners

  Will we regret this?

   - it's all in one directory, intentionally, for easy deletion

   - probably 1-2 years in upstream to see whether this is worth it or a
     Big Mistake. that's roughly what it took to _really_ roll out solid
     CI in the bigger userspace projects we have on gitlab.fd.o like
     mesa3d"

* tag 'topic/drm-ci-2023-08-31-1' of git://anongit.freedesktop.org/drm/drm:
  drm: ci: docs: fix build warning - add missing escape
  drm: Add initial ci/ subdirectory
Commit
1548b060d6f32a00a2f7e2c11328205fb66fc4fa
Parents
e56b2b60 · ad6bfe1b

Merge commit. Changes below are compared with the first parent: e56b2b60.

Changes

68 files changed · +5508 −0

FileStatusAddDelContent
Documentation/gpu/automated_testing.rstadded+144−0View file
Documentation/gpu/index.rstmodified+1−0View file
MAINTAINERSmodified+8−0View file
drivers/gpu/drm/ci/arm.configadded+69−0View file
drivers/gpu/drm/ci/arm64.configadded+199−0View file
drivers/gpu/drm/ci/build-igt.shadded+35−0View file
drivers/gpu/drm/ci/build.shadded+157−0View file
drivers/gpu/drm/ci/build.ymladded+110−0View file
drivers/gpu/drm/ci/check-patch.pyadded+57−0View file
drivers/gpu/drm/ci/container.ymladded+65−0View file
drivers/gpu/drm/ci/gitlab-ci.ymladded+251−0View file
drivers/gpu/drm/ci/igt_runner.shadded+77−0View file
drivers/gpu/drm/ci/image-tags.ymladded+15−0View file
drivers/gpu/drm/ci/lava-submit.shadded+57−0View file
drivers/gpu/drm/ci/static-checks.ymladded+12−0View file
drivers/gpu/drm/ci/test.ymladded+335−0View file
drivers/gpu/drm/ci/testlist.txtadded+2912−0View file
drivers/gpu/drm/ci/x86_64.configadded+111−0View file
drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txtadded+19−0View file
drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txtadded+21−0View file
drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txtadded+2−0View file
drivers/gpu/drm/ci/xfails/i915-amly-fails.txtadded+17−0View file
drivers/gpu/drm/ci/xfails/i915-amly-flakes.txtadded+32−0View file
drivers/gpu/drm/ci/xfails/i915-amly-skips.txtadded+4−0View file
drivers/gpu/drm/ci/xfails/i915-apl-fails.txtadded+58−0View file
drivers/gpu/drm/ci/xfails/i915-apl-flakes.txtadded+1−0View file
drivers/gpu/drm/ci/xfails/i915-apl-skips.txtadded+6−0View file
drivers/gpu/drm/ci/xfails/i915-cml-fails.txtadded+18−0View file
drivers/gpu/drm/ci/xfails/i915-cml-flakes.txtadded+38−0View file
drivers/gpu/drm/ci/xfails/i915-cml-skips.txtadded+2−0View file
drivers/gpu/drm/ci/xfails/i915-glk-fails.txtadded+19−0View file
drivers/gpu/drm/ci/xfails/i915-glk-flakes.txtadded+41−0View file
drivers/gpu/drm/ci/xfails/i915-glk-skips.txtadded+5−0View file
drivers/gpu/drm/ci/xfails/i915-kbl-fails.txtadded+25−0View file
drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txtadded+26−0View file
drivers/gpu/drm/ci/xfails/i915-kbl-skips.txtadded+5−0View file
drivers/gpu/drm/ci/xfails/i915-tgl-fails.txtadded+37−0View file
drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txtadded+5−0View file
drivers/gpu/drm/ci/xfails/i915-tgl-skips.txtadded+11−0View file
drivers/gpu/drm/ci/xfails/i915-whl-fails.txtadded+48−0View file
drivers/gpu/drm/ci/xfails/i915-whl-flakes.txtadded+1−0View file
drivers/gpu/drm/ci/xfails/i915-whl-skips.txtadded+2−0View file
drivers/gpu/drm/ci/xfails/mediatek-mt8173-fails.txtadded+29−0View file
drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txtadded+0−0View file
drivers/gpu/drm/ci/xfails/mediatek-mt8183-fails.txtadded+10−0View file
drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txtadded+14−0View file
drivers/gpu/drm/ci/xfails/meson-g12b-fails.txtadded+12−0View file
drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txtadded+4−0View file
drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txtadded+15−0View file
drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txtadded+4−0View file
drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txtadded+2−0View file
drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txtadded+4−0View file
drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txtadded+2−0View file
drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txtadded+25−0View file
drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txtadded+7−0View file
drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txtadded+23−0View file
drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txtadded+68−0View file
drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txtadded+11−0View file
drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txtadded+2−0View file
drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txtadded+48−0View file
drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txtadded+9−0View file
drivers/gpu/drm/ci/xfails/rockchip-rk3288-skips.txtadded+52−0View file
drivers/gpu/drm/ci/xfails/rockchip-rk3399-fails.txtadded+37−0View file
drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txtadded+23−0View file
drivers/gpu/drm/ci/xfails/rockchip-rk3399-skips.txtadded+5−0View file
drivers/gpu/drm/ci/xfails/virtio_gpu-none-fails.txtadded+38−0View file
drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txtadded+0−0View file
drivers/gpu/drm/ci/xfails/virtio_gpu-none-skips.txtadded+6−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/gpu/automated_testing.rst

View file
diff --git a/Documentation/gpu/automated_testing.rst b/Documentation/gpu/automated_testing.rst
new file mode 100644
index 0000000..469b6fb
--- /dev/null
+++ b/Documentation/gpu/automated_testing.rst
@@ -0,0 +1,144 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+=========================================
+Automated testing of the DRM subsystem
+=========================================
+
+Introduction
+============
+
+Making sure that changes to the core or drivers don't introduce regressions can
+be very time-consuming when lots of different hardware configurations need to
+be tested. Moreover, it isn't practical for each person interested in this
+testing to have to acquire and maintain what can be a considerable amount of
+hardware.
+
+Also, it is desirable for developers to check for regressions in their code by
+themselves, instead of relying on the maintainers to find them and then
+reporting back.
+
+There are facilities in gitlab.freedesktop.org to automatically test Mesa that
+can be used as well for testing the DRM subsystem. This document explains how
+people interested in testing it can use this shared infrastructure to save
+quite some time and effort.
+
+
+Relevant files
+==============
+
+drivers/gpu/drm/ci/gitlab-ci.yml
+--------------------------------
+
+This is the root configuration file for GitLab CI. Among other less interesting
+bits, it specifies the specific version of the scripts to be used. There are
+some variables that can be modified to change the behavior of the pipeline:
+
+DRM_CI_PROJECT_PATH
+ Repository that contains the Mesa software infrastructure for CI
+
+DRM_CI_COMMIT_SHA
+ A particular revision to use from that repository
+
+UPSTREAM_REPO
+ URL to git repository containing the target branch
+
+TARGET_BRANCH
+ Branch to which this branch is to be merged into
+
+IGT_VERSION
+ Revision of igt-gpu-tools being used, from
+ https://gitlab.freedesktop.org/drm/igt-gpu-tools
+
+drivers/gpu/drm/ci/testlist.txt
+-------------------------------
+
+IGT tests to be run on all drivers (unless mentioned in a driver's \*-skips.txt
+file, see below).
+
+drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-fails.txt
+----------------------------------------------------------
+
+Lists the known failures for a given driver on a specific hardware revision.
+
+drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-flakes.txt
+-----------------------------------------------------------
+
+Lists the tests that for a given driver on a specific hardware revision are
+known to behave unreliably. These tests won't cause a job to fail regardless of
+the result. They will still be run.
+
+drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-skips.txt
+-----------------------------------------------------------
+
+Lists the tests that won't be run for a given driver on a specific hardware
+revision. These are usually tests that interfere with the running of the test
+list due to hanging the machine, causing OOM, taking too long, etc.
+
+
+How to enable automated testing on your tree
+============================================
+
+1. Create a Linux tree in https://gitlab.freedesktop.org/ if you don't have one
+yet
+
+2. In your kernel repo's configuration (eg.
+https://gitlab.freedesktop.org/janedoe/linux/-/settings/ci_cd), change the
+CI/CD configuration file from .gitlab-ci.yml to
+drivers/gpu/drm/ci/gitlab-ci.yml.
+
+3. Next time you push to this repository, you will see a CI pipeline being
+created (eg. https://gitlab.freedesktop.org/janedoe/linux/-/pipelines)
+
+4. The various jobs will be run and when the pipeline is finished, all jobs
+should be green unless a regression has been found.
+
+
+How to update test expectations
+===============================
+
+If your changes to the code fix any tests, you will have to remove one or more
+lines from one or more of the files in
+drivers/gpu/drm/ci/${DRIVER_NAME}_*_fails.txt, for each of the test platforms
+affected by the change.
+
+
+How to expand coverage
+======================
+
+If your code changes make it possible to run more tests (by solving reliability
+issues, for example), you can remove tests from the flakes and/or skips lists,
+and then the expected results if there are any known failures.
+
+If there is a need for updating the version of IGT being used (maybe you have
+added more tests to it), update the IGT_VERSION variable at the top of the
+gitlab-ci.yml file.
+
+
+How to test your changes to the scripts
+=======================================
+
+For testing changes to the scripts in the drm-ci repo, change the
+DRM_CI_PROJECT_PATH and DRM_CI_COMMIT_SHA variables in
+drivers/gpu/drm/ci/gitlab-ci.yml to match your fork of the project (eg.
+janedoe/drm-ci). This fork needs to be in https://gitlab.freedesktop.org/.
+
+
+How to incorporate external fixes in your testing
+=================================================
+
+Often, regressions in other trees will prevent testing changes local to the
+tree under test. These fixes will be automatically merged in during the build
+jobs from a branch in the target tree that is named as
+${TARGET_BRANCH}-external-fixes.
+
+If the pipeline is not in a merge request and a branch with the same name
+exists in the local tree, commits from that branch will be merged in as well.
+
+
+How to deal with automated testing labs that may be down
+========================================================
+
+If a hardware farm is down and thus causing pipelines to fail that would
+otherwise pass, one can disable all jobs that would be submitted to that farm
+by editing the file at
+https://gitlab.freedesktop.org/gfx-ci/lab-status/-/blob/main/lab-status.yml.

Documentation/gpu/index.rst

View file
diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst
index eee5996..e45ff09 100644
--- a/Documentation/gpu/index.rst
+++ b/Documentation/gpu/index.rst
@@ -17,6 +17,7 @@ GPU Driver Developer's Guide
backlight
vga-switcheroo
vgaarbiter
+ automated_testing
todo
rfc/index

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 42459a3..90f1328 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7165,6 +7165,14 @@ T: git git://anongit.freedesktop.org/drm/drm-misc
F: drivers/gpu/drm/ttm/
F: include/drm/ttm/
+DRM AUTOMATED TESTING
+M: Helen Koike <[email protected]>
+S: Maintained
+T: git git://anongit.freedesktop.org/drm/drm-misc
+F: Documentation/gpu/automated_testing.rst
+F: drivers/gpu/drm/ci/
+
DSBR100 USB FM RADIO DRIVER
M: Alexey Klimov <[email protected]>

drivers/gpu/drm/ci/arm.config

View file
diff --git a/drivers/gpu/drm/ci/arm.config b/drivers/gpu/drm/ci/arm.config
new file mode 100644
index 0000000..871f4de
--- /dev/null
+++ b/drivers/gpu/drm/ci/arm.config
@@ -0,0 +1,69 @@
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_DEBUG_KERNEL=y
+
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM=y
+CONFIG_ZSMALLOC_STAT=y
+
+# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
+CONFIG_BLK_DEV_INITRD=n
+
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+
+CONFIG_DRM=y
+CONFIG_DRM_ETNAVIV=y
+CONFIG_DRM_ROCKCHIP=y
+CONFIG_DRM_PANFROST=y
+CONFIG_DRM_LIMA=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_PWM_CROS_EC=y
+CONFIG_BACKLIGHT_PWM=y
+
+CONFIG_ROCKCHIP_CDN_DP=n
+
+CONFIG_SPI_ROCKCHIP=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_DP=y
+CONFIG_DWMAC_ROCKCHIP=y
+
+CONFIG_MFD_RK808=y
+CONFIG_REGULATOR_RK808=y
+CONFIG_RTC_DRV_RK808=y
+CONFIG_COMMON_CLK_RK808=y
+
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR=y
+
+CONFIG_REGULATOR_VCTRL=y
+
+CONFIG_KASAN=n
+CONFIG_KASAN_INLINE=n
+CONFIG_STACKTRACE=n
+
+CONFIG_TMPFS=y
+
+CONFIG_PROVE_LOCKING=n
+CONFIG_DEBUG_LOCKDEP=n
+CONFIG_SOFTLOCKUP_DETECTOR=n
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
+
+CONFIG_FW_LOADER_COMPRESS=y
+
+CONFIG_USB_USBNET=y
+CONFIG_NETDEVICES=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_SMSC95XX=y
+
+# TK1
+CONFIG_ARM_TEGRA_DEVFREQ=y
+
+# 32-bit build failure
+CONFIG_DRM_MSM=n

drivers/gpu/drm/ci/arm64.config

View file
diff --git a/drivers/gpu/drm/ci/arm64.config b/drivers/gpu/drm/ci/arm64.config
new file mode 100644
index 0000000..817e18d
--- /dev/null
+++ b/drivers/gpu/drm/ci/arm64.config
@@ -0,0 +1,199 @@
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_DEBUG_KERNEL=y
+
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM=y
+CONFIG_ZSMALLOC_STAT=y
+
+# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
+CONFIG_BLK_DEV_INITRD=n
+
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+
+CONFIG_DRM=y
+CONFIG_DRM_ROCKCHIP=y
+CONFIG_DRM_PANFROST=y
+CONFIG_DRM_LIMA=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_DRM_PANEL_EDP=y
+CONFIG_DRM_MSM=y
+CONFIG_DRM_ETNAVIV=y
+CONFIG_DRM_I2C_ADV7511=y
+CONFIG_PWM_CROS_EC=y
+CONFIG_BACKLIGHT_PWM=y
+
+CONFIG_ROCKCHIP_CDN_DP=n
+
+CONFIG_SPI_ROCKCHIP=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_DP=y
+CONFIG_DWMAC_ROCKCHIP=y
+CONFIG_STMMAC_ETH=y
+CONFIG_TYPEC_FUSB302=y
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+
+# MSM platform bits
+
+# For CONFIG_QCOM_LMH
+CONFIG_OF=y
+
+CONFIG_ARM_SMMU_QCOM=y
+CONFIG_QCOM_COMMAND_DB=y
+CONFIG_QCOM_RPMHPD=y
+CONFIG_QCOM_RPMPD=y
+CONFIG_QCOM_OCMEM=y
+CONFIG_SDM_GPUCC_845=y
+CONFIG_SDM_VIDEOCC_845=y
+CONFIG_SDM_DISPCC_845=y
+CONFIG_SDM_LPASSCC_845=y
+CONFIG_SDM_CAMCC_845=y
+CONFIG_RESET_QCOM_PDC=y
+CONFIG_DRM_TI_SN65DSI86=y
+CONFIG_I2C_QCOM_GENI=y
+CONFIG_SPI_QCOM_GENI=y
+CONFIG_PHY_QCOM_QUSB2=y
+CONFIG_PHY_QCOM_QMP=y
+CONFIG_MSM_GCC_8996=y
+CONFIG_QCOM_CLK_APCC_MSM8996=y
+CONFIG_QCOM_LLCC=y
+CONFIG_QCOM_LMH=y
+CONFIG_QCOM_SPMI_TEMP_ALARM=y
+CONFIG_QCOM_WDT=y
+CONFIG_POWER_RESET_QCOM_PON=y
+CONFIG_RTC_DRV_PM8XXX=y
+CONFIG_INTERCONNECT=y
+CONFIG_INTERCONNECT_QCOM=y
+CONFIG_INTERCONNECT_QCOM_MSM8996=y
+CONFIG_INTERCONNECT_QCOM_SDM845=y
+CONFIG_INTERCONNECT_QCOM_MSM8916=y
+CONFIG_INTERCONNECT_QCOM_MSM8996=y
+CONFIG_INTERCONNECT_QCOM_OSM_L3=y
+CONFIG_INTERCONNECT_QCOM_SC7180=y
+CONFIG_INTERCONNECT_QCOM_SM8350=y
+CONFIG_CRYPTO_DEV_QCOM_RNG=y
+CONFIG_SC_DISPCC_7180=y
+CONFIG_SC_GPUCC_7180=y
+CONFIG_SM_GPUCC_8350=y
+CONFIG_QCOM_SPMI_ADC5=y
+CONFIG_DRM_PARADE_PS8640=y
+CONFIG_DRM_LONTIUM_LT9611UXC=y
+CONFIG_PHY_QCOM_USB_HS=y
+CONFIG_QCOM_GPI_DMA=y
+CONFIG_USB_ONBOARD_HUB=y
+CONFIG_NVMEM_QCOM_QFPROM=y
+CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y
+
+
+# db410c ethernet
+CONFIG_USB_RTL8152=y
+# db820c ethernet
+CONFIG_ATL1C=y
+# Chromebooks ethernet
+CONFIG_USB_ONBOARD_HUB=y
+# 888 HDK ethernet
+CONFIG_USB_LAN78XX=y
+
+CONFIG_ARCH_ALPINE=n
+CONFIG_ARCH_BCM2835=y
+CONFIG_ARCH_BCM_IPROC=n
+CONFIG_ARCH_BERLIN=n
+CONFIG_ARCH_BRCMSTB=n
+CONFIG_ARCH_EXYNOS=n
+CONFIG_ARCH_K3=n
+CONFIG_ARCH_LAYERSCAPE=n
+CONFIG_ARCH_LG1K=n
+CONFIG_ARCH_HISI=n
+CONFIG_ARCH_MVEBU=n
+CONFIG_ARCH_SEATTLE=n
+CONFIG_ARCH_SYNQUACER=n
+CONFIG_ARCH_RENESAS=n
+CONFIG_ARCH_R8A774A1=n
+CONFIG_ARCH_R8A774C0=n
+CONFIG_ARCH_R8A7795=n
+CONFIG_ARCH_R8A7796=n
+CONFIG_ARCH_R8A77965=n
+CONFIG_ARCH_R8A77970=n
+CONFIG_ARCH_R8A77980=n
+CONFIG_ARCH_R8A77990=n
+CONFIG_ARCH_R8A77995=n
+CONFIG_ARCH_STRATIX10=n
+CONFIG_ARCH_TEGRA=n
+CONFIG_ARCH_SPRD=n
+CONFIG_ARCH_THUNDER=n
+CONFIG_ARCH_THUNDER2=n
+CONFIG_ARCH_UNIPHIER=n
+CONFIG_ARCH_VEXPRESS=n
+CONFIG_ARCH_XGENE=n
+CONFIG_ARCH_ZX=n
+CONFIG_ARCH_ZYNQMP=n
+
+# Strip out some stuff we don't need for graphics testing, to reduce
+# the build.
+CONFIG_CAN=n
+CONFIG_WIRELESS=n
+CONFIG_RFKILL=n
+CONFIG_WLAN=n
+
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR=y
+
+CONFIG_REGULATOR_VCTRL=y
+
+CONFIG_KASAN=n
+CONFIG_KASAN_INLINE=n
+CONFIG_STACKTRACE=n
+
+CONFIG_TMPFS=y
+
+CONFIG_PROVE_LOCKING=n
+CONFIG_DEBUG_LOCKDEP=n
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+
+CONFIG_DETECT_HUNG_TASK=y
+
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_USER_HELPER=n
+
+CONFIG_USB_USBNET=y
+CONFIG_NETDEVICES=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_SMSC95XX=y
+
+# For amlogic
+CONFIG_MESON_GXL_PHY=y
+CONFIG_MDIO_BUS_MUX_MESON_G12A=y
+CONFIG_DRM_MESON=y
+
+# For Mediatek
+CONFIG_DRM_MEDIATEK=y
+CONFIG_PWM_MEDIATEK=y
+CONFIG_DRM_MEDIATEK_HDMI=y
+CONFIG_GNSS=y
+CONFIG_GNSS_MTK_SERIAL=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_MTK=y
+CONFIG_MTK_DEVAPC=y
+CONFIG_PWM_MTK_DISP=y
+CONFIG_MTK_CMDQ=y
+
+# For nouveau. Note that DRM must be a module so that it's loaded after NFS is up to provide the firmware.
+CONFIG_ARCH_TEGRA=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_TEGRA=m
+CONFIG_R8169=y
+CONFIG_STAGING=y
+CONFIG_DRM_TEGRA_STAGING=y
+CONFIG_TEGRA_HOST1X=y
+CONFIG_ARM_TEGRA_DEVFREQ=y
+CONFIG_TEGRA_SOCTHERM=y
+CONFIG_DRM_TEGRA_DEBUG=y
+CONFIG_PWM_TEGRA=y

drivers/gpu/drm/ci/build-igt.sh

View file
diff --git a/drivers/gpu/drm/ci/build-igt.sh b/drivers/gpu/drm/ci/build-igt.sh
new file mode 100644
index 0000000..500fa4f
--- /dev/null
+++ b/drivers/gpu/drm/ci/build-igt.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+git clone https://gitlab.freedesktop.org/drm/igt-gpu-tools.git --single-branch --no-checkout
+cd igt-gpu-tools
+git checkout $IGT_VERSION
+
+if [[ "$KERNEL_ARCH" = "arm" ]]; then
+ . ../.gitlab-ci/container/create-cross-file.sh armhf
+ EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt"
+fi
+
+MESON_OPTIONS="-Doverlay=disabled \
+ -Dchamelium=disabled \
+ -Dvalgrind=disabled \
+ -Dman=enabled \
+ -Dtests=enabled \
+ -Drunner=enabled \
+ -Dlibunwind=enabled \
+ -Dprefix=/igt"
+
+mkdir -p /igt
+meson build $MESON_OPTIONS $EXTRA_MESON_ARGS
+ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
+ninja -C build install
+
+mkdir -p artifacts/
+tar -cf artifacts/igt.tar /igt
+
+# Pass needed files to the test stage
+S3_ARTIFACT_NAME="igt.tar.gz"
+gzip -c artifacts/igt.tar > ${S3_ARTIFACT_NAME}
+ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME}

drivers/gpu/drm/ci/build.sh

View file
diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh
new file mode 100644
index 0000000..7b01428
--- /dev/null
+++ b/drivers/gpu/drm/ci/build.sh
@@ -0,0 +1,157 @@
+#!/bin/bash
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+# Clean up stale rebases that GitLab might not have removed when reusing a checkout dir
+rm -rf .git/rebase-apply
+
+. .gitlab-ci/container/container_pre_build.sh
+
+# libssl-dev was uninstalled because it was considered an ephemeral package
+apt-get update
+apt-get install -y libssl-dev
+
+if [[ "$KERNEL_ARCH" = "arm64" ]]; then
+ GCC_ARCH="aarch64-linux-gnu"
+ DEBIAN_ARCH="arm64"
+ DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb"
+ DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb"
+elif [[ "$KERNEL_ARCH" = "arm" ]]; then
+ GCC_ARCH="arm-linux-gnueabihf"
+ DEBIAN_ARCH="armhf"
+ DEVICE_TREES="arch/arm/boot/dts/rockchip/rk3288-veyron-jaq.dtb"
+ DEVICE_TREES+=" arch/arm/boot/dts/allwinner/sun8i-h3-libretech-all-h3-cc.dtb"
+ DEVICE_TREES+=" arch/arm/boot/dts/nxp/imx/imx6q-cubox-i.dtb"
+ apt-get install -y libssl-dev:armhf
+else
+ GCC_ARCH="x86_64-linux-gnu"
+ DEBIAN_ARCH="x86_64"
+ DEVICE_TREES=""
+fi
+
+export ARCH=${KERNEL_ARCH}
+export CROSS_COMPILE="${GCC_ARCH}-"
+
+# The kernel doesn't like the gold linker (or the old lld in our debians).
+# Sneak in some override symlinks during kernel build until we can update
+# debian.
+mkdir -p ld-links
+for i in /usr/bin/*-ld /usr/bin/ld; do
+ i=$(basename $i)
+ ln -sf /usr/bin/$i.bfd ld-links/$i
+done
+
+NEWPATH=$(pwd)/ld-links
+export PATH=$NEWPATH:$PATH
+
+git config --global user.email "[email protected]"
+git config --global user.name "freedesktop.org CI"
+git config --global pull.rebase true
+
+# Try to merge fixes from target repo
+if [ "$(git ls-remote --exit-code --heads ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes)" ]; then
+ git pull ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes
+fi
+
+# Try to merge fixes from local repo if this isn't a merge request
+if [ -z "$CI_MERGE_REQUEST_PROJECT_PATH" ]; then
+ if [ "$(git ls-remote --exit-code --heads origin ${TARGET_BRANCH}-external-fixes)" ]; then
+ git pull origin ${TARGET_BRANCH}-external-fixes
+ fi
+fi
+
+for opt in $ENABLE_KCONFIGS; do
+ echo CONFIG_$opt=y >> drivers/gpu/drm/ci/${KERNEL_ARCH}.config
+done
+for opt in $DISABLE_KCONFIGS; do
+ echo CONFIG_$opt=n >> drivers/gpu/drm/ci/${KERNEL_ARCH}.config
+done
+
+if [[ -n "${MERGE_FRAGMENT}" ]]; then
+ ./scripts/kconfig/merge_config.sh ${DEFCONFIG} drivers/gpu/drm/ci/${MERGE_FRAGMENT}
+else
+ make `basename ${DEFCONFIG}`
+fi
+
+make ${KERNEL_IMAGE_NAME}
+
+mkdir -p /lava-files/
+for image in ${KERNEL_IMAGE_NAME}; do
+ cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
+done
+

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/build.yml

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/check-patch.py

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/container.yml

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/gitlab-ci.yml

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/igt_runner.sh

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/image-tags.yml

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/lava-submit.sh

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/static-checks.yml

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/test.yml

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/testlist.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/x86_64.config

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-amly-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-amly-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-apl-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-apl-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-cml-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-cml-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-glk-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-glk-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-whl-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/i915-whl-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/mediatek-mt8173-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/mediatek-mt8183-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/meson-g12b-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/rockchip-rk3288-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/rockchip-rk3399-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/rockchip-rk3399-skips.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/virtio_gpu-none-fails.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ci/xfails/virtio_gpu-none-skips.txt

View file

This diff is incomplete. Download the complete patch.