Re: [PATCH v1] drm/ci: uprev IGT

2024-07-11 Thread Helen Koike




On 04/07/2024 06:22, Vignesh Raman wrote:

Uprev IGT to the latest version, which includes a fix for the
writeback tests issue on MSM devices. Enable debugging for
igt-runner to log output such as 'Begin test' and 'End test'.
This will help identify which test causes system freeze or hangs.
Update xfails and add metadata header for each flake test.

Signed-off-by: Vignesh Raman 


Applied to drm-misc-next.

Thanks
Helen


---

v1:
   - https://gitlab.freedesktop.org/vigneshraman/linux/-/pipelines/1216850

---
  drivers/gpu/drm/ci/gitlab-ci.yml  |   2 +-
  drivers/gpu/drm/ci/igt_runner.sh  |   1 +
  .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt |   1 +
  .../drm/ci/xfails/amdgpu-stoney-flakes.txt|  14 +-
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt |   4 +-
  drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |  12 +-
  .../gpu/drm/ci/xfails/i915-amly-flakes.txt|  41 -
  drivers/gpu/drm/ci/xfails/i915-amly-skips.txt |   5 +-
  drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |   2 +-
  drivers/gpu/drm/ci/xfails/i915-apl-skips.txt  |   4 +-
  drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  |  14 +-
  drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt |   9 +-
  drivers/gpu/drm/ci/xfails/i915-cml-skips.txt  |   5 +-
  drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  |  24 +--
  drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt |   8 +-
  drivers/gpu/drm/ci/xfails/i915-glk-skips.txt  |   4 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |   2 +
  drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt |   2 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt  |   4 +-
  drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |  25 +--
  drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt  |   4 +-
  drivers/gpu/drm/ci/xfails/i915-whl-fails.txt  |  17 +-
  drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |   2 +-
  drivers/gpu/drm/ci/xfails/i915-whl-skips.txt  |   5 +-
  .../drm/ci/xfails/mediatek-mt8173-fails.txt   |   9 +-
  .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |  32 +++-
  .../drm/ci/xfails/mediatek-mt8173-skips.txt   |   4 +-
  .../drm/ci/xfails/mediatek-mt8183-fails.txt   |   2 +-
  .../drm/ci/xfails/mediatek-mt8183-skips.txt   |   2 +-
  .../gpu/drm/ci/xfails/meson-g12b-fails.txt|   2 +-
  .../gpu/drm/ci/xfails/meson-g12b-skips.txt|   2 +-
  .../gpu/drm/ci/xfails/msm-apq8016-fails.txt   |   5 +-
  .../gpu/drm/ci/xfails/msm-apq8016-skips.txt   |   2 +-
  .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |   2 +-
  .../gpu/drm/ci/xfails/msm-apq8096-skips.txt   |   4 +-
  .../msm-sc7180-trogdor-kingoftown-fails.txt   | 145 --
  .../msm-sc7180-trogdor-kingoftown-flakes.txt  |  18 ++-
  .../msm-sc7180-trogdor-kingoftown-skips.txt   |   5 +-
  ...sm-sc7180-trogdor-lazor-limozeen-fails.txt | 145 --
  ...m-sc7180-trogdor-lazor-limozeen-flakes.txt |  11 +-
  ...sm-sc7180-trogdor-lazor-limozeen-skips.txt |   2 +-
  .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   | 105 -
  .../gpu/drm/ci/xfails/msm-sdm845-skips.txt|   4 +-
  .../drm/ci/xfails/rockchip-rk3288-fails.txt   |   2 +-
  .../drm/ci/xfails/rockchip-rk3288-skips.txt   |   2 +-
  .../drm/ci/xfails/rockchip-rk3399-fails.txt   |   2 +-
  .../drm/ci/xfails/rockchip-rk3399-flakes.txt  |   4 +-
  .../drm/ci/xfails/rockchip-rk3399-skips.txt   |   2 +-
  .../drm/ci/xfails/virtio_gpu-none-fails.txt   |  64 
  .../drm/ci/xfails/virtio_gpu-none-skips.txt   |   4 +-
  drivers/gpu/drm/ci/xfails/vkms-none-fails.txt |   4 -
  .../gpu/drm/ci/xfails/vkms-none-flakes.txt|  21 +++
  drivers/gpu/drm/ci/xfails/vkms-none-skips.txt | 105 -
  53 files changed, 527 insertions(+), 395 deletions(-)

diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml
index 80fb0f57ae46..b09976c3d2c2 100644
--- a/drivers/gpu/drm/ci/gitlab-ci.yml
+++ b/drivers/gpu/drm/ci/gitlab-ci.yml
@@ -5,7 +5,7 @@ variables:
UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm
TARGET_BRANCH: drm-next
  
-  IGT_VERSION: 0df7b9b97f9da0e364f5ee30fe331004b8c86b56

+  IGT_VERSION: f13702b8e4e847c56da3ef6f0969065d686049c5
  
DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/anholt/deqp-runner.git

DEQP_RUNNER_GIT_TAG: v0.15.0
diff --git a/drivers/gpu/drm/ci/igt_runner.sh b/drivers/gpu/drm/ci/igt_runner.sh
index 79f41d7da772..37c724dba8cb 100755
--- a/drivers/gpu/drm/ci/igt_runner.sh
+++ b/drivers/gpu/drm/ci/igt_runner.sh
@@ -80,6 +80,7 @@ igt-runner \
  --igt-folder /igt/libexec/igt-gpu-tools \
  --caselist $TESTLIST \
  --output /results \
+- \
  $IGT_SKIPS \
  $IGT_FLAKES \
  $IGT_FAILS \
diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
index e8c2f4044a92..2f74880671ca 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
@@ -30,6 +30,7 @@ kms_cursor_crc@cursor-random-64x64,Fail
  kms_cursor_crc@cursor-size-change,Fail
  

Re: [PATCH v9 27/52] selftests-dyndbg: check KCONFIG_CONFIG to avoid silly fails

2024-07-10 Thread Helen Koike




On 02/07/2024 18:57, Jim Cromie wrote:

Several tests are dependent upon config choices. Lets avoid failing
where that is noise.

The KCONFIG_CONFIG var exists to convey the config-file around.  If
the var names a file, read it and extract the relevant CONFIG items,
and use them to skip the dependent tests, thus avoiding the fails that
would follow, and the disruption to whatever CI is running these
selftests.

If the envar doesn't name a config-file, ".config" is assumed.

CONFIG_DYNAMIC_DEBUG=y:

basic-tests() and comma-terminator-tests() test for the presence of
the builtin pr_debugs in module/main.c, which I deemed stable and
therefore safe to count.  That said, the test fails if only
CONFIG_DYNAMIC_DEBUG_CORE=y is set.  It could be rewritten to test
against test-dynamic-debug.ko, but that just trades one config
dependence for another.

CONFIG_TEST_DYNAMIC_DEBUG=m

As written, test_percent_splitting() modprobes test_dynamic_debug,
enables several classes, and count them.  It could be re-written to
work for the builtin module also, but builtin test modules are not a
common or desirable build/config.

CONFIG_TEST_DYNAMIC_DEBUG=m && CONFIG_TEST_DYNAMIC_DEBUG_SUBMOD=m

test_mod_submod() recaps the bug found in DRM-CI where drivers werent


If this fixes any but listed in drm/ci/xfails folder, please update it too.

Regards,
Helen


enabled by drm.debug=.  It modprobes both test_dynamic_debug &
test_dynamic_debug_submod, so it depends on a loadable modules config.

It could be rewritten to work in a builtin parent config; DRM=y is
common enough to be pertinent, but testing that config also wouldn't
really test anything more fully than all-loadable modules, since they
default together.

Signed-off-by: Jim Cromie 

fixup-kconfig
---
  .../dynamic_debug/dyndbg_selftest.sh  | 45 ++-
  1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh 
b/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh
index fccd2012b548..d09ef26b2308 100755
--- a/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh
+++ b/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh
@@ -11,6 +11,30 @@ CYAN="\033[0;36m"
  NC="\033[0;0m"
  error_msg=""
  
+[ -e /proc/dynamic_debug/control ] || {

+echo -e "${RED}: this test requires CONFIG_DYNAMIC_DEBUG=y ${NC}"
+exit 0 # nothing to test here, no good reason to fail.
+}
+
+# need info to avoid failures due to untestable configs
+
+[ -f "$KCONFIG_CONFIG" ] || KCONFIG_CONFIG=".config"
+if [ -f "$KCONFIG_CONFIG" ]; then
+echo "# consulting KCONFIG_CONFIG: $KCONFIG_CONFIG"
+grep -q "CONFIG_DYNAMIC_DEBUG=y" $KCONFIG_CONFIG ; LACK_DD_BUILTIN=$?
+grep -q "CONFIG_TEST_DYNAMIC_DEBUG=m" $KCONFIG_CONFIG ; LACK_TMOD=$?
+grep -q "CONFIG_TEST_DYNAMIC_DEBUG_SUBMOD=m" $KCONFIG_CONFIG ; 
LACK_TMOD_SUBMOD=$?
+if [ $V -eq 1 ]; then
+   echo LACK_DD_BUILTIN: $LACK_DD_BUILTIN
+   echo LACK_TMOD: $LACK_TMOD
+   echo LACK_TMOD_SUBMOD: $LACK_TMOD_SUBMOD
+fi
+else
+LACK_DD_BUILTIN=0
+LACK_TMOD=0
+LACK_TMOD_SUBMOD=0
+fi
+
  function vx () {
  echo $1 > /sys/module/dynamic_debug/parameters/verbose
  }
@@ -192,6 +216,10 @@ function check_err_msg() {
  
  function basic_tests {

  echo -e "${GREEN}# BASIC_TESTS ${NC}"
+if [ $LACK_DD_BUILTIN -eq 1 ]; then
+   echo "SKIP"
+   return
+fi
  ddcmd =_ # zero everything (except class'd sites)
  check_match_ct =p 0
  # there are several main's :-/
@@ -214,6 +242,10 @@ EOF
  
  function comma_terminator_tests {

  echo -e "${GREEN}# COMMA_TERMINATOR_TESTS ${NC}"
+if [ $LACK_DD_BUILTIN -eq 1 ]; then
+   echo "SKIP"
+   return
+fi
  # try combos of spaces & commas
  check_match_ct '\[params\]' 4 -r
  ddcmd module,params,=_# commas as spaces
@@ -226,9 +258,12 @@ function comma_terminator_tests {
  ddcmd =_
  }
  
-

  function test_percent_splitting {
  echo -e "${GREEN}# TEST_PERCENT_SPLITTING - multi-command splitting on % 
${NC}"
+if [ $LACK_TMOD -eq 1 ]; then
+   echo "SKIP"
+   return
+fi
  ifrmmod test_dynamic_debug_submod
  ifrmmod test_dynamic_debug
  ddcmd =_
@@ -248,6 +283,14 @@ function test_percent_splitting {
  
  function test_mod_submod {

  echo -e "${GREEN}# TEST_MOD_SUBMOD ${NC}"
+if [ $LACK_TMOD -eq 1 ]; then
+   echo "SKIP"
+   return
+fi
+if [ $LACK_TMOD_SUBMOD -eq 1 ]; then
+   echo "SKIP"
+   return
+fi
  ifrmmod test_dynamic_debug_submod
  ifrmmod test_dynamic_debug
  ddcmd =_


Re: [PATCH v3 0/6] drm/ci: uprev mesa/IGT and generate testlist

2024-06-06 Thread Helen Koike




On 28/05/2024 23:40, Vignesh Raman wrote:

Uprev mesa and IGT to the latest version and stop vendoring the
testlist into the kernel. Instead, use the testlist from the
IGT build to ensure we do not miss renamed or newly added tests.
Update the xfails with the latest testlist run.

Add farm variable and update device type variable.

https://gitlab.freedesktop.org/vigneshraman/linux/-/pipelines/1187556

Vignesh Raman (6):
   drm/ci: uprev mesa version
   drm/ci: add farm variable
   drm/ci: generate testlist from build
   drm/ci: uprev IGT
   drm/ci: skip driver specific tests
   drm/ci: update xfails for the new testlist

  drivers/gpu/drm/ci/build-igt.sh   |   41 +-
  drivers/gpu/drm/ci/build.sh   |6 +-
  drivers/gpu/drm/ci/container.yml  |   12 +-
  drivers/gpu/drm/ci/gitlab-ci.yml  |   46 +-
  drivers/gpu/drm/ci/igt_runner.sh  |9 +-
  drivers/gpu/drm/ci/image-tags.yml |2 +-
  drivers/gpu/drm/ci/lava-submit.sh |4 +-
  drivers/gpu/drm/ci/test.yml   |   17 +-
  drivers/gpu/drm/ci/testlist.txt   | 2761 -
  .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt |   41 +-
  .../drm/ci/xfails/amdgpu-stoney-flakes.txt|7 +
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt |   33 +-
  drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |   31 +
  .../gpu/drm/ci/xfails/i915-amly-flakes.txt|9 +
  drivers/gpu/drm/ci/xfails/i915-amly-skips.txt |   22 +-
  drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  |   46 +-
  drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |6 +
  drivers/gpu/drm/ci/xfails/i915-apl-skips.txt  |   26 +-
  drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  |   38 +
  drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt |6 +
  drivers/gpu/drm/ci/xfails/i915-cml-skips.txt  |   23 +
  drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  |   41 +-
  drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt |7 +
  drivers/gpu/drm/ci/xfails/i915-glk-skips.txt  |   26 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |   42 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt |7 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt  |   36 +-
  drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |   77 +-
  drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt  |   28 +-
  drivers/gpu/drm/ci/xfails/i915-whl-fails.txt  |   63 +-
  drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |6 +
  drivers/gpu/drm/ci/xfails/i915-whl-skips.txt  |   22 +-
  .../drm/ci/xfails/mediatek-mt8173-fails.txt   |   30 +-
  .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |   11 +
  .../drm/ci/xfails/mediatek-mt8173-skips.txt   |   16 +
  .../drm/ci/xfails/mediatek-mt8183-fails.txt   |   21 +-
  .../drm/ci/xfails/mediatek-mt8183-skips.txt   |   18 +
  .../gpu/drm/ci/xfails/meson-g12b-fails.txt|   24 +-
  .../gpu/drm/ci/xfails/meson-g12b-skips.txt|   18 +
  .../gpu/drm/ci/xfails/msm-apq8016-fails.txt   |   12 +-
  .../gpu/drm/ci/xfails/msm-apq8016-skips.txt   |   15 +
  .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |7 +
  .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |6 +
  .../gpu/drm/ci/xfails/msm-apq8096-skips.txt   |   26 +-
  .../msm-sc7180-trogdor-kingoftown-fails.txt   |  175 +-
  .../msm-sc7180-trogdor-kingoftown-flakes.txt  |8 +
  .../msm-sc7180-trogdor-kingoftown-skips.txt   |   19 +
  ...sm-sc7180-trogdor-lazor-limozeen-fails.txt |  175 +-
  ...m-sc7180-trogdor-lazor-limozeen-flakes.txt |6 +
  ...sm-sc7180-trogdor-lazor-limozeen-skips.txt |   16 +
  .../gpu/drm/ci/xfails/msm-sdm845-fails.txt|   38 +-
  .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   |   25 +-
  .../gpu/drm/ci/xfails/msm-sdm845-skips.txt|   19 +
  .../drm/ci/xfails/rockchip-rk3288-fails.txt   |   62 +-
  .../drm/ci/xfails/rockchip-rk3288-skips.txt   |   21 +-
  .../drm/ci/xfails/rockchip-rk3399-fails.txt   |   83 +-
  .../drm/ci/xfails/rockchip-rk3399-flakes.txt  |   13 +-
  .../drm/ci/xfails/rockchip-rk3399-skips.txt   |   19 +
  drivers/gpu/drm/ci/xfails/update-xfails.py|4 +-
  .../drm/ci/xfails/virtio_gpu-none-fails.txt   |   94 +-
  .../drm/ci/xfails/virtio_gpu-none-skips.txt   |   20 +-
  61 files changed, 1348 insertions(+), 3194 deletions(-)
  delete mode 100644 drivers/gpu/drm/ci/testlist.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt
  create mode 100644 

Re: [PATCH v3 6/6] drm/ci: update xfails for the new testlist

2024-06-06 Thread Helen Koike




On 29/05/2024 06:49, Vignesh Raman wrote:

Hi Dmitry,

On 29/05/24 13:30, Dmitry Baryshkov wrote:

On Wed, May 29, 2024 at 08:10:49AM +0530, Vignesh Raman wrote:

Now the testlist is used from IGT build, so update
xfails with the new testlist.

Set the timeout of all i915 jobs to 1h30m since some jobs
takes more than 1 hour to complete.

Reviewed-by: Dmitry Baryshkov 


This had an explicit '# msm testlist' at the end. Please don't drop
important parts of tags. I didn't review fails/flakes for other
platforms.


Sorry I missed it. Will ask Helen to add the tag back when she merges this.


I'll add it

Acked-by: Helen Koike 

Thanks.
Helen



Regards,
Vignesh




Signed-off-by: Vignesh Raman 
---

v2:
   - Set the timeout of all i915 jobs to 1h30m and updated 
expectations file.


v3:
   - Add a link to the email reporting the flaky tests to the 
maintainers.


---
  drivers/gpu/drm/ci/test.yml   |   6 +-
  .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt |  41 ++--
  .../drm/ci/xfails/amdgpu-stoney-flakes.txt    |   7 +
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt |  18 ++
  drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |  31 
  .../gpu/drm/ci/xfails/i915-amly-flakes.txt    |   9 +
  drivers/gpu/drm/ci/xfails/i915-amly-skips.txt |  11 ++
  drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  |  46 +++--
  drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |   6 +
  drivers/gpu/drm/ci/xfails/i915-apl-skips.txt  |  15 ++
  drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  |  38 
  drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt |   6 +
  drivers/gpu/drm/ci/xfails/i915-cml-skips.txt  |  14 ++
  drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  |  41 +++-
  drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt |   7 +
  drivers/gpu/drm/ci/xfails/i915-glk-skips.txt  |  15 ++
  drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |  42 ++---
  drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt |   7 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt  |  25 +++
  drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |  77 
  drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt  |  17 ++
  drivers/gpu/drm/ci/xfails/i915-whl-fails.txt  |  63 ---
  drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |   6 +
  drivers/gpu/drm/ci/xfails/i915-whl-skips.txt  |  11 ++
  .../drm/ci/xfails/mediatek-mt8173-fails.txt   |  30 ++-
  .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |  11 ++
  .../drm/ci/xfails/mediatek-mt8173-skips.txt   |   4 +
  .../drm/ci/xfails/mediatek-mt8183-fails.txt   |  21 +--
  .../drm/ci/xfails/mediatek-mt8183-skips.txt   |   4 +
  .../gpu/drm/ci/xfails/meson-g12b-fails.txt    |  24 +--
  .../gpu/drm/ci/xfails/meson-g12b-skips.txt    |   4 +
  .../gpu/drm/ci/xfails/msm-apq8016-fails.txt   |  12 +-
  .../gpu/drm/ci/xfails/msm-apq8016-skips.txt   |   4 +
  .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |   7 +
  .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |   6 +
  .../gpu/drm/ci/xfails/msm-apq8096-skips.txt   |  12 ++
  .../msm-sc7180-trogdor-kingoftown-fails.txt   | 175 +-
  .../msm-sc7180-trogdor-kingoftown-flakes.txt  |   8 +
  .../msm-sc7180-trogdor-kingoftown-skips.txt   |   7 +
  ...sm-sc7180-trogdor-lazor-limozeen-fails.txt | 175 +-
  ...m-sc7180-trogdor-lazor-limozeen-flakes.txt |   6 +
  ...sm-sc7180-trogdor-lazor-limozeen-skips.txt |   4 +
  .../gpu/drm/ci/xfails/msm-sdm845-fails.txt    |  38 +---
  .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   |  25 ++-
  .../gpu/drm/ci/xfails/msm-sdm845-skips.txt    |   7 +
  .../drm/ci/xfails/rockchip-rk3288-fails.txt   |  62 +--
  .../drm/ci/xfails/rockchip-rk3288-skips.txt   |   4 +
  .../drm/ci/xfails/rockchip-rk3399-fails.txt   |  83 +
  .../drm/ci/xfails/rockchip-rk3399-flakes.txt  |  13 +-
  .../drm/ci/xfails/rockchip-rk3399-skips.txt   |   4 +
  drivers/gpu/drm/ci/xfails/update-xfails.py    |   4 +-
  .../drm/ci/xfails/virtio_gpu-none-fails.txt   |  94 +++---
  .../drm/ci/xfails/virtio_gpu-none-skips.txt   |   4 +
  53 files changed, 1023 insertions(+), 388 deletions(-)
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
  create mode 100644 
drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt

  create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
  create mode 100644 
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-flakes.txt
  create mode 100644 
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-flakes.txt


diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml
index 2615f67f6aa3..322cce714657 100644
--- a/drivers/gpu/drm/ci/test.yml
+++ b/drivers/gpu/drm/ci/test.yml
@@ -191,6 +191,7 @@ rockchip:rk3399:
    extends:
  - .lava-igt:x86_64
    stage: i915
+  timeout: "1h30m"
   

Re: [PATCH v3 5/6] drm/ci: skip driver specific tests

2024-06-06 Thread Helen Koike




On 28/05/2024 23:40, Vignesh Raman wrote:

Skip driver specific tests and skip kms tests for
panfrost driver since it is not a kms driver.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Vignesh Raman 


Acked-by: Helen Koike 



---

v2:
   - Skip xe tests for amdgpu and virtio.

v3:
   - No changes.

---
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt   | 15 ++-
  drivers/gpu/drm/ci/xfails/i915-amly-skips.txt   | 11 ++-
  drivers/gpu/drm/ci/xfails/i915-apl-skips.txt| 11 ++-
  drivers/gpu/drm/ci/xfails/i915-cml-skips.txt|  9 +
  drivers/gpu/drm/ci/xfails/i915-glk-skips.txt| 11 ++-
  drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt| 11 ++-
  drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt| 11 ++-
  drivers/gpu/drm/ci/xfails/i915-whl-skips.txt| 11 ++-
  .../gpu/drm/ci/xfails/mediatek-mt8173-skips.txt | 12 
  .../gpu/drm/ci/xfails/mediatek-mt8183-skips.txt | 14 ++
  drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt  | 14 ++
  drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt | 11 +++
  drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt | 14 +-
  .../msm-sc7180-trogdor-kingoftown-skips.txt | 12 
  .../msm-sc7180-trogdor-lazor-limozeen-skips.txt | 12 
  drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt  | 12 
  .../gpu/drm/ci/xfails/rockchip-rk3288-skips.txt | 17 -
  .../gpu/drm/ci/xfails/rockchip-rk3399-skips.txt | 15 +++
  .../gpu/drm/ci/xfails/virtio_gpu-none-skips.txt | 16 +++-
  19 files changed, 229 insertions(+), 10 deletions(-)
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt

diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
index e2c538a0f954..21d26d5e67c2 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
@@ -1,2 +1,15 @@
  # Suspend to RAM seems to be broken on this machine
-.*suspend.*
\ No newline at end of file
+.*suspend.*
+
+# Skip driver specific tests
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
+
+# Skip intel specific tests
+gem_.*
+i915_.*
+xe_.*
diff --git a/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
index fe55540a3f9a..1e80987cf584 100644
--- a/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
@@ -1,4 +1,13 @@
  # Suspend to RAM seems to be broken on this machine
  .*suspend.*
  # This is generating kernel oops with divide error
-kms_plane_scaling@invalid-parameters
\ No newline at end of file
+kms_plane_scaling@invalid-parameters
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
diff --git a/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
index 3430b215c06e..0104f2ffa8ba 100644
--- a/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
@@ -3,4 +3,13 @@
  # This is generating kernel oops with divide error
  kms_plane_scaling@invalid-parameters
  # This is cascading issues
-kms_3d
\ No newline at end of file
+kms_3d
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
diff --git a/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
index 6d3d7ddc377f..398ebe163ad0 100644
--- a/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
@@ -1,2 +1,11 @@
  # This is generating kernel oops with divide error
  kms_plane_scaling@invalid-parameters
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
diff --git a/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
index 4c7d00ce14bc..4f5419d62170 100644
--- a/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
@@ -2,4 +2,13 @@
  .*suspend.*
  
  # This is generating kernel oops with divide error

-kms_plane_scaling@invalid-parameters
\ No newline at end of file
+kms_plane_scaling@invalid-parameters
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
diff --git a/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
index 4c7d00ce14bc..4f5419d62170 100644
--- a/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
@@ -2,4 +2,13 @@
  .*suspend.*
  
  # This is generating kernel oops with divide error

-kms_plane_scaling@invalid-parameters

Re: [PATCH v3 4/6] drm/ci: uprev IGT

2024-06-06 Thread Helen Koike




On 28/05/2024 23:40, Vignesh Raman wrote:

test-list.txt and test-list-full.txt are not generated for
cross-builds and they are required by drm-ci for testing
arm32 targets. This is fixed in igt-gpu-tools. So uprev
IGT to include the commit which fixes this issue. Also
disable building xe driver tests for non-intel platforms.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Vignesh Raman 


Acked-by: Helen Koike 



---

v2:
   - Split IGT uprev to seperate patch.

v3:
   - No changes.

---
  drivers/gpu/drm/ci/build-igt.sh  | 4 
  drivers/gpu/drm/ci/gitlab-ci.yml | 2 +-
  2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ci/build-igt.sh b/drivers/gpu/drm/ci/build-igt.sh
index b7d2a49a6db3..eddb5f782a5e 100644
--- a/drivers/gpu/drm/ci/build-igt.sh
+++ b/drivers/gpu/drm/ci/build-igt.sh
@@ -45,6 +45,10 @@ MESON_OPTIONS="-Doverlay=disabled\
 -Dlibunwind=enabled   \
 -Dprefix=/igt"
  
+if [[ "$KERNEL_ARCH" = "arm64" ]] || [[ "$KERNEL_ARCH" = "arm" ]]; then

+MESON_OPTIONS="$MESON_OPTIONS -Dxe_driver=disabled"
+fi
+
  mkdir -p /igt
  meson build $MESON_OPTIONS $EXTRA_MESON_ARGS
  ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml
index 8f32de63d92e..1b29c3b6406b 100644
--- a/drivers/gpu/drm/ci/gitlab-ci.yml
+++ b/drivers/gpu/drm/ci/gitlab-ci.yml
@@ -5,7 +5,7 @@ variables:
UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm
TARGET_BRANCH: drm-next
  
-  IGT_VERSION: d2af13d9f5be5ce23d996e4afd3e45990f5ab977

+  IGT_VERSION: 0df7b9b97f9da0e364f5ee30fe331004b8c86b56
  
DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/anholt/deqp-runner.git

DEQP_RUNNER_GIT_TAG: v0.15.0


Re: [PATCH v3 2/6] drm/ci: add farm variable

2024-06-06 Thread Helen Koike




On 28/05/2024 23:40, Vignesh Raman wrote:

Mesa uses structured logs for logging and debug purpose,
https://mesa.pages.freedesktop.org/-/mesa/-/jobs/59165650/artifacts/results/job_detail.json

Since drm-ci uses the mesa scripts, add the farm variable
and update the device type for missing jobs.

Signed-off-by: Vignesh Raman 


Acked-by: Helen Koike 



---

v3:
   - New commit to add farm variable and update device type variable.

---
  drivers/gpu/drm/ci/test.yml | 11 +--
  1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml
index 8bc63912fddb..2615f67f6aa3 100644
--- a/drivers/gpu/drm/ci/test.yml
+++ b/drivers/gpu/drm/ci/test.yml
@@ -24,6 +24,7 @@
variables:
  HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
  DEBIAN_ARCH: "armhf"
+FARM: collabora
dependencies:
  - testing:arm32
needs:
@@ -39,6 +40,7 @@
variables:
  HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
  DEBIAN_ARCH: "arm64"
+FARM: collabora
dependencies:
  - testing:arm64
needs:
@@ -54,6 +56,7 @@
variables:
  HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
  DEBIAN_ARCH: "amd64"
+FARM: collabora
dependencies:
  - testing:x86_64
needs:
@@ -74,6 +77,7 @@
  S3_ARTIFACT_NAME: "arm64/kernel-files"
  BM_KERNEL: https://${PIPELINE_ARTIFACTS_BASE}/arm64/Image.gz
  BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 $BM_KERNEL_EXTRA_ARGS 
root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init $BM_KERNELARGS"
+FARM: google
needs:
  - debian/arm64_test
  - job: testing:arm64
@@ -116,8 +120,9 @@ msm:apq8016:
  - .baremetal-igt-arm64
stage: msm
variables:
+DEVICE_TYPE: apq8016-sbc-usb-host
  DRIVER_NAME: msm
-BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8016-sbc-usb-host.dtb
+BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/${DEVICE_TYPE}.dtb
  GPU_VERSION: apq8016
  # disabling unused clocks congests with the MDSS runtime PM trying to
  # disable those clocks and causes boot to fail.
@@ -132,9 +137,10 @@ msm:apq8096:
  - .baremetal-igt-arm64
stage: msm
variables:
+DEVICE_TYPE: apq8096-db820c
  DRIVER_NAME: msm
  BM_KERNEL_EXTRA_ARGS: maxcpus=2
-BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8096-db820c.dtb
+BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/${DEVICE_TYPE}.dtb
  GPU_VERSION: apq8096
  RUNNER_TAG: google-freedreno-db820c
script:
@@ -146,6 +152,7 @@ msm:sdm845:
stage: msm
parallel: 6
variables:
+DEVICE_TYPE: sdm845-cheza-r3
  DRIVER_NAME: msm
  BM_KERNEL: https://${PIPELINE_ARTIFACTS_BASE}/arm64/cheza-kernel
  GPU_VERSION: sdm845


Re: [PATCH v3 1/6] drm/ci: uprev mesa version

2024-06-06 Thread Helen Koike




On 28/05/2024 23:40, Vignesh Raman wrote:

zlib.net is not allowing tarball download anymore and results
in below error in kernel+rootfs_arm32 container build,
urllib.error.HTTPError: HTTP Error 403: Forbidden
urllib.error.HTTPError: HTTP Error 415: Unsupported Media Type

Uprev mesa to latest version which includes a fix for this issue.
https://gitlab.freedesktop.org/mesa/mesa/-/commit/908f444e

Use id_tokens for JWT authentication. Since s3 bucket is migrated to
mesa-rootfs, update the variables accordingly. Also copy helper scripts
to install, so that the ci jobs can use these scripts for logging.

Signed-off-by: Vignesh Raman 


Acked-by: Helen Koike 


---

v2:
   - Uprev to recent version and use id_tokens for JWT authentication

v3:
   - Move adding farm variable and updating device type variable to seperate 
commit

---
  drivers/gpu/drm/ci/build-igt.sh   |  2 +-
  drivers/gpu/drm/ci/build.sh   |  6 +++--
  drivers/gpu/drm/ci/container.yml  | 12 +++--
  drivers/gpu/drm/ci/gitlab-ci.yml  | 44 +--
  drivers/gpu/drm/ci/image-tags.yml |  2 +-
  drivers/gpu/drm/ci/lava-submit.sh |  4 +--
  6 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/ci/build-igt.sh b/drivers/gpu/drm/ci/build-igt.sh
index 500fa4f5c30a..7859554756c4 100644
--- a/drivers/gpu/drm/ci/build-igt.sh
+++ b/drivers/gpu/drm/ci/build-igt.sh
@@ -32,4 +32,4 @@ 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}
+ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} 
https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME}
diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh
index 106f2d40d222..a67871fdcd3f 100644
--- a/drivers/gpu/drm/ci/build.sh
+++ b/drivers/gpu/drm/ci/build.sh
@@ -128,6 +128,7 @@ fi
  # Pass needed files to the test stage
  mkdir -p install
  cp -rfv .gitlab-ci/* install/.
+cp -rfv ci/*  install/.
  cp -rfv install/common install/ci-common
  cp -rfv drivers/gpu/drm/ci/* install/.
  
@@ -141,14 +142,15 @@ if [[ "$UPLOAD_TO_MINIO" = "1" ]]; then

  FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)"
  fi
  
+ls -l "${S3_JWT_FILE}"

  for f in $FILES_TO_UPLOAD; do
-ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" /lava-files/$f \
+ci-fairy s3cp --token-file "${S3_JWT_FILE}" /lava-files/$f \
  https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/$f
  done
  
  S3_ARTIFACT_NAME="kernel-files.tar.zst"

  tar --zstd -cf $S3_ARTIFACT_NAME install
-ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} 
https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/${S3_ARTIFACT_NAME}
+ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} 
https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/${S3_ARTIFACT_NAME}
  
  echo "Download vmlinux.xz from https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/vmlinux.xz;

  fi
diff --git a/drivers/gpu/drm/ci/container.yml b/drivers/gpu/drm/ci/container.yml
index 9764e7921a4f..d6edf3635b23 100644
--- a/drivers/gpu/drm/ci/container.yml
+++ b/drivers/gpu/drm/ci/container.yml
@@ -36,15 +36,15 @@ debian/android_build:
rules:
  - when: never
  
-debian/x86_64_test-android:

+.debian/x86_64_test-android:
rules:
  - when: never
  
-windows_build_vs2019:

+windows_build_msvc:
rules:
  - when: never
  
-windows_test_vs2019:

+windows_test_msvc:
rules:
  - when: never
  
@@ -56,10 +56,6 @@ rustfmt:

 rules:
  - when: never
  
-windows_vs2019:

-   rules:
-- when: never
-
-clang-format:
+windows_msvc:
 rules:
  - when: never
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml
index 084e3ff8e3f4..8f32de63d92e 100644
--- a/drivers/gpu/drm/ci/gitlab-ci.yml
+++ b/drivers/gpu/drm/ci/gitlab-ci.yml
@@ -1,6 +1,6 @@
  variables:
DRM_CI_PROJECT_PATH:  mesa/mesa
-  DRM_CI_COMMIT_SHA:  
9d162de9a05155e1c4041857a5848842749164cf
+  DRM_CI_COMMIT_SHA:  
e2b9c5a9e3e4f9b532067af8022eaef8d6fc6c00
  
UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm

TARGET_BRANCH: drm-next
@@ -19,33 +19,47 @@ variables:
bash download-git-cache.sh
rm download-git-cache.sh
set +o xtrace
+  S3_JWT_FILE: /s3_jwt
S3_HOST: s3.freedesktop.org
+  # This bucket is used to fetch the kernel image
+  S3_KERNEL_BUCKET: mesa-rootfs
+  # Bucket for git cache
+  S3_GITCACHE_BUCKET: git-cache
+  # Bucket for the pipeline artifacts pushed to S3
+  S3_ARTIFACTS_BUCKET: artifacts
# per-pipeline artifact storage on Min

Re: [PATCH v1 5/5] drm/ci: update xfails for the new testlist

2024-04-30 Thread Helen Koike




On 30/04/2024 06:11, Vignesh Raman wrote:

Now the testlist is used from IGT build, so update
xfails with the new testlist.

Signed-off-by: Vignesh Raman 
---
  .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 47 +++
  .../drm/ci/xfails/amdgpu-stoney-flakes.txt|  8 +-
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt | 15 
  drivers/gpu/drm/ci/xfails/i915-amly-fails.txt | 22 -
  .../gpu/drm/ci/xfails/i915-amly-flakes.txt|  8 ++
  drivers/gpu/drm/ci/xfails/i915-amly-skips.txt |  8 ++
  drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  | 45 +-
  drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |  5 ++
  drivers/gpu/drm/ci/xfails/i915-apl-skips.txt  | 12 +++
  drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  | 26 +-
  drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt |  6 ++
  drivers/gpu/drm/ci/xfails/i915-cml-skips.txt  |  8 ++
  drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  | 28 +--
  drivers/gpu/drm/ci/xfails/i915-glk-skips.txt  | 12 +++
  drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  | 39 -
  drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 10 ++-
  drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt  | 21 +
  drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  | 75 +
  drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt  | 13 +++
  drivers/gpu/drm/ci/xfails/i915-whl-fails.txt  | 46 +--
  drivers/gpu/drm/ci/xfails/i915-whl-skips.txt  |  8 ++
  .../drm/ci/xfails/mediatek-mt8173-fails.txt   | 47 +++
  .../drm/ci/xfails/mediatek-mt8183-fails.txt   | 17 +---
  .../drm/ci/xfails/mediatek-mt8183-flakes.txt  |  5 ++
  .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 20 +
  .../gpu/drm/ci/xfails/meson-g12b-flakes.txt   |  5 ++
  .../gpu/drm/ci/xfails/msm-apq8016-fails.txt   | 26 ++
  .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt  |  5 ++
  .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |  5 +-
  .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |  5 ++
  .../gpu/drm/ci/xfails/msm-apq8096-skips.txt   | 67 +++
  .../msm-sc7180-trogdor-kingoftown-fails.txt   | 34 
  .../msm-sc7180-trogdor-kingoftown-flakes.txt  |  5 ++
  ...sm-sc7180-trogdor-lazor-limozeen-fails.txt | 34 
  ...m-sc7180-trogdor-lazor-limozeen-flakes.txt |  5 ++
  .../gpu/drm/ci/xfails/msm-sdm845-fails.txt| 75 -
  .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   | 26 ++
  .../drm/ci/xfails/rockchip-rk3288-fails.txt   | 54 
  .../drm/ci/xfails/rockchip-rk3399-fails.txt   | 80 ++
  .../drm/ci/xfails/rockchip-rk3399-flakes.txt  |  7 --
  .../drm/ci/xfails/virtio_gpu-none-fails.txt   | 82 +--
  .../drm/ci/xfails/virtio_gpu-none-skips.txt   |  3 +
  42 files changed, 574 insertions(+), 495 deletions(-)
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
  create mode 100644 
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-flakes.txt
  create mode 100644 
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-flakes.txt
  delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txt
  delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txt

diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
index ea87dc46bc2b..a48df7880ec5 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
@@ -1,27 +1,46 @@
-kms_addfb_basic@bad-pitch-65536,Fail
+amdgpu/amd_assr@assr-links,Fail
+amdgpu/amd_assr@assr-links-dpms,Fail
+amdgpu/amd_deadlock@amdgpu-deadlock-compute,Timeout
+amdgpu/amd_ilr@ilr-policy,Fail
+amdgpu/amd_mall@static-screen,Crash
+amdgpu/amd_mode_switch@mode-switch-first-last-pipe-2,Crash
+amdgpu/amd_pci_unplug@amdgpu_hotunplug_simple,Fail
+amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_cs,Fail
+amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_exported_bo,Fail
+amdgpu/amd_plane@mpo-pan-nv12,Fail
+amdgpu/amd_plane@mpo-pan-p010,Fail
+amdgpu/amd_plane@mpo-pan-rgb,Crash
+amdgpu/amd_plane@mpo-scale-nv12,Fail
+amdgpu/amd_plane@mpo-scale-p010,Fail
+amdgpu/amd_plane@mpo-scale-rgb,Crash
+amdgpu/amd_plane@mpo-swizzle-toggle,Fail
+amdgpu/amd_uvd_dec@amdgpu_uvd_decode,Fail
+amdgpu/amd_vce_dec@amdgpu_cs_vce_destroy,Fail
+amdgpu/amd_vce_dec@amdgpu_cs_vce_encode,Fail
+amdgpu/amd_vm@amdgpu-vm-unaligned-map,Fail
+amdgpu/amd_vrr_range@freesync-parsing,Timeout
+device_reset@unbind-cold-reset-rebind,Fail
+dumb_buffer@invalid-bpp,Fail
  kms_addfb_basic@bo-too-small,Fail
  kms_addfb_basic@too-high,Fail
  kms_async_flips@async-flip-with-page-flip-events,Fail

Re: [PATCH v1 4/5] drm/ci: skip driver specific tests

2024-04-30 Thread Helen Koike




On 30/04/2024 06:11, Vignesh Raman wrote:

Skip driver specific tests and skip kms tests for
panfrost driver since it is not a kms driver.

Signed-off-by: Vignesh Raman 
---
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt   | 14 +-
  drivers/gpu/drm/ci/xfails/i915-amly-skips.txt   | 14 +-
  drivers/gpu/drm/ci/xfails/i915-apl-skips.txt| 14 +-
  drivers/gpu/drm/ci/xfails/i915-cml-skips.txt| 12 
  drivers/gpu/drm/ci/xfails/i915-glk-skips.txt| 14 +-
  drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt| 14 +-
  drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt| 14 +-
  drivers/gpu/drm/ci/xfails/i915-whl-skips.txt| 14 +-
  .../gpu/drm/ci/xfails/mediatek-mt8173-skips.txt | 12 
  .../gpu/drm/ci/xfails/mediatek-mt8183-skips.txt | 14 ++
  drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt  | 14 ++
  drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt | 14 ++
  drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt | 14 +-
  .../msm-sc7180-trogdor-kingoftown-skips.txt | 15 +++
  .../msm-sc7180-trogdor-lazor-limozeen-skips.txt | 15 +++
  drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt  | 15 +++
  .../gpu/drm/ci/xfails/rockchip-rk3288-skips.txt | 17 -
  .../gpu/drm/ci/xfails/rockchip-rk3399-skips.txt | 15 +++
  .../gpu/drm/ci/xfails/virtio_gpu-none-skips.txt | 15 ++-
  19 files changed, 260 insertions(+), 10 deletions(-)
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt
  create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt

diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
index e2c538a0f954..70e2f925d06f 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
@@ -1,2 +1,14 @@
  # Suspend to RAM seems to be broken on this machine
-.*suspend.*
\ No newline at end of file
+.*suspend.*
+
+# Skip driver specific tests
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
+
+# Skip intel specific tests
+gem_.*
+i915_.*
diff --git a/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
index fe55540a3f9a..59f8acfaa5ba 100644
--- a/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
@@ -1,4 +1,16 @@
  # Suspend to RAM seems to be broken on this machine
  .*suspend.*
  # This is generating kernel oops with divide error
-kms_plane_scaling@invalid-parameters
\ No newline at end of file
+kms_plane_scaling@invalid-parameters
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
+
+# GEM tests takes ~1000 hours, so skip it
+gem_.*
diff --git a/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
index 3430b215c06e..d97bc038b63a 100644
--- a/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
@@ -3,4 +3,16 @@
  # This is generating kernel oops with divide error
  kms_plane_scaling@invalid-parameters
  # This is cascading issues
-kms_3d
\ No newline at end of file
+kms_3d
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
+
+# GEM tests takes ~1000 hours, so skip it
+gem_.*
diff --git a/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
index 6d3d7ddc377f..92c0ffee8283 100644
--- a/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
@@ -1,2 +1,14 @@
  # This is generating kernel oops with divide error
  kms_plane_scaling@invalid-parameters
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
+
+# GEM tests takes ~1000 hours, so skip it
+gem_.*
diff --git a/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
index 4c7d00ce14bc..a168722caf13 100644
--- a/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
@@ -2,4 +2,16 @@
  .*suspend.*
  
  # This is generating kernel oops with divide error

-kms_plane_scaling@invalid-parameters
\ No newline at end of file
+kms_plane_scaling@invalid-parameters
+
+# Skip driver specific tests
+^amdgpu.*
+msm_.*
+nouveau_.*
+panfrost_.*
+^v3d.*
+^vc4.*
+^vmwgfx*
+
+# GEM tests takes ~1000 hours, so skip it
+gem_.*
diff --git a/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt 
b/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
index 4c7d00ce14bc..a168722caf13 100644
--- a/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
+++ b/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
@@ -2,4 +2,16 @@
  

Re: [PATCH v1 3/5] drm/ci: build virtual GPU driver as module

2024-04-30 Thread Helen Koike




On 30/04/2024 06:11, Vignesh Raman wrote:

With latest IGT, the tests tries to load the module and it
fails. So build the virtual GPU driver for virtio as module.

Signed-off-by: Vignesh Raman 


Acked-by: Helen Koike 


---
  drivers/gpu/drm/ci/build.sh   | 1 -
  drivers/gpu/drm/ci/igt_runner.sh  | 6 +++---
  drivers/gpu/drm/ci/image-tags.yml | 4 ++--
  drivers/gpu/drm/ci/test.yml   | 1 +
  drivers/gpu/drm/ci/x86_64.config  | 2 +-
  5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh
index 8a3baa003904..95493df9cdc2 100644
--- a/drivers/gpu/drm/ci/build.sh
+++ b/drivers/gpu/drm/ci/build.sh
@@ -156,7 +156,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/igt_runner.sh b/drivers/gpu/drm/ci/igt_runner.sh

index 20026612a9bd..55532f79fbdc 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|virtio_gpu)
  # 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 d8f72b82c938..fd1cb6061166 100644
--- a/drivers/gpu/drm/ci/image-tags.yml
+++ b/drivers/gpu/drm/ci/image-tags.yml
@@ -4,9 +4,9 @@ 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-04-22-virtio"
  
-   KERNEL_ROOTFS_TAG: "2023-10-06-amd"

+   KERNEL_ROOTFS_TAG: "2024-04-22-virtio"
 PKG_REPO_REV: "3cc12a2a"
  
 DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"

diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml
index 612c9ede3507..864ac3809d84 100644
--- a/drivers/gpu/drm/ci/test.yml
+++ b/drivers/gpu/drm/ci/test.yml
@@ -350,6 +350,7 @@ virtio_gpu:none:
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
diff --git a/drivers/gpu/drm/ci/x86_64.config b/drivers/gpu/drm/ci/x86_64.config
index 1cbd49a5b23a..78479f063e8e 100644
--- a/drivers/gpu/drm/ci/x86_64.config
+++ b/drivers/gpu/drm/ci/x86_64.config
@@ -91,7 +91,7 @@ CONFIG_KVM=y
  CONFIG_KVM_GUEST=y
  CONFIG_VIRT_DRIVERS=y
  CONFIG_VIRTIO_FS=y
-CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_DRM_VIRTIO_GPU=m
  CONFIG_SERIAL_8250_CONSOLE=y
  CONFIG_VIRTIO_NET=y
  CONFIG_VIRTIO_CONSOLE=y


Re: [PATCH v1 1/5] drm/ci: uprev mesa version

2024-04-30 Thread Helen Koike




On 30/04/2024 06:11, Vignesh Raman wrote:

zlib.net is not allowing tarball download anymore and results
in below error in kernel+rootfs_arm32 container build,
urllib.error.HTTPError: HTTP Error 403: Forbidden
urllib.error.HTTPError: HTTP Error 415: Unsupported Media Type

Uprev mesa to latest version which includes a fix for this issue.
https://gitlab.freedesktop.org/mesa/mesa/-/commit/908f444e

Also copy helper scripts to install, so that the ci jobs can
use these scripts for logging.

Signed-off-by: Vignesh Raman 


Acked-by: Helen Koike 


---
  drivers/gpu/drm/ci/build.sh   |  1 +
  drivers/gpu/drm/ci/container.yml  | 12 
  drivers/gpu/drm/ci/gitlab-ci.yml  | 11 ---
  drivers/gpu/drm/ci/image-tags.yml |  3 ++-
  drivers/gpu/drm/ci/test.yml   |  2 ++
  5 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh
index 106f2d40d222..8a3baa003904 100644
--- a/drivers/gpu/drm/ci/build.sh
+++ b/drivers/gpu/drm/ci/build.sh
@@ -128,6 +128,7 @@ fi
  # Pass needed files to the test stage
  mkdir -p install
  cp -rfv .gitlab-ci/* install/.
+cp -rfv ci/*  install/.
  cp -rfv install/common install/ci-common
  cp -rfv drivers/gpu/drm/ci/* install/.
  
diff --git a/drivers/gpu/drm/ci/container.yml b/drivers/gpu/drm/ci/container.yml

index 9764e7921a4f..d6edf3635b23 100644
--- a/drivers/gpu/drm/ci/container.yml
+++ b/drivers/gpu/drm/ci/container.yml
@@ -36,15 +36,15 @@ debian/android_build:
rules:
  - when: never
  
-debian/x86_64_test-android:

+.debian/x86_64_test-android:
rules:
  - when: never
  
-windows_build_vs2019:

+windows_build_msvc:
rules:
  - when: never
  
-windows_test_vs2019:

+windows_test_msvc:
rules:
  - when: never
  
@@ -56,10 +56,6 @@ rustfmt:

 rules:
  - when: never
  
-windows_vs2019:

-   rules:
-- when: never
-
-clang-format:
+windows_msvc:
 rules:
  - when: never
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml
index 084e3ff8e3f4..9bf5190604a7 100644
--- a/drivers/gpu/drm/ci/gitlab-ci.yml
+++ b/drivers/gpu/drm/ci/gitlab-ci.yml
@@ -1,6 +1,6 @@
  variables:
DRM_CI_PROJECT_PATH:  mesa/mesa
-  DRM_CI_COMMIT_SHA:  
9d162de9a05155e1c4041857a5848842749164cf
+  DRM_CI_COMMIT_SHA:  
e5f133ccc426a197c48a4e88f5377f943f078180
  
UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm

TARGET_BRANCH: drm-next
@@ -26,10 +26,13 @@ variables:
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
# default kernel for rootfs before injecting the current kernel tree
KERNEL_REPO: "gfx-ci/linux"
-  KERNEL_TAG: "v6.6.4-for-mesa-ci-e4f4c500f7fb"
+  KERNEL_TAG: "v6.6.21-mesa-19fc"
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG}
LAVA_TAGS: subset-1-gfx
LAVA_JOB_PRIORITY: 30
+  ARTIFACTS_BASE_URL: 
https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts
+  # Python scripts for structured logger
+  PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install"
  
  default:

before_script:
@@ -46,6 +49,7 @@ default:
  - cd $CI_PROJECT_DIR
  - curl --output - 
$DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz 
| tar -xz
  - mv mesa-$DRM_CI_COMMIT_SHA/.gitlab-ci* .
+- mv mesa-$DRM_CI_COMMIT_SHA/bin/ci .
  - rm -rf mesa-$DRM_CI_COMMIT_SHA/
  - echo -e "\e[0Ksection_end:$(date +%s):drm_ci_download_section\r\e[0K"
  
@@ -98,6 +102,7 @@ include:

  stages:
- sanity
- container
+  - code-validation
- git-archive
- build
- amdgpu
@@ -107,7 +112,6 @@ stages:
- msm
- rockchip
- virtio-gpu
-  - lint
  
  # YAML anchors for rule conditions

  # 
@@ -218,6 +222,7 @@ make git archive:
script:
  # Remove drm-ci files we just added
  - rm -rf .gitlab-ci.*
+- rm -rf ci
  
  # Compactify the .git directory

  - git gc --aggressive
diff --git a/drivers/gpu/drm/ci/image-tags.yml 
b/drivers/gpu/drm/ci/image-tags.yml
index 7ab4f2514da8..d8f72b82c938 100644
--- a/drivers/gpu/drm/ci/image-tags.yml
+++ b/drivers/gpu/drm/ci/image-tags.yml
@@ -1,5 +1,5 @@
  variables:
-   CONTAINER_TAG: "2023-10-11-mesa-uprev"
+   CONTAINER_TAG: "2024-04-22-mesa-uprev"
 DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
 DEBIAN_BASE_TAG: "${CONTAINER_TAG}"
  
@@ -7,6 +7,7 @@ variables:

 DEBIAN_BUILD_TAG: "2023-10-08-config"
  
 KERNEL_ROOTFS_TAG: "2023-10-06-amd"

+   PKG_REPO_REV: "3cc12a2a"
  
 DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"

 DEBIAN_X86_64_TEST_IMAGE_GL_PATH: "debian/x86_64_test-gl"
diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml
index 8bc63912fddb..612c9ede3507 100644
--- a/drivers/gpu

Re: [PATCH v3 3/9] drm/ci: mediatek: Add job to test panfrost and powervr GPU driver

2024-02-19 Thread Helen Koike




On 19/02/2024 06:39, Vignesh Raman wrote:

Hi Helen,

On 09/02/24 23:51, Helen Koike wrote:



On 30/01/2024 12:03, Vignesh Raman wrote:

For mediatek mt8173, the GPU driver is powervr and for mediatek
mt8183, the GPU driver is panfrost. So add support in drm-ci to
test panfrost and powervr GPU driver for mediatek SOCs and update
xfails. Powervr driver was merged in linux kernel, but there's no
mediatek support yet. So disable the mt8173-gpu job which uses
powervr driver.

Add panfrost specific tests to testlist and skip KMS tests for
panfrost driver since it is not a not a KMS driver. Also update
the MAINTAINERS file to include xfails for panfrost driver.

Signed-off-by: Vignesh Raman 


Hi Vignesh, thanks for your work.

I'm still wondering about a few things, please check below.


---

v2:
   - Add panfrost and PVR GPU jobs for mediatek SOC with new xfails, 
add xfail

 entry to MAINTAINERS.


Maybe we should review how the xfails failes are named. I think they 
should start with the DRIVER_NAME instead of GPU_VERSION.


For instance, consider the following job:

mediatek:mt8183-gpu:
   extends:
 - .mt8183
   variables:
 GPU_VERSION: mediatek-mt8183-gpu
 DRIVER_NAME: panfrost

And we have mediatek-mt8183-gpu-skips.txt

If there is an error, we want to notify the panfrost driver 
maintainers (and maybe not the mediatek driver maintainers), so 
MAINTAINERS file doesn't correspond to this.


Agree.



How about a naming __ ?

powervr_mediatek-mt8173_gpu-skipts.txt
mediatek_mediatek-mt8173_display-skipts.txt
panfrost_mediatek-mt8183_gpu-skips.txt
mediatek_mediatek-mt8183_display-skips.txt
...

What do you think?


Yes we can keep this naming. In this case do we still need gpu/display 
in the xfails file name?


If you think this split is not required, then I'm fine dropping it.

Regards,
Helen



Regards,
Vignesh


Re: [PATCH v3 9/9] drm/ci: uprev IGT and update testlist

2024-02-14 Thread Helen Koike




On 10/02/2024 15:20, Maíra Canal wrote:

On 2/10/24 15:17, Maíra Canal wrote:

On 1/30/24 12:03, Vignesh Raman wrote:

Uprev IGT and add amd, v3d, vc4 and vgem specific
tests to testlist. Have testlist.txt per driver
and include a base testlist so that the driver
specific tests will run only on those hardware.

Signed-off-by: Vignesh Raman 
---

v3:
   - New patch in series to uprev IGT and update testlist.

---
  drivers/gpu/drm/ci/gitlab-ci.yml  |   2 +-
  drivers/gpu/drm/ci/igt_runner.sh  |  12 +-
  drivers/gpu/drm/ci/testlist-amdgpu.txt    | 151 ++
  drivers/gpu/drm/ci/testlist-msm.txt   |  50 ++
  drivers/gpu/drm/ci/testlist-panfrost.txt  |  17 ++
  drivers/gpu/drm/ci/testlist-v3d.txt   |  73 +
  drivers/gpu/drm/ci/testlist-vc4.txt   |  49 ++
  drivers/gpu/drm/ci/testlist.txt   | 100 
  .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt |  24 ++-
  .../drm/ci/xfails/amdgpu-stoney-flakes.txt    |   9 +-
  .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt |  10 +-
  11 files changed, 427 insertions(+), 70 deletions(-)
  create mode 100644 drivers/gpu/drm/ci/testlist-amdgpu.txt
  create mode 100644 drivers/gpu/drm/ci/testlist-msm.txt
  create mode 100644 drivers/gpu/drm/ci/testlist-panfrost.txt
  create mode 100644 drivers/gpu/drm/ci/testlist-v3d.txt
  create mode 100644 drivers/gpu/drm/ci/testlist-vc4.txt

diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml 
b/drivers/gpu/drm/ci/gitlab-ci.yml

index bc8cb3420476..e2b021616a8e 100644
--- a/drivers/gpu/drm/ci/gitlab-ci.yml
+++ b/drivers/gpu/drm/ci/gitlab-ci.yml
@@ -5,7 +5,7 @@ variables:
    UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm
    TARGET_BRANCH: drm-next
-  IGT_VERSION: d2af13d9f5be5ce23d996e4afd3e45990f5ab977
+  IGT_VERSION: b0cc8160ebdc87ce08b7fd83bb3c99ff7a4d8610
    DEQP_RUNNER_GIT_URL: 
https://gitlab.freedesktop.org/anholt/deqp-runner.git

    DEQP_RUNNER_GIT_TAG: v0.15.0
diff --git a/drivers/gpu/drm/ci/igt_runner.sh 
b/drivers/gpu/drm/ci/igt_runner.sh

index f001e015d135..2fd09b9b7cf6 100755
--- a/drivers/gpu/drm/ci/igt_runner.sh
+++ b/drivers/gpu/drm/ci/igt_runner.sh
@@ -64,10 +64,20 @@ if ! grep -q "core_getversion" 
/install/testlist.txt; then

  fi
  set +e
+if [ "$DRIVER_NAME" = "amdgpu" ]; then
+    TEST_LIST="/install/testlist-amdgpu.txt"
+elif [ "$DRIVER_NAME" = "msm" ]; then
+    TEST_LIST="/install/testlist-msm.txt"
+elif [ "$DRIVER_NAME" = "panfrost" ]; then
+    TEST_LIST="/install/testlist-panfrost.txt"
+else
+    TEST_LIST="/install/testlist.txt"
+fi
+


Isn't V3D and VC4 testlists missing?

It would be nice if you could provide us a link to a working pipeline.

Also, if possible, I would like to be CCed on the next version of this
patch, as I have interest in the V3D/VC4 tests.



Ah, one thing: it would be nice to add the testlists to the MAINTAINERS
file. This way, maintainers can keep track of any changes.


Make sense, +1 ^

Regards,
Helen




Best Regards,
- Maíra


  igt-runner \
  run \
  --igt-folder /igt/libexec/igt-gpu-tools \
-    --caselist /install/testlist.txt \
+    --caselist $TEST_LIST \
  --output /results \
  $IGT_SKIPS \
  $IGT_FLAKES \
diff --git a/drivers/gpu/drm/ci/testlist-amdgpu.txt 
b/drivers/gpu/drm/ci/testlist-amdgpu.txt

new file mode 100644
index ..4486f86d340b
--- /dev/null
+++ b/drivers/gpu/drm/ci/testlist-amdgpu.txt
@@ -0,0 +1,151 @@
+testlist.txt
+amdgpu/amd_abm@dpms_cycle
+amdgpu/amd_abm@backlight_monotonic_basic
+amdgpu/amd_abm@backlight_monotonic_abm
+amdgpu/amd_abm@abm_enabled
+amdgpu/amd_abm@abm_gradual
+amdgpu/amd_bo@amdgpu_bo_export_import
+amdgpu/amd_bo@amdgpu_bo_metadata
+amdgpu/amd_bo@amdgpu_bo_map_unmap
+amdgpu/amd_bo@amdgpu_memory_alloc
+amdgpu/amd_bo@amdgpu_mem_fail_alloc
+amdgpu/amd_bo@amdgpu_bo_find_by_cpu_mapping
+amdgpu/amd_cp_dma_misc@GTT_to_VRAM-AMDGPU_HW_IP_GFX0
+amdgpu/amd_cp_dma_misc@GTT_to_VRAM-AMDGPU_HW_IP_COMPUTE0
+amdgpu/amd_cp_dma_misc@VRAM_to_GTT-AMDGPU_HW_IP_GFX0
+amdgpu/amd_cp_dma_misc@VRAM_to_GTT-AMDGPU_HW_IP_COMPUTE0
+amdgpu/amd_cp_dma_misc@VRAM_to_VRAM-AMDGPU_HW_IP_GFX0
+amdgpu/amd_cp_dma_misc@VRAM_to_VRAM-AMDGPU_HW_IP_COMPUTE0
+amdgpu/amd_dispatch@amdgpu-dispatch-test-compute-with-IP-COMPUTE
+amdgpu/amd_dispatch@amdgpu-dispatch-test-gfx-with-IP-GFX
+amdgpu/amd_dispatch@amdgpu-dispatch-hang-test-gfx-with-IP-GFX
+amdgpu/amd_dispatch@amdgpu-dispatch-hang-test-compute-with-IP-COMPUTE
+amdgpu/amd_dispatch@amdgpu-reset-test-gfx-with-IP-GFX-and-COMPUTE
+amdgpu/amd_hotplug@basic
+amdgpu/amd_hotplug@basic-suspend
+amdgpu/amd_jpeg_dec@amdgpu_cs_jpeg_decode
+amdgpu/amd_max_bpc@4k-mode-max-bpc
+amdgpu/amd_module_load@reload
+amdgpu/amd_plane@test-mpo-4k
+amdgpu/amd_plane@mpo-swizzle-toggle
+amdgpu/amd_plane@mpo-swizzle-toggle-multihead
+amdgpu/amd_plane@mpo-pan-rgb
+amdgpu/amd_plane@mpo-pan-rgb-multihead
+amdgpu/amd_plane@mpo-pan-nv12
+amdgpu/amd_plane@mpo-pan-nv12-multihead
+amdgpu/amd_plane@mpo-pan-p010

Re: [PATCH v3 1/9] drm/ci: arm64.config: Enable CONFIG_DRM_ANALOGIX_ANX7625

2024-02-09 Thread Helen Koike




On 30/01/2024 12:03, Vignesh Raman wrote:

Enable CONFIG_DRM_ANALOGIX_ANX7625 in the arm64 defconfig to get
display driver probed on the mt8183-kukui-jacuzzi-juniper machine.

arch/arm64/configs/defconfig has CONFIG_DRM_ANALOGIX_ANX7625=m,
but drm-ci don't have initrd with modules, so add
CONFIG_DRM_ANALOGIX_ANX7625=y in CI arm64 config.


Couldn't you load the module as it is done on
https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/ci/igt_runner.sh#n35 
?


This is not a blocker, in any case

Acked-by: Helen Koike 

Thanks
Helen



Signed-off-by: Vignesh Raman 
---

v2:
   - No changes

v3:
   - No changes

---
  drivers/gpu/drm/ci/arm64.config | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/ci/arm64.config b/drivers/gpu/drm/ci/arm64.config
index 8dbce9919a57..37d23fd7a367 100644
--- a/drivers/gpu/drm/ci/arm64.config
+++ b/drivers/gpu/drm/ci/arm64.config
@@ -187,6 +187,7 @@ CONFIG_MTK_DEVAPC=y
  CONFIG_PWM_MTK_DISP=y
  CONFIG_MTK_CMDQ=y
  CONFIG_REGULATOR_DA9211=y
+CONFIG_DRM_ANALOGIX_ANX7625=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


Re: [PATCH v3 3/9] drm/ci: mediatek: Add job to test panfrost and powervr GPU driver

2024-02-09 Thread Helen Koike




On 30/01/2024 12:03, Vignesh Raman wrote:

For mediatek mt8173, the GPU driver is powervr and for mediatek
mt8183, the GPU driver is panfrost. So add support in drm-ci to
test panfrost and powervr GPU driver for mediatek SOCs and update
xfails. Powervr driver was merged in linux kernel, but there's no
mediatek support yet. So disable the mt8173-gpu job which uses
powervr driver.

Add panfrost specific tests to testlist and skip KMS tests for
panfrost driver since it is not a not a KMS driver. Also update
the MAINTAINERS file to include xfails for panfrost driver.

Signed-off-by: Vignesh Raman 


Hi Vignesh, thanks for your work.

I'm still wondering about a few things, please check below.


---

v2:
   - Add panfrost and PVR GPU jobs for mediatek SOC with new xfails, add xfail
 entry to MAINTAINERS.


Maybe we should review how the xfails failes are named. I think they 
should start with the DRIVER_NAME instead of GPU_VERSION.


For instance, consider the following job:

mediatek:mt8183-gpu:
  extends:
- .mt8183
  variables:
GPU_VERSION: mediatek-mt8183-gpu
DRIVER_NAME: panfrost

And we have mediatek-mt8183-gpu-skips.txt

If there is an error, we want to notify the panfrost driver maintainers 
(and maybe not the mediatek driver maintainers), so MAINTAINERS file 
doesn't correspond to this.


How about a naming __ ?

powervr_mediatek-mt8173_gpu-skipts.txt
mediatek_mediatek-mt8173_display-skipts.txt
panfrost_mediatek-mt8183_gpu-skips.txt
mediatek_mediatek-mt8183_display-skips.txt
...

What do you think?

Thanks
Helen





v3:
   - Add panfrost specific tests to testlist and skip KMS tests for
 panfrost driver since it is not a not a KMS driver and update xfails.
 Update the MAINTAINERS file to include xfails for panfrost driver.
 Add the job name in GPU_VERSION and use it for xfail file names instead
 of using DRIVER_NAME.

---
  MAINTAINERS|  1 +
  drivers/gpu/drm/ci/test.yml| 18 ++
  drivers/gpu/drm/ci/testlist.txt| 16 
  .../ci/xfails/mediatek-mt8183-gpu-skips.txt|  2 ++
  4 files changed, 37 insertions(+)
  create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-gpu-skips.txt

diff --git a/MAINTAINERS b/MAINTAINERS
index 9d959a6881f7..bcdc17d1aa26 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1645,6 +1645,7 @@ L:dri-de...@lists.freedesktop.org
  S:Supported
  T:git git://anongit.freedesktop.org/drm/drm-misc
  F:Documentation/gpu/panfrost.rst
+F: drivers/gpu/drm/ci/xfails/panfrost*
  F:drivers/gpu/drm/panfrost/
  F:include/uapi/drm/panfrost_drm.h
  
diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml

index 0cd44e6ea18b..e153c5a7ad80 100644
--- a/drivers/gpu/drm/ci/test.yml
+++ b/drivers/gpu/drm/ci/test.yml
@@ -299,6 +299,17 @@ amdgpu:stoney:
  DEVICE_TYPE: mt8183-kukui-jacuzzi-juniper-sku16
  RUNNER_TAG: mesa-ci-x86-64-lava-mt8183-kukui-jacuzzi-juniper-sku16
  
+mediatek:mt8173-gpu:

+  extends:
+- .mt8173
+  variables:
+GPU_VERSION: mediatek-mt8173-gpu
+DRIVER_NAME: powervr
+  rules:
+# TODO: powervr driver was merged in linux kernel, but there's no mediatek 
support yet
+# Remove the rule once mediatek support is added for powervr
+- when: never
+
  mediatek:mt8173-display:
extends:
  - .mt8173
@@ -306,6 +317,13 @@ mediatek:mt8173-display:
  GPU_VERSION: mediatek-mt8173-display
  DRIVER_NAME: mediatek
  
+mediatek:mt8183-gpu:

+  extends:
+- .mt8183
+  variables:
+GPU_VERSION: mediatek-mt8183-gpu
+DRIVER_NAME: panfrost
+
  mediatek:mt8183-display:
extends:
  - .mt8183
diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt
index eaeb751bb0ad..772fc025b1f8 100644
--- a/drivers/gpu/drm/ci/testlist.txt
+++ b/drivers/gpu/drm/ci/testlist.txt
@@ -2959,3 +2959,19 @@ msm_submit@invalid-duplicate-bo-submit
  msm_submit@invalid-cmd-idx-submit
  msm_submit@invalid-cmd-type-submit
  msm_submit@valid-submit
+panfrost_get_param@base-params
+panfrost_get_param@get-bad-param
+panfrost_get_param@get-bad-padding
+panfrost_gem_new@gem-new-4096
+panfrost_gem_new@gem-new-0
+panfrost_gem_new@gem-new-zeroed
+panfrost_prime@gem-prime-import
+panfrost_submit@pan-submit
+panfrost_submit@pan-submit-error-no-jc
+panfrost_submit@pan-submit-error-bad-in-syncs
+panfrost_submit@pan-submit-error-bad-bo-handles
+panfrost_submit@pan-submit-error-bad-requirements
+panfrost_submit@pan-submit-error-bad-out-sync
+panfrost_submit@pan-reset
+panfrost_submit@pan-submit-and-close
+panfrost_submit@pan-unhandled-pagefault
diff --git a/drivers/gpu/drm/ci/xfails/mediatek-mt8183-gpu-skips.txt 
b/drivers/gpu/drm/ci/xfails/mediatek-mt8183-gpu-skips.txt
new file mode 100644
index ..2ea09d1648bc
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/mediatek-mt8183-gpu-skips.txt
@@ -0,0 +1,2 @@
+# Panfrost is not a KMS driver, so skip the KMS tests
+kms_.*


[PATCH v3 05/10] drm/ci: clean up xfails (specially flakes list)

2023-10-23 Thread Helen Koike
Since the script that collected the list of the expectation files was
bogus and placing test to the flakes list incorrectly, restart the
expectation files with the correct script.

This reduces a lot the number of tests in the flakes list.

Signed-off-by: Helen Koike 
Reviewed-by: David Heidelberg 

---

v2:
- fix typo in the commit message
- re-add kms_cursor_legacy@flip-vs-cursor-toggle back to msm-sdm845-flakes.txt
- removed kms_async_flips@crc,Fail from i915-cml-fails.txt

v3:
- add kms_rmfb@close-fd,Fail to amdgpu-stoney-fails.txt
- add kms_async_flips@crc to i915-kbl-flakes.txt

Signed-off-by: Helen Koike 
---
 .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 12 +-
 .../drm/ci/xfails/amdgpu-stoney-flakes.txt| 20 -
 drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |  9 
 .../gpu/drm/ci/xfails/i915-amly-flakes.txt| 32 ---
 drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  | 11 -
 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |  1 -
 drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  | 14 ++-
 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt | 38 -
 drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  | 17 
 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt | 41 ---
 drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |  7 
 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 25 ---
 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |  1 -
 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt |  5 ---
 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |  1 -
 .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |  0
 .../drm/ci/xfails/mediatek-mt8183-fails.txt   |  5 ++-
 .../drm/ci/xfails/mediatek-mt8183-flakes.txt  | 14 ---
 .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 14 ---
 .../gpu/drm/ci/xfails/meson-g12b-flakes.txt   |  4 --
 .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt  |  4 --
 .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |  2 +
 .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |  4 --
 .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 15 ---
 .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt   | 24 +++
 .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 18 +---
 .../gpu/drm/ci/xfails/msm-sdm845-fails.txt|  9 +---
 .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   | 19 +
 .../drm/ci/xfails/rockchip-rk3288-fails.txt   |  6 +++
 .../drm/ci/xfails/rockchip-rk3288-flakes.txt  |  9 
 .../drm/ci/xfails/rockchip-rk3399-fails.txt   | 40 +-
 .../drm/ci/xfails/rockchip-rk3399-flakes.txt  | 28 +++--
 .../drm/ci/xfails/virtio_gpu-none-flakes.txt  |  0
 33 files changed, 162 insertions(+), 287 deletions(-)
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt

diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
index bd9392536e7c..ea87dc46bc2b 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
@@ -1,8 +1,14 @@
 kms_addfb_basic@bad-pitch-65536,Fail
 kms_addfb_basic@bo-too-small,Fail
+kms_addfb_basic@too-high,Fail
+kms_async_flips@async-flip-with-page-flip-events,Fail
+kms_async_flips@crc,Fail
 kms_async_flips@invalid-async-flip,Fail
-kms_atomic@plane-immutable-zpos,Fail
+kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail
+kms_atomic_transition@plane-all-transition,Fail
+kms_atomic_transition@plane-all-transition-nonblocking,Fail
 kms_atomic_transition@plane-toggle-modeset-transition,Fail
+kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail
 kms_bw@linear-tiling-1-displays-2560x1440p,Fail
 kms_bw@linear-tiling-1-displays-3840x2160p,Fail
 kms_bw@linear-tiling-2-displays-3840x2160p,Fail
@@ -11,9 +17,11 @@ kms_color@degamma,Fail
 kms_cursor_crc@cursor-size-change,Fail
 kms_cursor_crc@pipe-A-cursor-size-change,Fail
 kms_cursor_crc@pipe-B-cursor-size-change,Fail
-kms_cursor_legacy@forked-move,Fail
+kms_flip@flip-vs-modeset-vs-hang,Fail
+kms_flip@flip-vs-panning-vs-hang,Fail
 kms_hdr@bpc-switch,Fail
 kms_hdr@bpc-switch-dpms,Fail
+kms_plane@pixel-format,Fail
 kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
 kms_rmfb@close-fd,Fail

[PATCH v2 5/9] drm/ci: clean up xfails (specially flakes list)

2023-10-19 Thread Helen Koike
Since the script that collected the list of the expectation files was
bogus and placing test to the flakes list incorrectly, restart the
expectation files with the correct script.

This reduces a lot the number of tests in the flakes list.

Signed-off-by: Helen Koike 
Reviewed-by: David Heidelberg 

---

v2:
- fix typo in the commit message
- re-add kms_cursor_legacy@flip-vs-cursor-toggle back to msm-sdm845-flakes.txt
- removed kms_async_flips@crc,Fail from i915-cml-fails.txt
---
 .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 13 --
 .../drm/ci/xfails/amdgpu-stoney-flakes.txt| 20 -
 drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |  9 
 .../gpu/drm/ci/xfails/i915-amly-flakes.txt| 32 ---
 drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  | 11 -
 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |  1 -
 drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  | 14 ++-
 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt | 38 -
 drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  | 17 
 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt | 41 ---
 drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |  7 
 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 26 
 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |  1 -
 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt |  5 ---
 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |  1 -
 .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |  0
 .../drm/ci/xfails/mediatek-mt8183-fails.txt   |  5 ++-
 .../drm/ci/xfails/mediatek-mt8183-flakes.txt  | 14 ---
 .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 14 ---
 .../gpu/drm/ci/xfails/meson-g12b-flakes.txt   |  4 --
 .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt  |  4 --
 .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |  2 +
 .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |  4 --
 .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 15 ---
 .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt   | 24 +++
 .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 18 +---
 .../gpu/drm/ci/xfails/msm-sdm845-fails.txt|  9 +---
 .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   | 19 +
 .../drm/ci/xfails/rockchip-rk3288-fails.txt   |  6 +++
 .../drm/ci/xfails/rockchip-rk3288-flakes.txt  |  9 
 .../drm/ci/xfails/rockchip-rk3399-fails.txt   | 40 +-
 .../drm/ci/xfails/rockchip-rk3399-flakes.txt  | 28 +++--
 .../drm/ci/xfails/virtio_gpu-none-flakes.txt  |  0
 33 files changed, 162 insertions(+), 289 deletions(-)
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt

diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
index bd9392536e7c..aa57aaa8869b 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
@@ -1,8 +1,14 @@
 kms_addfb_basic@bad-pitch-65536,Fail
 kms_addfb_basic@bo-too-small,Fail
+kms_addfb_basic@too-high,Fail
+kms_async_flips@async-flip-with-page-flip-events,Fail
+kms_async_flips@crc,Fail
 kms_async_flips@invalid-async-flip,Fail
-kms_atomic@plane-immutable-zpos,Fail
+kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail
+kms_atomic_transition@plane-all-transition,Fail
+kms_atomic_transition@plane-all-transition-nonblocking,Fail
 kms_atomic_transition@plane-toggle-modeset-transition,Fail
+kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail
 kms_bw@linear-tiling-1-displays-2560x1440p,Fail
 kms_bw@linear-tiling-1-displays-3840x2160p,Fail
 kms_bw@linear-tiling-2-displays-3840x2160p,Fail
@@ -11,9 +17,10 @@ kms_color@degamma,Fail
 kms_cursor_crc@cursor-size-change,Fail
 kms_cursor_crc@pipe-A-cursor-size-change,Fail
 kms_cursor_crc@pipe-B-cursor-size-change,Fail
-kms_cursor_legacy@forked-move,Fail
+kms_flip@flip-vs-modeset-vs-hang,Fail
+kms_flip@flip-vs-panning-vs-hang,Fail
 kms_hdr@bpc-switch,Fail
 kms_hdr@bpc-switch-dpms,Fail
+kms_plane@pixel-format,Fail
 kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
-kms_rmfb@close-fd,Fail
 kms_rotation_crc@primary-rotation-180,Fail
diff --git a/drivers/gpu/drm/ci/xfails

Re: [PATCH v7 0/6] drm: Add support for atomic async page-flip

2023-10-17 Thread Helen Koike




On 17/10/2023 06:28, André Almeida wrote:

Hi,

This work from me and Simon adds support for DRM_MODE_PAGE_FLIP_ASYNC through
the atomic API. This feature is already available via the legacy API. The use
case is to be able to present a new frame immediately (or as soon as
possible), even if after missing a vblank. This might result in tearing, but
it's useful when a high framerate is desired, such as for gaming.

Differently from earlier versions, this one refuses to flip if any prop changes
for async flips. The idea is that the fast path of immediate page flips doesn't
play well with modeset changes, so only the fb_id can be changed.
Thanks,
André

- User-space patch: https://github.com/Plagman/gamescope/pull/595
- IGT tests: 
https://gitlab.freedesktop.org/andrealmeid/igt-gpu-tools/-/tree/atomic_async_page_flip

Changes from v6:
- Dropped the exception to allow MODE_ID changes (Simon)
- Clarify what happens when flipping with the same FB_ID (Pekka)

v6: 
https://lore.kernel.org/dri-devel/20230815185710.159779-1-andrealm...@igalia.com/

Changes from v5:
- Add note in the docs that not every redundant attribute will result in no-op,
   some might cause oversynchronization issues.

v5: 
https://lore.kernel.org/dri-devel/20230707224059.305474-1-andrealm...@igalia.com/

Changes from v4:
  - Documentation rewrote by Pekka Paalanen

v4: 
https://lore.kernel.org/dri-devel/20230701020917.143394-1-andrealm...@igalia.com/

Changes from v3:
  - Add new patch to reject prop changes
  - Add a documentation clarifying the KMS atomic state set

v3: 
https://lore.kernel.org/dri-devel/20220929184307.258331-1-cont...@emersion.fr/

André Almeida (1):
   drm: Refuse to async flip with atomic prop changes

Pekka Paalanen (1):
   drm/doc: Define KMS atomic state set

Simon Ser (4):
   drm: allow DRM_MODE_PAGE_FLIP_ASYNC for atomic commits
   drm: introduce DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP
   drm: introduce drm_mode_config.atomic_async_page_flip_not_supported
   amd/display: indicate support for atomic async page-flips on DC

  Documentation/gpu/drm-uapi.rst| 47 
  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c  |  1 +
  drivers/gpu/drm/drm_atomic_uapi.c | 75 +--
  drivers/gpu/drm/drm_crtc_internal.h   |  2 +-
  drivers/gpu/drm/drm_ioctl.c   |  5 ++
  drivers/gpu/drm/drm_mode_object.c |  2 +-
  .../drm/i915/display/intel_display_driver.c   |  1 +
  drivers/gpu/drm/nouveau/nouveau_display.c |  1 +
  include/drm/drm_mode_config.h | 11 +++
  include/uapi/drm/drm.h| 10 ++-
  include/uapi/drm/drm_mode.h   |  9 +++
  11 files changed, 155 insertions(+), 9 deletions(-)



Hello o/

Maybe it is not related (since there are a few years I don't work on 
this) but this reminds me of 
https://yhbt.net/lore/all/20190412125827.5877-1-helen.ko...@collabora.com/T/


(just sharing for the sake of communication flow)

Regards,
Helen


[PATCH 5/9] drm/ci: clean up xfails (specially flakes list)

2023-10-08 Thread Helen Koike
Since the script that collected the list of the expectation files was
bogus and placing test to the flakes list incorrectly, restart the
expectation files with the correct script.

This reduces a lot the number of tests in the flakes list.

Signed-off-by: Helen Koike 
---
 .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 13 --
 .../drm/ci/xfails/amdgpu-stoney-flakes.txt| 20 -
 drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |  9 
 .../gpu/drm/ci/xfails/i915-amly-flakes.txt| 32 ---
 drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  | 11 -
 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |  1 -
 drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  | 15 ++-
 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt | 38 -
 drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  | 17 
 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt | 41 ---
 drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |  7 
 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 26 
 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |  1 -
 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt |  5 ---
 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |  1 -
 .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |  0
 .../drm/ci/xfails/mediatek-mt8183-fails.txt   |  5 ++-
 .../drm/ci/xfails/mediatek-mt8183-flakes.txt  | 14 ---
 .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 14 ---
 .../gpu/drm/ci/xfails/meson-g12b-flakes.txt   |  4 --
 .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt  |  4 --
 .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |  2 +
 .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |  4 --
 .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 15 ---
 .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt   | 24 +++
 .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 18 +---
 .../gpu/drm/ci/xfails/msm-sdm845-fails.txt|  9 +---
 .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   | 20 -
 .../drm/ci/xfails/rockchip-rk3288-fails.txt   |  6 +++
 .../drm/ci/xfails/rockchip-rk3288-flakes.txt  |  9 
 .../drm/ci/xfails/rockchip-rk3399-fails.txt   | 40 +-
 .../drm/ci/xfails/rockchip-rk3399-flakes.txt  | 28 +++--
 .../drm/ci/xfails/virtio_gpu-none-flakes.txt  |  0
 33 files changed, 163 insertions(+), 290 deletions(-)
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt

diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
index bd9392536e7c..aa57aaa8869b 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
@@ -1,8 +1,14 @@
 kms_addfb_basic@bad-pitch-65536,Fail
 kms_addfb_basic@bo-too-small,Fail
+kms_addfb_basic@too-high,Fail
+kms_async_flips@async-flip-with-page-flip-events,Fail
+kms_async_flips@crc,Fail
 kms_async_flips@invalid-async-flip,Fail
-kms_atomic@plane-immutable-zpos,Fail
+kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail
+kms_atomic_transition@plane-all-transition,Fail
+kms_atomic_transition@plane-all-transition-nonblocking,Fail
 kms_atomic_transition@plane-toggle-modeset-transition,Fail
+kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail
 kms_bw@linear-tiling-1-displays-2560x1440p,Fail
 kms_bw@linear-tiling-1-displays-3840x2160p,Fail
 kms_bw@linear-tiling-2-displays-3840x2160p,Fail
@@ -11,9 +17,10 @@ kms_color@degamma,Fail
 kms_cursor_crc@cursor-size-change,Fail
 kms_cursor_crc@pipe-A-cursor-size-change,Fail
 kms_cursor_crc@pipe-B-cursor-size-change,Fail
-kms_cursor_legacy@forked-move,Fail
+kms_flip@flip-vs-modeset-vs-hang,Fail
+kms_flip@flip-vs-panning-vs-hang,Fail
 kms_hdr@bpc-switch,Fail
 kms_hdr@bpc-switch-dpms,Fail
+kms_plane@pixel-format,Fail
 kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
-kms_rmfb@close-fd,Fail
 kms_rotation_crc@primary-rotation-180,Fail
diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt 
b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt
index f8defa0f9e67..6faf75e667d3 100644
--- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt
+++ b/drivers/gpu/drm/ci/xfails/amdgpu

[PATCH] MAINTAINERS: drm/ci: add entries for xfail files

2023-09-19 Thread Helen Koike
DRM CI keeps track of which tests are failing, flaking or being skipped
by the ci in the expectations files. Add entries for those files to the
corresponding driver maintainer, so they can be notified when they
change.

Signed-off-by: Helen Koike 
---

For reference: 
https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg463165.html

 MAINTAINERS | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 90f13281d297..740a2ce2689c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6614,6 +6614,7 @@ S:Maintained
 B: https://gitlab.freedesktop.org/drm/msm/-/issues
 T: git https://gitlab.freedesktop.org/drm/msm.git
 F: Documentation/devicetree/bindings/display/msm/
+F: drivers/gpu/drm/ci/xfails/msm*
 F: drivers/gpu/drm/msm/
 F: include/uapi/drm/msm_drm.h
 
@@ -6886,6 +6887,7 @@ T:git git://anongit.freedesktop.org/drm/drm-misc
 F: Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
 F: Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
 F: Documentation/gpu/meson.rst
+F: drivers/gpu/drm/ci/xfails/meson*
 F: drivers/gpu/drm/meson/
 
 DRM DRIVERS FOR ATMEL HLCDC
@@ -6994,6 +6996,7 @@ L:dri-de...@lists.freedesktop.org
 L: linux-media...@lists.infradead.org (moderated for non-subscribers)
 S: Supported
 F: Documentation/devicetree/bindings/display/mediatek/
+F: drivers/gpu/drm/ci/xfails/mediatek*
 F: drivers/gpu/drm/mediatek/
 F: drivers/phy/mediatek/phy-mtk-dp.c
 F: drivers/phy/mediatek/phy-mtk-hdmi*
@@ -7034,6 +7037,7 @@ L:dri-de...@lists.freedesktop.org
 S: Maintained
 T: git git://anongit.freedesktop.org/drm/drm-misc
 F: Documentation/devicetree/bindings/display/rockchip/
+F: drivers/gpu/drm/ci/xfails/rockchip*
 F: drivers/gpu/drm/rockchip/
 
 DRM DRIVERS FOR STI
@@ -10476,6 +10480,7 @@ C:  irc://irc.oftc.net/intel-gfx
 T: git git://anongit.freedesktop.org/drm-intel
 F: Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
 F: Documentation/gpu/i915.rst
+F: drivers/gpu/drm/ci/xfails/i915*
 F: drivers/gpu/drm/i915/
 F: include/drm/i915*
 F: include/uapi/drm/i915_drm.h
@@ -17862,6 +17867,7 @@ C:  irc://irc.oftc.net/radeon
 T: git https://gitlab.freedesktop.org/agd5f/linux.git
 F: Documentation/gpu/amdgpu/
 F: drivers/gpu/drm/amd/
+F: drivers/gpu/drm/ci/xfails/amd*
 F: drivers/gpu/drm/radeon/
 F: include/uapi/drm/amdgpu_drm.h
 F: include/uapi/drm/radeon_drm.h
@@ -22846,6 +22852,7 @@ L:  dri-de...@lists.freedesktop.org
 L: virtualizat...@lists.linux-foundation.org
 S: Maintained
 T: git git://anongit.freedesktop.org/drm/drm-misc
+F: drivers/gpu/drm/ci/xfails/virtio*
 F: drivers/gpu/drm/virtio/
 F: include/uapi/linux/virtio_gpu.h
 
-- 
2.34.1



Re: [PATCH v2 0/2] Merge all debug module parameters

2023-08-31 Thread Helen Koike

Hi André,

Thanks for your patches.

On 30/08/2023 19:08, André Almeida wrote:

As suggested by Christian at [0], this patchset merges all debug modules
parameters and creates a new one for disabling soft recovery:


Maybe we can overload the amdgpu_gpu_recovery module option with this.
Or even better merge all the developer module parameter into a
amdgpu_debug option. This way it should be pretty obvious that this
isn't meant to be used by someone who doesn't know how to use it.


[0] 
https://lore.kernel.org/dri-devel/55f69184-1aa2-55d6-4a10-1560d75c7...@amd.com/



Would you mind to test your patchset with drm-ci ? There is an amdgpu 
test there and I would love to get your feedback of the ci.


You basically just need to apply the ci patch which is available on
https://cgit.freedesktop.org/drm/drm/commit/?h=topic/drm-ci=0119c894ab0dc468bcb03f28063239c0a4cf970f

There are instruction on the docs, but in short: to configure it, you 
push your branch to gitlab.freedesktop.org, go to the settings and 
change the CI/CD configuration file from .gitlab-ci.yml to
drivers/gpu/drm/ci/gitlab-ci.yml, and you can trigger a pipeline on your 
branch to get tests running.



Thank you!
Helen




Changelog:
- drop old module params
- use BIT() macros
- replace global var with adev-> vars
v1: https://lore.kernel.org/lkml/20230824162505.173399-1-andrealm...@igalia.com/

André Almeida (2):
   drm/amdgpu: Merge debug module parameters
   drm/amdgpu: Create an option to disable soft recovery

  drivers/gpu/drm/amd/amdgpu/amdgpu.h  |  5 +++
  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c   |  2 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c  | 54 +++-
  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c  |  2 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c |  6 ++-
  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c   |  2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c |  2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_crat.c|  2 +-
  drivers/gpu/drm/amd/include/amd_shared.h |  9 
  9 files changed, 58 insertions(+), 26 deletions(-)



Re: [PATCH v3 0/7] GPU workload hints for better performance

2023-08-28 Thread Helen Koike




On 28/08/2023 17:14, Yadav, Arvind wrote:


On 8/28/2023 9:13 PM, Helen Mae Koike Fornazier wrote:
On Monday, August 28, 2023 09:26 -03, Arvind Yadav 
 wrote:



AMDGPU SOCs supports dynamic workload based power profiles, which can
provide fine-tuned performance for a particular type of workload.
This patch series adds an interface to set/reset these power profiles
based on the submitted job. The driver can dynamically switch
the power profiles based on submitted job. This can optimize the power
performance when the particular workload is on.

Hi Arvind,

Would you mind to test your patchset with drm-ci ? There is a amdgpu
test there and I would love to get your feedback of the ci.

You basically just need to apply the ci patch which is available on
https://cgit.freedesktop.org/drm/drm/log/?h=topic/drm-ci

There are instruction on the docs, but in short: to configure it, you 
push

your branch to gitlab.freedesktop.org, go to the settings and change the
CI/CD configuration file from .gitlab-ci.yml to 
drivers/gpu/drm/ci/gitlab-ci.yml,

and you can trigger a pipeline on your branch to get tests running.

(by the time of this writing, gitlab.fdo is under maintenance but should
be up soonish).


Hi Helen,

I tried the steps as mentioned by you but looks like something is 
missing and build itself is failing.


https://gitlab.freedesktop.org/ArvindYadav/drm-next/-/commits/smu_workload


Thanks for your feedback!

You need to apply this patch 
https://gitlab.freedesktop.org/ArvindYadav/drm-next/-/commit/cc6dcff192d07f9fe82645fbc4213c97e872156b


This patch adds the file drivers/gpu/drm/ci/gitlab-ci.yml for you.

And you can drop the patch where gitlab added the ci template.

I replied here too 
https://gitlab.freedesktop.org/ArvindYadav/drm-next/-/commit/cc6dcff192d07f9fe82645fbc4213c97e872156b


Could you try again with that patch?

Thanks a lot!
Helen




Regards,
~Arvind


Thank you!
Helen


v2:
- Splitting workload_profile_set and workload_profile_put
   into two separate patches.
- Addressed review comment.
- Added new suspend function.
- Added patch to switches the GPU workload mode for KFD.

v3:
- Addressed all review comment.
- Changed the function name from *_set() to *_get().
- Now clearing all the profile in work handler.
- Added *_clear_all function to clear all the power profile.


Arvind Yadav (7):
   drm/amdgpu: Added init/fini functions for workload
   drm/amdgpu: Add new function to set GPU power profile
   drm/amdgpu: Add new function to put GPU power profile
   drm/amdgpu: Add suspend function to clear the GPU power profile.
   drm/amdgpu: Set/Reset GPU workload profile
   drm/amdgpu: switch workload context to/from compute
   Revert "drm/amd/amdgpu: switch on/off vcn power profile mode"

  drivers/gpu/drm/amd/amdgpu/Makefile   |   2 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu.h   |   3 +
  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |   8 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |   6 +
  drivers/gpu/drm/amd/amdgpu/amdgpu_job.c   |   5 +
  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c   |  14 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c  | 226 ++
  drivers/gpu/drm/amd/include/amdgpu_workload.h |  61 +
  8 files changed, 309 insertions(+), 16 deletions(-)
  create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c
  create mode 100644 drivers/gpu/drm/amd/include/amdgpu_workload.h

--
2.34.1



Re: [PATCH v4 2/5] drm/amd: fix fb references in async update

2019-06-03 Thread Helen Koike



On 6/3/19 1:56 PM, Helen Koike wrote:
> Async update callbacks are expected to set the old_fb in the new_state
> so prepare/cleanup framebuffers are balanced.
> 
> Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new
> fb and put the old fb) is not required, as it's taken care by
> drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane().
> 
> Suggested-by: Boris Brezillon 
> Signed-off-by: Helen Koike 
> Reviewed-by: Nicholas Kazlauskas 

Cc:  # v4.20+
Fixes: 674e78acae0d ("drm/amd/display: Add fast path for cursor plane
updates")


> 
> ---
> 
> Changes in v4: None
> Changes in v3: None
> Changes in v2:
> - added reviewed-by tag
> 
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 443b13ec268d..40624b2c630e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4347,8 +4347,7 @@ static void dm_plane_atomic_async_update(struct 
> drm_plane *plane,
>   struct drm_plane_state *old_state =
>   drm_atomic_get_old_plane_state(new_state->state, plane);
>  
> - if (plane->state->fb != new_state->fb)
> - drm_atomic_set_fb_for_plane(plane->state, new_state->fb);
> + swap(plane->state->fb, new_state->fb);
>  
>   plane->state->src_x = new_state->src_x;
>   plane->state->src_y = new_state->src_y;
> 


[PATCH v4 5/5] drm: don't block fb changes for async plane updates

2019-06-03 Thread Helen Koike
In the case of a normal sync update, the preparation of framebuffers (be
it calling drm_atomic_helper_prepare_planes() or doing setups with
drm_framebuffer_get()) are performed in the new_state and the respective
cleanups are performed in the old_state.

In the case of async updates, the preparation is also done in the
new_state but the cleanups are done in the new_state (because updates
are performed in place, i.e. in the current state).

The current code blocks async udpates when the fb is changed, turning
async updates into sync updates, slowing down cursor updates and
introducing regressions in igt tests with errors of type:

"CRITICAL: completed 97 cursor updated in a period of 30 flips, we
expect to complete approximately 15360 updates, with the threshold set
at 7680"

Fb changes in async updates were prevented to avoid the following scenario:

- Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1
- Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2
- Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong)
Where we have a single call to prepare fb2 but double cleanup call to fb2.

To solve the above problems, instead of blocking async fb changes, we
place the old framebuffer in the new_state object, so when the code
performs cleanups in the new_state it will cleanup the old_fb and we
will have the following scenario instead:

- Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup
- Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1
- Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2

Where calls to prepare/cleanup are balanced.

Cc:  # v4.14+
Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates")
Suggested-by: Boris Brezillon 
Signed-off-by: Helen Koike 
Reviewed-by: Boris Brezillon 
Reviewed-by: Nicholas Kazlauskas 

---

Changes in v4:
- update docs in atomic_async_update callback

Changes in v3:
- Add Reviewed-by tags
- Add TODO in drm_atomic_helper_async_commit()

Changes in v2:
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced

 drivers/gpu/drm/drm_atomic_helper.c  | 22 --
 include/drm/drm_modeset_helper_vtables.h |  8 
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index acf993cb8e52..ac81d8440b40 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1610,15 +1610,6 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
old_plane_state->crtc != new_plane_state->crtc)
return -EINVAL;
 
-   /*
-* FIXME: Since prepare_fb and cleanup_fb are always called on
-* the new_plane_state for async updates we need to block framebuffer
-* changes. This prevents use of a fb that's been cleaned up and
-* double cleanups from occuring.
-*/
-   if (old_plane_state->fb != new_plane_state->fb)
-   return -EINVAL;
-
funcs = plane->helper_private;
if (!funcs->atomic_async_update)
return -EINVAL;
@@ -1649,6 +1640,8 @@ EXPORT_SYMBOL(drm_atomic_helper_async_check);
  * drm_atomic_async_check() succeeds. Async commits are not supposed to swap
  * the states like normal sync commits, but just do in-place changes on the
  * current state.
+ *
+ * TODO: Implement full swap instead of doing in-place changes.
  */
 void drm_atomic_helper_async_commit(struct drm_device *dev,
struct drm_atomic_state *state)
@@ -1659,6 +1652,9 @@ void drm_atomic_helper_async_commit(struct drm_device 
*dev,
int i;
 
for_each_new_plane_in_state(state, plane, plane_state, i) {
+   struct drm_framebuffer *new_fb = plane_state->fb;
+   struct drm_framebuffer *old_fb = plane->state->fb;
+
funcs = plane->helper_private;
funcs->atomic_async_update(plane, plane_state);
 
@@ -1667,11 +1663,17 @@ void drm_atomic_helper_async_commit(struct drm_device 
*dev,
 * plane->state in-place, make sure at least common
 * properties have been properly updated.
 */
-   WARN_ON_ONCE(plane->state->fb != plane_state->fb);
+   WARN_ON_ONCE(plane->state->fb != new_fb);
WARN_ON_ONCE(plane->state->crtc_x != plane_state->crtc_x);
WARN_ON_ONCE(plane->state->crtc_y != plane_state->crtc_y);
WARN_ON_ONCE(plane->state->src_x != plane_state->src_x);
WARN_ON_ONCE(plane->state->src_y != plane_state->src_y);
+
+   /*
+* Make sure the FBs have been swapped so that cleanups in the
+* new_state performs a cleanup in the old F

[PATCH v4 2/5] drm/amd: fix fb references in async update

2019-06-03 Thread Helen Koike
Async update callbacks are expected to set the old_fb in the new_state
so prepare/cleanup framebuffers are balanced.

Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new
fb and put the old fb) is not required, as it's taken care by
drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane().

Suggested-by: Boris Brezillon 
Signed-off-by: Helen Koike 
Reviewed-by: Nicholas Kazlauskas 

---

Changes in v4: None
Changes in v3: None
Changes in v2:
- added reviewed-by tag

 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 443b13ec268d..40624b2c630e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4347,8 +4347,7 @@ static void dm_plane_atomic_async_update(struct drm_plane 
*plane,
struct drm_plane_state *old_state =
drm_atomic_get_old_plane_state(new_state->state, plane);
 
-   if (plane->state->fb != new_state->fb)
-   drm_atomic_set_fb_for_plane(plane->state, new_state->fb);
+   swap(plane->state->fb, new_state->fb);
 
plane->state->src_x = new_state->src_x;
plane->state->src_y = new_state->src_y;
-- 
2.20.1



[PATCH v4 0/5] drm: Fix fb changes for async updates

2019-06-03 Thread Helen Koike
Hello,

I'm re-sending this series with the acked by in the msm patch and
updating the docs in the last patch, the rest is the same.

v3 link: https://patchwork.kernel.org/project/dri-devel/list/?series=91353

Thanks!
Helen

Changes in v4:
- add acked by tag
- update docs in atomic_async_update callback

Changes in v3:
- use swap() to swap old and new framebuffers in async_update
- get the reference to old_fb and set the worker after vop_plane_atomic_update()
- add a FIXME tag for when we have multiple fbs to be released when
vblank happens.
- update commit message
- Add Reviewed-by tags
- Add TODO in drm_atomic_helper_async_commit()

Changes in v2:
- added reviewed-by tag
- update CC stable and Fixes tag
- Added reviewed-by tag
- updated CC stable and Fixes tag
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced

Helen Koike (5):
  drm/rockchip: fix fb references in async update
  drm/amd: fix fb references in async update
  drm/msm: fix fb references in async update
  drm/vc4: fix fb references in async update
  drm: don't block fb changes for async plane updates

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 22 
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|  4 ++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   | 51 ++-
 drivers/gpu/drm/vc4/vc4_plane.c   |  2 +-
 include/drm/drm_modeset_helper_vtables.h  |  8 +++
 6 files changed, 52 insertions(+), 38 deletions(-)

-- 
2.20.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Re: [PATCH v3 5/5] drm: don't block fb changes for async plane updates

2019-06-03 Thread Helen Koike



On 5/7/19 5:18 PM, Sean Paul wrote:
> On Wed, Mar 13, 2019 at 09:20:26PM -0300, Helen Koike wrote:
>> In the case of a normal sync update, the preparation of framebuffers (be
>> it calling drm_atomic_helper_prepare_planes() or doing setups with
>> drm_framebuffer_get()) are performed in the new_state and the respective
>> cleanups are performed in the old_state.
>>
>> In the case of async updates, the preparation is also done in the
>> new_state but the cleanups are done in the new_state (because updates
>> are performed in place, i.e. in the current state).
>>
>> The current code blocks async udpates when the fb is changed, turning
>> async updates into sync updates, slowing down cursor updates and
>> introducing regressions in igt tests with errors of type:
>>
>> "CRITICAL: completed 97 cursor updated in a period of 30 flips, we
>> expect to complete approximately 15360 updates, with the threshold set
>> at 7680"
>>
>> Fb changes in async updates were prevented to avoid the following scenario:
>>
>> - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1
>> - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2
>> - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 
>> (wrong)
>> Where we have a single call to prepare fb2 but double cleanup call to fb2.
>>
>> To solve the above problems, instead of blocking async fb changes, we
>> place the old framebuffer in the new_state object, so when the code
>> performs cleanups in the new_state it will cleanup the old_fb and we
>> will have the following scenario instead:
>>
>> - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup
>> - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1
>> - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2
>>
>> Where calls to prepare/cleanup are balanced.
>>
>> Cc:  # v4.14+
> 
> I'm not convinced this should be cc: stable, seems more in the improvement
> category than a bug fix.

I'm cc'ing to stable because the commit mentioned below inserted a
regression regarding the speed that cursors can be updated.

> 
>> Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates")
>> Suggested-by: Boris Brezillon 
>> Signed-off-by: Helen Koike 
>> Reviewed-by: Boris Brezillon 
>> Reviewed-by: Nicholas Kazlauskas 
>>
>> ---
>> Hello,
>>
>> I added a TODO in drm_atomic_helper_async_commit() regarding doing a
>> full state swap(), Boris and Nicholas, let me know if this is ok and if
>> I can keep your Reviewed-by tags)
>>
>> As mentioned in the cover letter, I tested in almost all platforms with
>> igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any
>> regressions. But I couldn't test on MSM and AMD because I don't have
>> the hardware I would appreciate if anyone could help me testing those.
>>
>> Thanks!
>> Helen
>>
>> Changes in v3:
>> - Add Reviewed-by tags
>> - Add TODO in drm_atomic_helper_async_commit()
>>
>> Changes in v2:
>> - Change the order of the patch in the series, add this as the last one.
>> - Add documentation
>> - s/ballanced/balanced
>>
>>  drivers/gpu/drm/drm_atomic_helper.c  | 22 --
>>  include/drm/drm_modeset_helper_vtables.h |  5 +
>>  2 files changed, 17 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
>> b/drivers/gpu/drm/drm_atomic_helper.c
>> index 2453678d1186..de5812c362b5 100644
>> --- a/drivers/gpu/drm/drm_atomic_helper.c
>> +++ b/drivers/gpu/drm/drm_atomic_helper.c
>> @@ -1608,15 +1608,6 @@ int drm_atomic_helper_async_check(struct drm_device 
>> *dev,
>>  old_plane_state->crtc != new_plane_state->crtc)
>>  return -EINVAL;
>>  
>> -/*
>> - * FIXME: Since prepare_fb and cleanup_fb are always called on
>> - * the new_plane_state for async updates we need to block framebuffer
>> - * changes. This prevents use of a fb that's been cleaned up and
>> - * double cleanups from occuring.
>> - */
>> -if (old_plane_state->fb != new_plane_state->fb)
>> -return -EINVAL;
>> -
>>  funcs = plane->helper_private;
>>  if (!funcs->atomic_async_update)
>>  return -EINVAL;
>> @@ -1647,6 +1638,8 @@ EXPORT_SYMBOL(drm_atomic_helper_async_check);
>>   * drm_atomic_async_check() succeeds. Async commits are not supposed to swap
>>   * the states like normal sy

Re: [PATCH v3 2/4] drm/atomic: rename async_{update,check} to amend_{update,check}

2019-04-12 Thread Helen Koike
Hi Boris,

On 4/12/19 10:49 AM, Boris Brezillon wrote:
> Hi Helen,
> 
> On Fri, 12 Apr 2019 09:58:25 -0300
> Helen Koike  wrote:
> 
>> Asynchronous update is the ability change the hw state at any time, not
>> only during vblank.
>>
>> Amend mode is the ability to perform 1000 commits to be applied as soon
>> as possible without waiting for 1000 vblanks.
>>
>> async updates can be seen as amend, but the opposite is not true.
>>
>> _plane_helper_funcs.atomic_async_{update,check}() was being used by
>> drivers to implement amend and not async. So rename them to amend.
>>
>> Also improve docs explaining the difference.
>>
>> If asynchronous is required, normal page flip can be performed using
>> DRM_MODE_PAGE_FLIP_ASYNC flag.
>>
>> Signed-off-by: Helen Koike 
>>
>> ---
>> Hello,
>>
>> I would like to officially clarify what async update means by adding it
>> in the docs.
>> Please correct me if I am wrong, but the current async_{update,check}
>> callbacks are being used to do amend (the legacy cursor behavior), i.e.
>> to allow 1000 updates without waiting for 1000 vblanks.
> 
> Right now, the semantic of async update is driver dependent. Some
> drivers will amend the last commit touching that plane (amend semantic),
> others will update the plane buffer immediately which might cause
> tearing (async semantic).

In my pov, async updates holds the properties of an amend update, so all
async updates we have are amend, but the opposite is not true.

> 
>>
>> So I would like to clarify this in the docs and rename the current
>> callbacks to reflect this behaviour.
> 
> I'm all for this clarification, but I don't think renaming the async
> hooks is a good idea, since some drivers will not do real 'amend'. So,
> you're changing the name, but it's still confusing :-).
> 
> How about adding new hooks (and/or flags) for the AMEND case, and
> keeping the async path untouched. We can then let drivers that
> currently implement async as amend implement the amend hooks instead.
> Once you've done that, you can hook that up to the legacy cursor update
> path so that it first tries one then the other and finally falls back
> to a sync update if none of ASYNC/AMEND is possible.

I kinda did this (I re-introduced async in the last patch in the
series). I know this order is confusing, but as rockchip doesn't
implement true async, I would have to do a bunch of modifs at once to
keep the commits consistent, but I can re-work on that if it makes
things clearer.

> 
>>
>> I also see that for real async updates, the flag
>> DRM_MODE_PAGE_FLIP_ASYNC can be used in a normal sync update (it is
>> already being used by some drivers actually, in the atomic path, not only
>> in the legacy page flip, at least is what I understood from
>> amdgpu_dm_atomic_commit_tail() implementation).
> 
> Yes, right now, async does not necessarily imply non-block, but
> Daniel seemed to think that most users want non-block when they do an
> async page flip, so maybe it should be clarified too.

users could combine NONBLOCK flag with PAGE_FLIP_ASYNC, no? (we need to
add code for it of course).

Thanks
Helen

> 
> Regards,
> 
> Boris
> 
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Re: [PATCH RFC v3 4/4] drm/atomic: hook atomic_async_{check,update} with PAGE_FLIP_ASYNC flag

2019-04-12 Thread Helen Koike


On 4/12/19 9:58 AM, Helen Koike wrote:
> Add atomic_async_{check,update} hooks in drm_plane_helper_funcs.
> These hooks are called when userspace requests asyncronous page flip in
> the atomic api through the flag DRM_MODE_PAGE_FLIP_ASYNC.
> 
> Update those hooks in the drivers that implement async functions, except
> for amdgpu who handles the flag in the normal path, and rockchip who
> doesn't support async page flip.
> 
> Signed-off-by: Helen Koike 
> 
> ---
> Hi,
> 
> This patch is an attempt to expose the implementation that already exist
> for true async page flips updates through atomic api when the
> DRM_MODE_PAGE_FLIP_ASYNC is used.
> 
> In this commit I'm re-introducing the atomic_async_{check,update} hooks.
> I know it is a bit weird to remove them first and them re-add them, but
> I did this in the last commit to avoid any state of inconsistency
> between commits, as rockchip doesn't support async page flip and they were
> being used as amend.
> So I reverted to amend first and then re-introced async again
> tied to the DRM_MODE_PAGE_FLIP_ASYNC flag (I also think this is easier
> to read).
> 
> To use async, it is required to have
> dev->mode_config.async_page_flip = true;
> but I see that only amdgpu and vc4 have this, so this patch won't take
> effect on mdp5.
> Nouveau and radeon also have this flag, but they don't implement the
> async hooks yet.
> 
> Please let me know what you think.
> 
> Thanks
> Helen
> 
> Changes in v3: None
> Changes in v2: None
> Changes in v1: None
> 
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  5 +++
>  drivers/gpu/drm/drm_atomic_helper.c   | 31 
>  drivers/gpu/drm/drm_atomic_uapi.c |  3 +-
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|  2 +
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c   |  4 ++
>  drivers/gpu/drm/vc4/vc4_plane.c   |  2 +
>  include/drm/drm_atomic.h  |  2 +
>  include/drm/drm_atomic_helper.h   |  9 +++--
>  include/drm/drm_modeset_helper_vtables.h  | 37 +++
>  9 files changed, 83 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 711e7715e112..bb8a5f1997d6 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -3785,6 +3785,11 @@ static const struct drm_plane_helper_funcs 
> dm_plane_helper_funcs = {
>*/
>   .atomic_amend_check = dm_plane_atomic_async_check,
>   .atomic_amend_update = dm_plane_atomic_async_update
> + /*
> +  * Note: amdgpu takes care of DRM_MODE_PAGE_FLIP_ASYNC flag in the
> +  * normal commit path, thus .atomic_async_check and .atomic_async_update
> +  * are not provided here.
> +  */
>  };
>  
>  /*
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
> b/drivers/gpu/drm/drm_atomic_helper.c
> index 9b0df08836c3..bfcf88359de5 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -947,16 +947,31 @@ int drm_atomic_helper_check(struct drm_device *dev,
>   if (ret)
>   return ret;
>  
> + /*
> +  * If async page flip was explicitly requested, but it is not possible,
> +  * return error instead of falling back to a normal commit.
> +  * If async_amend_check returns -EOPNOTSUPP, it means
> +  * ->atomic_async_update hook doesn't exist, so fallback to normal
> +  *  commit and let the driver handle DRM_MODE_PAGE_FLIP_ASYNC flag
> +  *  through normal commit code path.
> +  */
> + if (state->async_update) {
> + ret = drm_atomic_helper_async_amend_check(dev, state, false);
> + state->async_update = !ret;
> + return !ret || ret == -EOPNOTSUPP ? 0 : ret;
> + }
> +
>   /*
>* If amend was explicitly requested, but it is not possible,
>* return error instead of falling back to a normal commit.
>*/
>   if (state->amend_update)
> - return drm_atomic_helper_amend_check(dev, state);
> + return drm_atomic_helper_async_amend_check(dev, state, true);
>  
>   /* Legacy mode falls back to a normal commit if amend isn't possible. */
>   if (state->legacy_cursor_update)
> - state->amend_update = !drm_atomic_helper_amend_check(dev, 
> state);
> + state->amend_update =
> + !drm_atomic_helper_async_amend_check(dev, state, true);
>  
>   return 0;
>  }
> @@ -1651,8 +1666,9 @@ static void commit_work(struct work_str

[PATCH v3 0/4] async vs amend - UAPI

2019-04-12 Thread Helen Koike

Hi,

This patch series is an attempt to clarify some concepts and how things
are hooked inside drm.

There are two main concepts that are similar but different and are
causing some confusion:

- Asynchronous update: is the ability change the hw state at any time, not
only during vblank.

- Amend update: is the ability to perform 1000 commits to be applied as soon
as possible without waiting for 1000 vblanks.

async updates can be seen as amend, but the opposite is not true.
Please see documentation on the commit
"drm/atomic: rename async_{update,check} to amend_{update,check}"
for a more detailed explanation.

To perform an async update, we already have the DRM_MODE_PAGE_FLIP_ASYNC
flag in the atomic API and it is already being used by amdgpu in the
atomic path.

The first two commits clarifies these differences. The last two are
RFCs that exposes new async and amend features to userspace.

We introduce in this series the flag DRM_MODE_ATOMIC_AMEND to expose
the amend feature to userspace.
The main reasons to expose this through atomic api is to avoid mixing legacy
with modern/atomic API (since their interactions are not well defined)
and to be able to explicitly manage the cursor plane.

And the last commit hooks the current async implementations with the
DRM_MODE_PAGE_FLIP_ASYNC flag.

Please, see the message in each commit and the documentation that was
added for more details and let me know what you think.

Thanks
Helen

Changes in v3:
- rebase tree
- rebase on top of renaming async_update to amend_update
- improve documentation
- don't fall back to a normal commit if amend is not possible when
requested through the atomic api

Changes in v2:
- rebase tree
- do not fall back to a non-async update if if there isn't any
pending commit to amend

Changes in v1:
- https://patchwork.freedesktop.org/patch/243088/
- Only enable it if userspace requests it.
- Only allow async update for cursor type planes.
- Rename ASYNC_UPDATE for ATOMIC_AMEND.

Helen Koike (4):
  drm/uapi: add documentation for atomic flags
  drm/atomic: rename async_{update,check} to amend_{update,check}
  drm/atomic: add ATOMIC_AMEND flag to the Atomic IOCTL.
  drm/atomic: hook atomic_async_{check,update} with PAGE_FLIP_ASYNC flag

 Documentation/gpu/drm-kms-helpers.rst |   8 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  15 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 157 ++
 drivers/gpu/drm/drm_atomic_uapi.c |   9 +
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|   6 +
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   |  12 +-
 drivers/gpu/drm/vc4/vc4_kms.c |   4 +-
 drivers/gpu/drm/vc4/vc4_plane.c   |   6 +
 include/drm/drm_atomic.h  |   4 +-
 include/drm/drm_atomic_helper.h   |   9 +-
 include/drm/drm_modeset_helper_vtables.h  |  69 ++--
 include/uapi/drm/drm_mode.h   |  27 ++-
 12 files changed, 264 insertions(+), 62 deletions(-)

-- 
2.20.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[PATCH RFC v3 4/4] drm/atomic: hook atomic_async_{check, update} with PAGE_FLIP_ASYNC flag

2019-04-12 Thread Helen Koike
Add atomic_async_{check,update} hooks in drm_plane_helper_funcs.
These hooks are called when userspace requests asyncronous page flip in
the atomic api through the flag DRM_MODE_PAGE_FLIP_ASYNC.

Update those hooks in the drivers that implement async functions, except
for amdgpu who handles the flag in the normal path, and rockchip who
doesn't support async page flip.

Signed-off-by: Helen Koike 

---
Hi,

This patch is an attempt to expose the implementation that already exist
for true async page flips updates through atomic api when the
DRM_MODE_PAGE_FLIP_ASYNC is used.

In this commit I'm re-introducing the atomic_async_{check,update} hooks.
I know it is a bit weird to remove them first and them re-add them, but
I did this in the last commit to avoid any state of inconsistency
between commits, as rockchip doesn't support async page flip and they were
being used as amend.
So I reverted to amend first and then re-introced async again
tied to the DRM_MODE_PAGE_FLIP_ASYNC flag (I also think this is easier
to read).

To use async, it is required to have
dev->mode_config.async_page_flip = true;
but I see that only amdgpu and vc4 have this, so this patch won't take
effect on mdp5.
Nouveau and radeon also have this flag, but they don't implement the
async hooks yet.

Please let me know what you think.

Thanks
Helen

Changes in v3: None
Changes in v2: None
Changes in v1: None

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  5 +++
 drivers/gpu/drm/drm_atomic_helper.c   | 31 
 drivers/gpu/drm/drm_atomic_uapi.c |  3 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|  2 +
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   |  4 ++
 drivers/gpu/drm/vc4/vc4_plane.c   |  2 +
 include/drm/drm_atomic.h  |  2 +
 include/drm/drm_atomic_helper.h   |  9 +++--
 include/drm/drm_modeset_helper_vtables.h  | 37 +++
 9 files changed, 83 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 711e7715e112..bb8a5f1997d6 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3785,6 +3785,11 @@ static const struct drm_plane_helper_funcs 
dm_plane_helper_funcs = {
 */
.atomic_amend_check = dm_plane_atomic_async_check,
.atomic_amend_update = dm_plane_atomic_async_update
+   /*
+* Note: amdgpu takes care of DRM_MODE_PAGE_FLIP_ASYNC flag in the
+* normal commit path, thus .atomic_async_check and .atomic_async_update
+* are not provided here.
+*/
 };
 
 /*
diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 9b0df08836c3..bfcf88359de5 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -947,16 +947,31 @@ int drm_atomic_helper_check(struct drm_device *dev,
if (ret)
return ret;
 
+   /*
+* If async page flip was explicitly requested, but it is not possible,
+* return error instead of falling back to a normal commit.
+* If async_amend_check returns -EOPNOTSUPP, it means
+* ->atomic_async_update hook doesn't exist, so fallback to normal
+*  commit and let the driver handle DRM_MODE_PAGE_FLIP_ASYNC flag
+*  through normal commit code path.
+*/
+   if (state->async_update) {
+   ret = drm_atomic_helper_async_amend_check(dev, state, false);
+   state->async_update = !ret;
+   return !ret || ret == -EOPNOTSUPP ? 0 : ret;
+   }
+
/*
 * If amend was explicitly requested, but it is not possible,
 * return error instead of falling back to a normal commit.
 */
if (state->amend_update)
-   return drm_atomic_helper_amend_check(dev, state);
+   return drm_atomic_helper_async_amend_check(dev, state, true);
 
/* Legacy mode falls back to a normal commit if amend isn't possible. */
if (state->legacy_cursor_update)
-   state->amend_update = !drm_atomic_helper_amend_check(dev, 
state);
+   state->amend_update =
+   !drm_atomic_helper_async_amend_check(dev, state, true);
 
return 0;
 }
@@ -1651,8 +1666,9 @@ static void commit_work(struct work_struct *work)
  * if not. Note that error just mean it can't be committed in amend mode, if it
  * fails the commit should be treated like a normal commit.
  */
-int drm_atomic_helper_amend_check(struct drm_device *dev,
-  struct drm_atomic_state *state)
+int drm_atomic_helper_async_amend_check(struct drm_device *dev,
+   struct drm_atomic_state *state,
+   bool amend)
 {
struct drm_crtc *crtc;
struct drm_crtc_state *crtc_s

[PATCH v3 2/4] drm/atomic: rename async_{update, check} to amend_{update, check}

2019-04-12 Thread Helen Koike
Asynchronous update is the ability change the hw state at any time, not
only during vblank.

Amend mode is the ability to perform 1000 commits to be applied as soon
as possible without waiting for 1000 vblanks.

async updates can be seen as amend, but the opposite is not true.

_plane_helper_funcs.atomic_async_{update,check}() was being used by
drivers to implement amend and not async. So rename them to amend.

Also improve docs explaining the difference.

If asynchronous is required, normal page flip can be performed using
DRM_MODE_PAGE_FLIP_ASYNC flag.

Signed-off-by: Helen Koike 

---
Hello,

I would like to officially clarify what async update means by adding it
in the docs.
Please correct me if I am wrong, but the current async_{update,check}
callbacks are being used to do amend (the legacy cursor behavior), i.e.
to allow 1000 updates without waiting for 1000 vblanks.

So I would like to clarify this in the docs and rename the current
callbacks to reflect this behaviour.

I also see that for real async updates, the flag
DRM_MODE_PAGE_FLIP_ASYNC can be used in a normal sync update (it is
already being used by some drivers actually, in the atomic path, not only
in the legacy page flip, at least is what I understood from
amdgpu_dm_atomic_commit_tail() implementation).

Please, let me know if I misunderstood anything. Otherwise renaming and
improving the docs would put us all in sync.

Thanks!
Helen

Changes in v3: None
Changes in v2: None
Changes in v1: None

 Documentation/gpu/drm-kms-helpers.rst |   8 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  10 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 111 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|   8 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   |   8 +-
 drivers/gpu/drm/vc4/vc4_kms.c |   4 +-
 drivers/gpu/drm/vc4/vc4_plane.c   |   8 +-
 include/drm/drm_atomic.h  |   4 +-
 include/drm/drm_atomic_helper.h   |   4 +-
 include/drm/drm_modeset_helper_vtables.h  |  38 +++---
 10 files changed, 139 insertions(+), 64 deletions(-)

diff --git a/Documentation/gpu/drm-kms-helpers.rst 
b/Documentation/gpu/drm-kms-helpers.rst
index 58b375e47615..c067a196902d 100644
--- a/Documentation/gpu/drm-kms-helpers.rst
+++ b/Documentation/gpu/drm-kms-helpers.rst
@@ -53,12 +53,18 @@ Overview
 .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
:doc: overview
 
-Implementing Asynchronous Atomic Commit
+Implementing Nonblocking Atomic Commit
 ---
 
 .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
:doc: implementing nonblocking commit
 
+Amend Mode Atomic Commit
+
+
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
+   :doc: amend mode atomic commit
+
 Helper Functions Reference
 --
 
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 2f26581b93ff..711e7715e112 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3779,8 +3779,12 @@ static const struct drm_plane_helper_funcs 
dm_plane_helper_funcs = {
.prepare_fb = dm_plane_helper_prepare_fb,
.cleanup_fb = dm_plane_helper_cleanup_fb,
.atomic_check = dm_plane_atomic_check,
-   .atomic_async_check = dm_plane_atomic_async_check,
-   .atomic_async_update = dm_plane_atomic_async_update
+   /*
+* FIXME: ideally, instead of hooking async updates to amend,
+* we could avoid tearing by modifying the pending commit.
+*/
+   .atomic_amend_check = dm_plane_atomic_async_check,
+   .atomic_amend_update = dm_plane_atomic_async_update
 };
 
 /*
@@ -6140,7 +6144,7 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
 * helper, check if it can be done asynchronously for better
 * performance.
 */
-   state->async_update = !drm_atomic_helper_async_check(dev, 
state);
+   state->amend_update = !drm_atomic_helper_amend_check(dev, 
state);
}
 
/* Must be success */
diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 2453678d1186..eb5dcd84fea7 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -948,7 +948,7 @@ int drm_atomic_helper_check(struct drm_device *dev,
return ret;
 
if (state->legacy_cursor_update)
-   state->async_update = !drm_atomic_helper_async_check(dev, 
state);
+   state->amend_update = !drm_atomic_helper_amend_check(dev, 
state);
 
return ret;
 }
@@ -1569,19 +1569,68 @@ static void commit_work(struct work_struct *work)
 }
 
 /**
- * drm_atomic_helper_async_check - check if state can be commited 
asynchronously
+ * DOC: amend mode atomic commit
+ *
+ * The amend feature provides a

[PATCH v3 5/5] drm: don't block fb changes for async plane updates

2019-03-13 Thread Helen Koike
In the case of a normal sync update, the preparation of framebuffers (be
it calling drm_atomic_helper_prepare_planes() or doing setups with
drm_framebuffer_get()) are performed in the new_state and the respective
cleanups are performed in the old_state.

In the case of async updates, the preparation is also done in the
new_state but the cleanups are done in the new_state (because updates
are performed in place, i.e. in the current state).

The current code blocks async udpates when the fb is changed, turning
async updates into sync updates, slowing down cursor updates and
introducing regressions in igt tests with errors of type:

"CRITICAL: completed 97 cursor updated in a period of 30 flips, we
expect to complete approximately 15360 updates, with the threshold set
at 7680"

Fb changes in async updates were prevented to avoid the following scenario:

- Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1
- Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2
- Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong)
Where we have a single call to prepare fb2 but double cleanup call to fb2.

To solve the above problems, instead of blocking async fb changes, we
place the old framebuffer in the new_state object, so when the code
performs cleanups in the new_state it will cleanup the old_fb and we
will have the following scenario instead:

- Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup
- Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1
- Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2

Where calls to prepare/cleanup are balanced.

Cc:  # v4.14+
Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates")
Suggested-by: Boris Brezillon 
Signed-off-by: Helen Koike 
Reviewed-by: Boris Brezillon 
Reviewed-by: Nicholas Kazlauskas 

---
Hello,

I added a TODO in drm_atomic_helper_async_commit() regarding doing a
full state swap(), Boris and Nicholas, let me know if this is ok and if
I can keep your Reviewed-by tags)

As mentioned in the cover letter, I tested in almost all platforms with
igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any
regressions. But I couldn't test on MSM and AMD because I don't have
the hardware I would appreciate if anyone could help me testing those.

Thanks!
Helen

Changes in v3:
- Add Reviewed-by tags
- Add TODO in drm_atomic_helper_async_commit()

Changes in v2:
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced

 drivers/gpu/drm/drm_atomic_helper.c  | 22 --
 include/drm/drm_modeset_helper_vtables.h |  5 +
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 2453678d1186..de5812c362b5 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1608,15 +1608,6 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
old_plane_state->crtc != new_plane_state->crtc)
return -EINVAL;
 
-   /*
-* FIXME: Since prepare_fb and cleanup_fb are always called on
-* the new_plane_state for async updates we need to block framebuffer
-* changes. This prevents use of a fb that's been cleaned up and
-* double cleanups from occuring.
-*/
-   if (old_plane_state->fb != new_plane_state->fb)
-   return -EINVAL;
-
funcs = plane->helper_private;
if (!funcs->atomic_async_update)
return -EINVAL;
@@ -1647,6 +1638,8 @@ EXPORT_SYMBOL(drm_atomic_helper_async_check);
  * drm_atomic_async_check() succeeds. Async commits are not supposed to swap
  * the states like normal sync commits, but just do in-place changes on the
  * current state.
+ *
+ * TODO: Implement full swap instead of doing in-place changes.
  */
 void drm_atomic_helper_async_commit(struct drm_device *dev,
struct drm_atomic_state *state)
@@ -1657,6 +1650,9 @@ void drm_atomic_helper_async_commit(struct drm_device 
*dev,
int i;
 
for_each_new_plane_in_state(state, plane, plane_state, i) {
+   struct drm_framebuffer *new_fb = plane_state->fb;
+   struct drm_framebuffer *old_fb = plane->state->fb;
+
funcs = plane->helper_private;
funcs->atomic_async_update(plane, plane_state);
 
@@ -1665,11 +1661,17 @@ void drm_atomic_helper_async_commit(struct drm_device 
*dev,
 * plane->state in-place, make sure at least common
 * properties have been properly updated.
 */
-   WARN_ON_ONCE(plane->state->fb != plane_state->fb);
+   WARN_ON_ONCE(plane->state->fb != new_fb);
WARN_ON_ONCE(plane->state->crtc_x != plane_state->c

[PATCH v3 0/5] drm: Fix fb changes for async updates

2019-03-13 Thread Helen Koike
Hello,

This series fixes the slow down in performance introduced by
"[PATCH v2] drm: Block fb changes for async plane updates" where async update
falls back to a sync update, causing igt failures of type:

"CRITICAL: completed 97 cursor updated in a period of 30 flips, we
expect to complete approximately 15360 updates, with the threshold set
at 7680"

Please read the commit message of "drm: don't block fb changes for async
plane updates" to understand how it works.

I tested on the rockchip, on i915 and on vc4 with igt plane_cursor_legacy and
kms_cursor_legacy and I didn't see any regressions.

I couldn't test on MSM and AMD because I don't have the hardware
I would appreciate if anyone could help me testing those.

v1 link: https://patchwork.kernel.org/cover/10837847/

Thanks!
Helen

Changes in v3:
- use swap() to swap old and new framebuffers in async_update
- get the reference to old_fb and set the worker after vop_plane_atomic_update()
- add a FIXME tag for when we have multiple fbs to be released when
vblank happens.
- update commit message
- Add Reviewed-by tags
- Add TODO in drm_atomic_helper_async_commit()

Changes in v2:
- added reviewed-by tag
- update CC stable and Fixes tag
- Added reviewed-by tag
- updated CC stable and Fixes tag
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced

Helen Koike (5):
  drm/rockchip: fix fb references in async update
  drm/amd: fix fb references in async update
  drm/msm: fix fb references in async update
  drm/vc4: fix fb references in async update
  drm: don't block fb changes for async plane updates

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 22 
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|  4 ++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   | 51 ++-
 drivers/gpu/drm/vc4/vc4_plane.c   |  2 +-
 include/drm/drm_modeset_helper_vtables.h  |  5 ++
 6 files changed, 49 insertions(+), 38 deletions(-)

-- 
2.20.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[PATCH v3 2/5] drm/amd: fix fb references in async update

2019-03-13 Thread Helen Koike
Async update callbacks are expected to set the old_fb in the new_state
so prepare/cleanup framebuffers are balanced.

Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new
fb and put the old fb) is not required, as it's taken care by
drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane().

Suggested-by: Boris Brezillon 
Signed-off-by: Helen Koike 
Reviewed-by: Nicholas Kazlauskas 

---

Changes in v3: None
Changes in v2:
- added reviewed-by tag

 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 2f26581b93ff..ce4ccd28ac5e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3760,8 +3760,7 @@ static void dm_plane_atomic_async_update(struct drm_plane 
*plane,
struct drm_plane_state *old_state =
drm_atomic_get_old_plane_state(new_state->state, plane);
 
-   if (plane->state->fb != new_state->fb)
-   drm_atomic_set_fb_for_plane(plane->state, new_state->fb);
+   swap(plane->state->fb, new_state->fb);
 
plane->state->src_x = new_state->src_x;
plane->state->src_y = new_state->src_y;
-- 
2.20.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[PATCH v2 5/5] drm: don't block fb changes for async plane updates

2019-03-11 Thread Helen Koike
In the case of a normal sync update, the preparation of framebuffers (be
it calling drm_atomic_helper_prepare_planes() or doing setups with
drm_framebuffer_get()) are performed in the new_state and the respective
cleanups are performed in the old_state.

In the case of async updates, the preparation is also done in the
new_state but the cleanups are done in the new_state (because updates
are performed in place, i.e. in the current state).

The current code blocks async udpates when the fb is changed, turning
async updates into sync updates, slowing down cursor updates and
introducing regressions in igt tests with errors of type:

"CRITICAL: completed 97 cursor updated in a period of 30 flips, we
expect to complete approximately 15360 updates, with the threshold set
at 7680"

Fb changes in async updates were prevented to avoid the following scenario:

- Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1
- Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2
- Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong)
Where we have a single call to prepare fb2 but double cleanup call to fb2.

To solve the above problems, instead of blocking async fb changes, we
place the old framebuffer in the new_state object, so when the code
performs cleanups in the new_state it will cleanup the old_fb and we
will have the following scenario instead:

- Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup
- Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1
- Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2

Where calls to prepare/cleanup are balanced.

Cc:  # v4.14+
Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates")
Suggested-by: Boris Brezillon 
Signed-off-by: Helen Koike 

---
Hello,

As mentioned in the cover letter, I tested in almost all platforms with
igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any
regressions. But I couldn't test on MSM and AMD because I don't have
the hardware I would appreciate if anyone could help me testing those.

Thanks!
Helen

Changes in v2:
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced

 drivers/gpu/drm/drm_atomic_helper.c  | 20 ++--
 include/drm/drm_modeset_helper_vtables.h |  5 +
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 540a77a2ade9..e7eb96f1efc2 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1608,15 +1608,6 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
old_plane_state->crtc != new_plane_state->crtc)
return -EINVAL;
 
-   /*
-* FIXME: Since prepare_fb and cleanup_fb are always called on
-* the new_plane_state for async updates we need to block framebuffer
-* changes. This prevents use of a fb that's been cleaned up and
-* double cleanups from occuring.
-*/
-   if (old_plane_state->fb != new_plane_state->fb)
-   return -EINVAL;
-
funcs = plane->helper_private;
if (!funcs->atomic_async_update)
return -EINVAL;
@@ -1657,6 +1648,9 @@ void drm_atomic_helper_async_commit(struct drm_device 
*dev,
int i;
 
for_each_new_plane_in_state(state, plane, plane_state, i) {
+   struct drm_framebuffer *new_fb = plane_state->fb;
+   struct drm_framebuffer *old_fb = plane->state->fb;
+
funcs = plane->helper_private;
funcs->atomic_async_update(plane, plane_state);
 
@@ -1665,11 +1659,17 @@ void drm_atomic_helper_async_commit(struct drm_device 
*dev,
 * plane->state in-place, make sure at least common
 * properties have been properly updated.
 */
-   WARN_ON_ONCE(plane->state->fb != plane_state->fb);
+   WARN_ON_ONCE(plane->state->fb != new_fb);
WARN_ON_ONCE(plane->state->crtc_x != plane_state->crtc_x);
WARN_ON_ONCE(plane->state->crtc_y != plane_state->crtc_y);
WARN_ON_ONCE(plane->state->src_x != plane_state->src_x);
WARN_ON_ONCE(plane->state->src_y != plane_state->src_y);
+
+   /*
+* Make sure the FBs have been swapped so that cleanups in the
+* new_state performs a cleanup in the old FB.
+*/
+   WARN_ON_ONCE(plane_state->fb != old_fb);
}
 }
 EXPORT_SYMBOL(drm_atomic_helper_async_commit);
diff --git a/include/drm/drm_modeset_helper_vtables.h 
b/include/drm/drm_modeset_helper_vtables.h
index cfb7be40bed7..ce582e8e8f2f 100644
--- a/include/drm/drm_modeset_helper_vtables.h
+++ b/include/drm/drm_modeset_hel

[PATCH v2 2/5] drm/amd: fix fb references in async update

2019-03-11 Thread Helen Koike
Async update callbacks are expected to set the old_fb in the new_state
so prepare/cleanup framebuffers are balanced.

Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new
fb and put the old fb) is not required, as it's taken care by
drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane().

Suggested-by: Boris Brezillon 
Signed-off-by: Helen Koike 
Reviewed-by: Nicholas Kazlauskas 

---

Changes in v2:
- added reviewed-by tag

 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 3a6f595f295e..bc02800254bf 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3760,8 +3760,7 @@ static void dm_plane_atomic_async_update(struct drm_plane 
*plane,
struct drm_plane_state *old_state =
drm_atomic_get_old_plane_state(new_state->state, plane);
 
-   if (plane->state->fb != new_state->fb)
-   drm_atomic_set_fb_for_plane(plane->state, new_state->fb);
+   swap(plane->state->fb, new_state->fb);
 
plane->state->src_x = new_state->src_x;
plane->state->src_y = new_state->src_y;
-- 
2.20.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[PATCH v2 0/5] drm: Fix fb changes for async updates

2019-03-11 Thread Helen Koike
Hello,

This series fixes the slow down in performance introduced by
"[PATCH v2] drm: Block fb changes for async plane updates" where async update
falls back to a sync update, causing igt failures of type:

"CRITICAL: completed 97 cursor updated in a period of 30 flips, we
expect to complete approximately 15360 updates, with the threshold set
at 7680"

Please read the commit message of "drm: don't block fb changes for async
plane updates" to understand how it works.

I tested on the rockchip, on i915 and on vc4 with igt plane_cursor_legacy and
kms_cursor_legacy and I didn't see any regressions.

I couldn't test on MSM and AMD because I don't have the hardware
I would appreciate if anyone could help me testing those.

v1 link: https://patchwork.kernel.org/cover/10837847/

Thanks!
Helen

Changes in v2:
- added reviewed-by tag
- update CC stable and Fixes tag
- Added reviewed-by tag
- updated CC stable and Fixes tag
- Change the order of the patch in the series, add this as the last one.
- Add documentation
- s/ballanced/balanced

Helen Koike (5):
  drm/rockchip: fix fb references in async update
  drm/amd: fix fb references in async update
  drm/msm: fix fb references in async update
  drm/vc4: fix fb references in async update
  drm: don't block fb changes for async plane updates

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 20 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|  4 ++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   | 42 +++
 drivers/gpu/drm/vc4/vc4_plane.c   |  2 +-
 include/drm/drm_modeset_helper_vtables.h  |  5 +++
 6 files changed, 45 insertions(+), 31 deletions(-)

-- 
2.20.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx