* [PATCH RESEND 0/1] drm/amd/display: add DCN support for ARM64
@ 2022-10-27 0:25 Ao Zhong
2022-10-27 0:25 ` [PATCH RESEND 1/1] " Ao Zhong
0 siblings, 1 reply; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 0:25 UTC (permalink / raw)
To: Harry Wentland, Leo Li, Rodrigo Siqueira, Arnd Bergmann,
Nathan Chancellor, Alex Deucher, Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel, Ao Zhong
Hello everyone,
Recently I got a SBSA ARM64 workstation, and try to use it as my daily
drive machine after installing an AMD RX6400 graphics card.
Since the newer AMD GPUs require DCN (Display Core Next) support to work
properly, DCN is not supported on ARM64 platforms. Because some code in
DCN needs to use FPU, and aarch64 has no soft floating-point toolchain.
Displaycore developers have started isolating code that needs to use
FPU, and most of the code has been isolated. In the process of trying to
enable DCN support for the ARM64 platform, I found that there are two
remaining code blocks that are not isolated. Due to -mgeneral-regs-only
is enabled by default to compile the kernel on the ARM64 platform, these
two code blocks will cause the compilation to fail after enabling DCN
support.
I have submitted two patches to isolate the remaining two code blocks
that need to use the FPU.
Links: https://patchwork.freedesktop.org/patch/508813/
Links: https://patchwork.freedesktop.org/patch/508816/
After merging these two patches, we can enable DCN support for ARM64
platform.
I removed -mgeneral-regs-only CFLAG in the dml/Makefile for the code
that needs to use hardware FPU, and add a control mechanism in
amdgpu_dm/dc_fpu.c for ARM Neon.
Ao Zhong (1):
drm/amd/display: add DCN support for ARM64
drivers/gpu/drm/amd/display/Kconfig | 2 +-
.../gpu/drm/amd/display/amdgpu_dm/dc_fpu.c | 6 ++
drivers/gpu/drm/amd/display/dc/dml/Makefile | 64 ++++++++++++-------
3 files changed, 49 insertions(+), 23 deletions(-)
--
2.37.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 0:25 [PATCH RESEND 0/1] drm/amd/display: add DCN support for ARM64 Ao Zhong
@ 2022-10-27 0:25 ` Ao Zhong
2022-10-27 6:41 ` Christian König
2022-10-27 10:52 ` Arnd Bergmann
0 siblings, 2 replies; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 0:25 UTC (permalink / raw)
To: Harry Wentland, Leo Li, Rodrigo Siqueira, Arnd Bergmann,
Nathan Chancellor, Alex Deucher, Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel, Ao Zhong
After moving all FPU code to the DML folder, we can enable DCN support
for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
code in the DML folder that needs to use hardware FPU, and add a control
mechanism for ARM Neon.
Signed-off-by: Ao Zhong <hacc1225@gmail.com>
---
drivers/gpu/drm/amd/display/Kconfig | 2 +-
.../gpu/drm/amd/display/amdgpu_dm/dc_fpu.c | 6 ++
drivers/gpu/drm/amd/display/dc/dml/Makefile | 64 ++++++++++++-------
3 files changed, 49 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/Kconfig b/drivers/gpu/drm/amd/display/Kconfig
index 0142affcdaa3..a7f1c4e51719 100644
--- a/drivers/gpu/drm/amd/display/Kconfig
+++ b/drivers/gpu/drm/amd/display/Kconfig
@@ -6,7 +6,7 @@ config DRM_AMD_DC
bool "AMD DC - Enable new display engine"
default y
select SND_HDA_COMPONENT if SND_HDA_CORE
- select DRM_AMD_DC_DCN if (X86 || PPC64)
+ select DRM_AMD_DC_DCN if (X86 || PPC64 || (ARM64 && KERNEL_MODE_NEON))
help
Choose this option if you want to use the new display engine
support for AMDGPU. This adds required support for Vega and
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c b/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c
index ab0c6d191038..1743ca0a3641 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c
@@ -31,6 +31,8 @@
#elif defined(CONFIG_PPC64)
#include <asm/switch_to.h>
#include <asm/cputable.h>
+#elif defined(CONFIG_ARM64)
+#include <asm/neon.h>
#endif
/**
@@ -99,6 +101,8 @@ void dc_fpu_begin(const char *function_name, const int line)
preempt_disable();
enable_kernel_fp();
}
+#elif defined(CONFIG_ARM64)
+ kernel_neon_begin();
#endif
}
@@ -136,6 +140,8 @@ void dc_fpu_end(const char *function_name, const int line)
disable_kernel_fp();
preempt_enable();
}
+#elif defined(CONFIG_ARM64)
+ kernel_neon_end();
#endif
}
diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile
index d0c6cf61c676..3cdd109189e0 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
@@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
dml_ccflags := -mhard-float -maltivec
endif
+ifdef CONFIG_ARM64
+ifdef CONFIG_DRM_AMD_DC_DCN
+dml_rcflags_arm64 := -mgeneral-regs-only
+endif
+endif
+
ifdef CONFIG_CC_IS_GCC
ifeq ($(call cc-ifversion, -lt, 0701, y), y)
IS_OLD_GCC = 1
@@ -87,32 +93,46 @@ CFLAGS_$(AMDDALPATH)/dc/dml/dsc/rc_calc_fpu.o := $(dml_ccflags)
CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags) -Wno-tautological-compare
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags) $(dml_rcflags_arm64)
CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn2x/dcn2x.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_mode_vba_31.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_rq_dlg_calc_31.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_32.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_rq_dlg_calc_32.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_util_32.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn301/dcn301_fpu.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dsc/rc_calc_fpu.o := $(dml_rcflags)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_mode_vba_31.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_rq_dlg_calc_31.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_32.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_rq_dlg_calc_32.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_util_32.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn301/dcn301_fpu.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dsc/rc_calc_fpu.o := $(dml_rcflags) $(dml_rcflags_arm64)
+ifdef CONFIG_ARM64
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn10/dcn10_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/dcn20_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn314/display_mode_vba_314.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn314/display_rq_dlg_calc_314.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn314/dcn314_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/dcn30_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/dcn32_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn321/dcn321_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/dcn31_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn302/dcn302_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn303/dcn303_fpu.o := $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_rcflags_arm64)
+endif
endif
CFLAGS_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_ccflags)
CFLAGS_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_ccflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_rcflags)
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_rcflags)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_rcflags) $(dml_rcflags_arm64)
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_rcflags) $(dml_rcflags_arm64)
DML = calcs/dce_calcs.o calcs/custom_float.o calcs/bw_fixed.o
--
2.37.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 0:25 ` [PATCH RESEND 1/1] " Ao Zhong
@ 2022-10-27 6:41 ` Christian König
2022-10-27 10:52 ` Arnd Bergmann
1 sibling, 0 replies; 15+ messages in thread
From: Christian König @ 2022-10-27 6:41 UTC (permalink / raw)
To: Ao Zhong, Harry Wentland, Leo Li, Rodrigo Siqueira, Arnd Bergmann,
Nathan Chancellor, Alex Deucher, Stephen Rothwell
Cc: linux-arm-kernel, amd-gfx
Am 27.10.22 um 02:25 schrieb Ao Zhong:
> After moving all FPU code to the DML folder, we can enable DCN support
> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
> code in the DML folder that needs to use hardware FPU, and add a control
> mechanism for ARM Neon.
It's nice to see that the FPU isolation work is so fruitful :)
> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
Acked-by: Christian König <christian.koenig@amd.com>
> ---
> drivers/gpu/drm/amd/display/Kconfig | 2 +-
> .../gpu/drm/amd/display/amdgpu_dm/dc_fpu.c | 6 ++
> drivers/gpu/drm/amd/display/dc/dml/Makefile | 64 ++++++++++++-------
> 3 files changed, 49 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/Kconfig b/drivers/gpu/drm/amd/display/Kconfig
> index 0142affcdaa3..a7f1c4e51719 100644
> --- a/drivers/gpu/drm/amd/display/Kconfig
> +++ b/drivers/gpu/drm/amd/display/Kconfig
> @@ -6,7 +6,7 @@ config DRM_AMD_DC
> bool "AMD DC - Enable new display engine"
> default y
> select SND_HDA_COMPONENT if SND_HDA_CORE
> - select DRM_AMD_DC_DCN if (X86 || PPC64)
> + select DRM_AMD_DC_DCN if (X86 || PPC64 || (ARM64 && KERNEL_MODE_NEON))
> help
> Choose this option if you want to use the new display engine
> support for AMDGPU. This adds required support for Vega and
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c b/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c
> index ab0c6d191038..1743ca0a3641 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c
> @@ -31,6 +31,8 @@
> #elif defined(CONFIG_PPC64)
> #include <asm/switch_to.h>
> #include <asm/cputable.h>
> +#elif defined(CONFIG_ARM64)
> +#include <asm/neon.h>
> #endif
>
> /**
> @@ -99,6 +101,8 @@ void dc_fpu_begin(const char *function_name, const int line)
> preempt_disable();
> enable_kernel_fp();
> }
> +#elif defined(CONFIG_ARM64)
> + kernel_neon_begin();
> #endif
> }
>
> @@ -136,6 +140,8 @@ void dc_fpu_end(const char *function_name, const int line)
> disable_kernel_fp();
> preempt_enable();
> }
> +#elif defined(CONFIG_ARM64)
> + kernel_neon_end();
> #endif
> }
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> index d0c6cf61c676..3cdd109189e0 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
> dml_ccflags := -mhard-float -maltivec
> endif
>
> +ifdef CONFIG_ARM64
> +ifdef CONFIG_DRM_AMD_DC_DCN
> +dml_rcflags_arm64 := -mgeneral-regs-only
> +endif
> +endif
> +
> ifdef CONFIG_CC_IS_GCC
> ifeq ($(call cc-ifversion, -lt, 0701, y), y)
> IS_OLD_GCC = 1
> @@ -87,32 +93,46 @@ CFLAGS_$(AMDDALPATH)/dc/dml/dsc/rc_calc_fpu.o := $(dml_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags) -Wno-tautological-compare
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags) $(dml_rcflags_arm64)
> CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn2x/dcn2x.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_mode_vba_31.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_rq_dlg_calc_31.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_32.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_rq_dlg_calc_32.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_util_32.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn301/dcn301_fpu.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dsc/rc_calc_fpu.o := $(dml_rcflags)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_mode_vba_31.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/display_rq_dlg_calc_31.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_32.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_rq_dlg_calc_32.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/display_mode_vba_util_32.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn301/dcn301_fpu.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dsc/rc_calc_fpu.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +ifdef CONFIG_ARM64
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn10/dcn10_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/dcn20_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn314/display_mode_vba_314.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn314/display_rq_dlg_calc_314.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn314/dcn314_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn30/dcn30_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn32/dcn32_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn321/dcn321_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn31/dcn31_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn302/dcn302_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn303/dcn303_fpu.o := $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_rcflags_arm64)
> +endif
> endif
> CFLAGS_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_ccflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_rcflags)
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_rcflags)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_rcflags) $(dml_rcflags_arm64)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_rcflags) $(dml_rcflags_arm64)
>
> DML = calcs/dce_calcs.o calcs/custom_float.o calcs/bw_fixed.o
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 0:25 ` [PATCH RESEND 1/1] " Ao Zhong
2022-10-27 6:41 ` Christian König
@ 2022-10-27 10:52 ` Arnd Bergmann
2022-10-27 12:52 ` Christian König
` (2 more replies)
1 sibling, 3 replies; 15+ messages in thread
From: Arnd Bergmann @ 2022-10-27 10:52 UTC (permalink / raw)
To: Ao Zhong, Harry Wentland, Leo Li, Rodrigo Siqueira,
Nathan Chancellor, Alex Deucher, Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel
On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
> After moving all FPU code to the DML folder, we can enable DCN support
> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
> code in the DML folder that needs to use hardware FPU, and add a control
> mechanism for ARM Neon.
>
> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
There have been problems with stack frame overflows on this code
in the past, how much have you tested this with random configurations
to see if we still hit them in corner cases on arm64 that may not
show up on x86 or powerpc? I would expect to see a few more of them
for every new architecture port.
> index d0c6cf61c676..3cdd109189e0 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
> dml_ccflags := -mhard-float -maltivec
> endif
>
> +ifdef CONFIG_ARM64
> +ifdef CONFIG_DRM_AMD_DC_DCN
> +dml_rcflags_arm64 := -mgeneral-regs-only
> +endif
> +endif
> +
> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
> -Wno-tautological-compare
> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
> $(dml_rcflags) $(dml_rcflags_arm64)
Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 10:52 ` Arnd Bergmann
@ 2022-10-27 12:52 ` Christian König
2022-10-27 13:38 ` Ao Zhong
2022-10-27 14:29 ` Rodrigo Siqueira
2 siblings, 0 replies; 15+ messages in thread
From: Christian König @ 2022-10-27 12:52 UTC (permalink / raw)
To: Arnd Bergmann, Ao Zhong, Harry Wentland, Leo Li, Rodrigo Siqueira,
Nathan Chancellor, Alex Deucher, Stephen Rothwell
Cc: linux-arm-kernel, amd-gfx
Am 27.10.22 um 12:52 schrieb Arnd Bergmann:
> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>> After moving all FPU code to the DML folder, we can enable DCN support
>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>> code in the DML folder that needs to use hardware FPU, and add a control
>> mechanism for ARM Neon.
>>
>> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
> There have been problems with stack frame overflows on this code
> in the past, how much have you tested this with random configurations
> to see if we still hit them in corner cases on arm64 that may not
> show up on x86 or powerpc? I would expect to see a few more of them
> for every new architecture port.
Our display team has worked quite a bit on those.
For example instead of putting large structures used for temporary
calculations on the stack we now either completely avoid or kmalloc them
as part of the CRTC structure.
On the other hand I wouldn't put my hand into the fire that this has
fixed all the problematic call paths. So keeping an eye open for this is
certainly a good idea.
Christian.
>> index d0c6cf61c676..3cdd109189e0 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>> dml_ccflags := -mhard-float -maltivec
>> endif
>>
>> +ifdef CONFIG_ARM64
>> +ifdef CONFIG_DRM_AMD_DC_DCN
>> +dml_rcflags_arm64 := -mgeneral-regs-only
>> +endif
>> +endif
>> +
>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>> -Wno-tautological-compare
>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>> $(dml_rcflags) $(dml_rcflags_arm64)
> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>
> Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 10:52 ` Arnd Bergmann
2022-10-27 12:52 ` Christian König
@ 2022-10-27 13:38 ` Ao Zhong
2022-10-27 13:44 ` Arnd Bergmann
2022-10-27 14:29 ` Rodrigo Siqueira
2 siblings, 1 reply; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 13:38 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Harry Wentland, Leo Li, Rodrigo Siqueira, Nathan Chancellor,
Alex Deucher, Stephen Rothwell, amd-gfx, linux-arm-kernel
Am Do., 27. Okt. 2022 um 12:52 Uhr schrieb Arnd Bergmann <arnd@arndb.de>:
>
> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
> > After moving all FPU code to the DML folder, we can enable DCN support
> > for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
> > code in the DML folder that needs to use hardware FPU, and add a control
> > mechanism for ARM Neon.
> >
> > Signed-off-by: Ao Zhong <hacc1225@gmail.com>
>
> There have been problems with stack frame overflows on this code
> in the past, how much have you tested this with random configurations
> to see if we still hit them in corner cases on arm64 that may not
> show up on x86 or powerpc? I would expect to see a few more of them
> for every new architecture port.
I just used this patch on my own Desktop and didn't test it much.
> > index d0c6cf61c676..3cdd109189e0 100644
> > --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
> > +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> > @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
> > dml_ccflags := -mhard-float -maltivec
> > endif
> >
> > +ifdef CONFIG_ARM64
> > +ifdef CONFIG_DRM_AMD_DC_DCN
> > +dml_rcflags_arm64 := -mgeneral-regs-only
> > +endif
> > +endif
> > +
>
> > CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
> > CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
> > CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
> > -Wno-tautological-compare
> > -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
> > +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
> > $(dml_rcflags) $(dml_rcflags_arm64)
>
> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>
> Arnd
I don't know if $(dml_rcflags) has any other use. I'm afraid my patch
will break something.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 13:38 ` Ao Zhong
@ 2022-10-27 13:44 ` Arnd Bergmann
2022-10-27 13:49 ` Ao Zhong
0 siblings, 1 reply; 15+ messages in thread
From: Arnd Bergmann @ 2022-10-27 13:44 UTC (permalink / raw)
To: Ao Zhong
Cc: Harry Wentland, Leo Li, Rodrigo Siqueira, Nathan Chancellor,
Alex Deucher, Stephen Rothwell, amd-gfx, linux-arm-kernel
On Thu, Oct 27, 2022, at 15:38, Ao Zhong wrote:
> Am Do., 27. Okt. 2022 um 12:52 Uhr schrieb Arnd Bergmann <arnd@arndb.de>:
>
>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>
> I don't know if $(dml_rcflags) has any other use. I'm afraid my patch
> will break something.
From the git history, it looks like dml_rcflags was introduced for
arm64 support originally and left in place when this support got disabled.
Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 13:44 ` Arnd Bergmann
@ 2022-10-27 13:49 ` Ao Zhong
0 siblings, 0 replies; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 13:49 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Harry Wentland, Leo Li, Rodrigo Siqueira, Nathan Chancellor,
Alex Deucher, Stephen Rothwell, amd-gfx, linux-arm-kernel
OK, I'll replace $(dml_rcflags_arm64) with $(dml_rcflags).
Am Do., 27. Okt. 2022 um 15:45 Uhr schrieb Arnd Bergmann <arnd@arndb.de>:
>
> On Thu, Oct 27, 2022, at 15:38, Ao Zhong wrote:
> > Am Do., 27. Okt. 2022 um 12:52 Uhr schrieb Arnd Bergmann <arnd@arndb.de>:
> >
> >> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
> >> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
> >
> > I don't know if $(dml_rcflags) has any other use. I'm afraid my patch
> > will break something.
>
> From the git history, it looks like dml_rcflags was introduced for
> arm64 support originally and left in place when this support got disabled.
>
> Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 10:52 ` Arnd Bergmann
2022-10-27 12:52 ` Christian König
2022-10-27 13:38 ` Ao Zhong
@ 2022-10-27 14:29 ` Rodrigo Siqueira
2022-10-27 15:22 ` Nathan Chancellor
` (4 more replies)
2 siblings, 5 replies; 15+ messages in thread
From: Rodrigo Siqueira @ 2022-10-27 14:29 UTC (permalink / raw)
To: Arnd Bergmann, Ao Zhong, Nathan Chancellor, Alex Deucher,
Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel, Harry Wentland, Leo Li
Hi Ao/Arnd/Stephen/Nathan,
Ao,
Thanks a lot for this new patch.
Since you have an ARM64 + AMD GPU, could you also run a couple of tests
in your setup? If so, this is a good set of tests imho:
1. Check plug and unplug displays (let says 5x)
2. Change resolutions
3. (most wanted test) Could you run some IGT tests?
About IGT, this is the official repository:
https://gitlab.freedesktop.org/drm/igt-gpu-tools
It should be easy to run IGT in your system. Follow a brief summary:
1. Install dependencies
(maybe I missed something)
Debian
apt install flex bison pkg-config x11proto-dri2-dev python-docutils
valgrind peg libpciaccess-dev libkmod-dev libprocps-dev libunwind-dev
libdw-dev zlib1g-dev liblzma-dev libcairo-dev libpixman-1-dev
libudev-dev libgsl-dev libasound2-dev libjson-c-dev libcurl4-openssl-dev
libxrandr-dev libxv-dev meson libdrm-dev qemu-user qemu-user-static
ArchLinux
pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng
libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib
xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils valgrind
peg meson libdrm libtool make autoconf automake gtk-doc python-docutils
git vim sudo
2. Build IGT
meson build && ninja -C build
3. Turn off your GUI
(You must run IGT without any GUI)
sudo systemctl isolate multi-user.target
After run this command, you should see the TTY.
4. Try to run this IGT test
sudo ./build/tests/kms_flip
And let me know if this test looks ok for you.
On 10/27/22 06:52, Arnd Bergmann wrote:
> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>> After moving all FPU code to the DML folder, we can enable DCN support
>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>> code in the DML folder that needs to use hardware FPU, and add a control
>> mechanism for ARM Neon.
I recommend you to add the following info in your commit:
1. System that you use to validate this change (CPU name, monitor,
distro, wayland/X, etc).
2. Describe the set of tests that you tried.
>>
>> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
>
> There have been problems with stack frame overflows on this code
> in the past, how much have you tested this with random configurations
> to see if we still hit them in corner cases on arm64 that may not
> show up on x86 or powerpc? I would expect to see a few more of them
> for every new architecture port.
Hi Arnd,
We followed your suggestion to isolate all FPU code inside a single
place (DML), and we recently completed most of this task. As a result,
all FPU flags are only used in the DML code. I guess we might have
issues in other non-x86 platforms, but this is something that we can
improve over time, and from Ao message, it looks like that DCN is
working on ARM.
At this point, my main concern is that enabling ARM64 may causes some
compilation issues that we did not reproduce yet. I cross-compiled
amd-staging-drm-next + this patch with aarch64-linux-gnu-gcc version
12.2.0 and everything looks fine.
Nathan/Stephen,
Maybe I'm wrong, but I think you have access to some sort of CI that
tests multiple builds with different compiles and configs, right? Is it
possible to check this patch + amd-staging-drm-next in the CI to help us
to anticipate any compilation issue if we merge this change?
Or should we merge it and wait until it gets merged on the mainline? In
case of a problem, we can easily revert a small patch like this, right?
Thanks
Siqueira
>> index d0c6cf61c676..3cdd109189e0 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>> dml_ccflags := -mhard-float -maltivec
>> endif
>>
>> +ifdef CONFIG_ARM64
>> +ifdef CONFIG_DRM_AMD_DC_DCN
>> +dml_rcflags_arm64 := -mgeneral-regs-only
>> +endif
>> +endif
>> +
>
>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>> -Wno-tautological-compare
>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>> $(dml_rcflags) $(dml_rcflags_arm64)
>
> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>
> Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 14:29 ` Rodrigo Siqueira
@ 2022-10-27 15:22 ` Nathan Chancellor
2022-10-27 15:30 ` Rodrigo Siqueira
2022-10-27 17:44 ` Ao Zhong
` (3 subsequent siblings)
4 siblings, 1 reply; 15+ messages in thread
From: Nathan Chancellor @ 2022-10-27 15:22 UTC (permalink / raw)
To: Rodrigo Siqueira
Cc: Arnd Bergmann, Ao Zhong, Alex Deucher, Stephen Rothwell, amd-gfx,
linux-arm-kernel, Harry Wentland, Leo Li
Hi Rodrigo,
On Thu, Oct 27, 2022 at 10:29:33AM -0400, Rodrigo Siqueira wrote:
> Nathan/Stephen,
>
> Maybe I'm wrong, but I think you have access to some sort of CI that tests
> multiple builds with different compiles and configs, right? Is it possible
> to check this patch + amd-staging-drm-next in the CI to help us to
> anticipate any compilation issue if we merge this change?
Yup, I have a build framework that I have developed for my
ClangBuiltLinux work that I was planning on putting this through to see
if there are any new warnings that show up in this code since it is
going to be built on a new architecture. I will report back on Ao's v2
(or v3 if it is available since Arnd had some comments on v2) when that
is done.
> Or should we merge it and wait until it gets merged on the mainline? In case
> of a problem, we can easily revert a small patch like this, right?
Sure, although if we can catch issues beforehand, that would be nice :)
Cheers,
Nathan
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 15:22 ` Nathan Chancellor
@ 2022-10-27 15:30 ` Rodrigo Siqueira
0 siblings, 0 replies; 15+ messages in thread
From: Rodrigo Siqueira @ 2022-10-27 15:30 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Arnd Bergmann, Ao Zhong, Alex Deucher, Stephen Rothwell, amd-gfx,
linux-arm-kernel, Harry Wentland, Leo Li
On 10/27/22 11:22, Nathan Chancellor wrote:
> Hi Rodrigo,
>
> On Thu, Oct 27, 2022 at 10:29:33AM -0400, Rodrigo Siqueira wrote:
>> Nathan/Stephen,
>>
>> Maybe I'm wrong, but I think you have access to some sort of CI that tests
>> multiple builds with different compiles and configs, right? Is it possible
>> to check this patch + amd-staging-drm-next in the CI to help us to
>> anticipate any compilation issue if we merge this change?
>
> Yup, I have a build framework that I have developed for my
> ClangBuiltLinux work that I was planning on putting this through to see
> if there are any new warnings that show up in this code since it is
> going to be built on a new architecture. I will report back on Ao's v2
> (or v3 if it is available since Arnd had some comments on v2) when that
> is done.
>
>> Or should we merge it and wait until it gets merged on the mainline? In case
>> of a problem, we can easily revert a small patch like this, right?
>
> Sure, although if we can catch issues beforehand, that would be nice :)
Hi Nathan,
Thanks a lot for checking this. Let's fix any issue that your CI reports
before merging this patch.
Thanks
Siqueira
>
> Cheers,
> Nathan
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 14:29 ` Rodrigo Siqueira
2022-10-27 15:22 ` Nathan Chancellor
@ 2022-10-27 17:44 ` Ao Zhong
2022-10-27 17:46 ` Ao Zhong
` (2 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 17:44 UTC (permalink / raw)
To: Rodrigo Siqueira, Arnd Bergmann, Nathan Chancellor, Alex Deucher,
Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel, Harry Wentland, Leo Li
Hi Rodrigo,
I have done these tests.
CPU: Kunpeng 920 3211k x24 TSV110 Core
GPU: AMD RX 6400
Monitor on DP: Mi Curved Gaming Monitor 34" (support FreeSync and 3440x1440 at 144Hz on DP)
Monitor on HDMI: a cheap 1080P HDMI capture card (ID: 534d:2109)
Distro: Gentoo with Linux 6.0.5 kernel
Desktop Environment: KDE Plasma
KDE-Plasma-Version: 5.25.5
KDE-Frameworks-Version: 5.99.0
Qt-Version: 5.15.5
Graphics Platform: wayland
I tried to plug and unplug the monitor frequently and quickly on both HDMI and DP port.
Both port works very well. I've also tried various different resolutions on my monitor with no issues.
But I can't set my monitor's refresh rate to 144Hz at 3440x1440. With X11, the 144Hz option won't show up
in the system settings, even xrandr won't show this mode. But with wayland, I can set the refresh rate to 144Hz,
but it results in a black screen. Interestingly, under wayland, if I set the refresh rate to 120Hz, the system works
fine, and the monitor shows that the current refresh rate is 120Hz, but if I restart the system, after re-entering the
desktop, the monitor shows that the current refresh rate is 144Hz. Under X11, the current refresh rate showed
by the monitor is the same as that in system settings. I don't know if that is a hardware limitation of the rx6400
or a software bug.
Am 27.10.22 um 16:29 schrieb Rodrigo Siqueira:
> Hi Ao/Arnd/Stephen/Nathan,
>
> Ao,
>
> Thanks a lot for this new patch.
>
> Since you have an ARM64 + AMD GPU, could you also run a couple of tests in your setup? If so, this is a good set of tests imho:
>
> 1. Check plug and unplug displays (let says 5x)
> 2. Change resolutions
> 3. (most wanted test) Could you run some IGT tests?
>
> About IGT, this is the official repository:
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools
>
> It should be easy to run IGT in your system. Follow a brief summary:
>
> 1. Install dependencies
>
> (maybe I missed something)
>
> Debian
> apt install flex bison pkg-config x11proto-dri2-dev python-docutils valgrind peg libpciaccess-dev libkmod-dev libprocps-dev libunwind-dev libdw-dev zlib1g-dev liblzma-dev libcairo-dev libpixman-1-dev libudev-dev libgsl-dev libasound2-dev libjson-c-dev libcurl4-openssl-dev libxrandr-dev libxv-dev meson libdrm-dev qemu-user qemu-user-static
>
> ArchLinux
> pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils valgrind peg meson libdrm libtool make autoconf automake gtk-doc python-docutils git vim sudo
>
> 2. Build IGT
>
> meson build && ninja -C build
>
> 3. Turn off your GUI
>
> (You must run IGT without any GUI)
>
> sudo systemctl isolate multi-user.target
>
> After run this command, you should see the TTY.
>
> 4. Try to run this IGT test
>
> sudo ./build/tests/kms_flip
>
> And let me know if this test looks ok for you.
>
> On 10/27/22 06:52, Arnd Bergmann wrote:
>> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>>> After moving all FPU code to the DML folder, we can enable DCN support
>>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>>> code in the DML folder that needs to use hardware FPU, and add a control
>>> mechanism for ARM Neon.
>
> I recommend you to add the following info in your commit:
>
> 1. System that you use to validate this change (CPU name, monitor, distro, wayland/X, etc).
> 2. Describe the set of tests that you tried.
>
>>>
>>> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
>>
>> There have been problems with stack frame overflows on this code
>> in the past, how much have you tested this with random configurations
>> to see if we still hit them in corner cases on arm64 that may not
>> show up on x86 or powerpc? I would expect to see a few more of them
>> for every new architecture port.
>
> Hi Arnd,
>
> We followed your suggestion to isolate all FPU code inside a single place (DML), and we recently completed most of this task. As a result, all FPU flags are only used in the DML code. I guess we might have issues in other non-x86 platforms, but this is something that we can improve over time, and from Ao message, it looks like that DCN is working on ARM.
>
> At this point, my main concern is that enabling ARM64 may causes some compilation issues that we did not reproduce yet. I cross-compiled amd-staging-drm-next + this patch with aarch64-linux-gnu-gcc version 12.2.0 and everything looks fine.
>
> Nathan/Stephen,
>
> Maybe I'm wrong, but I think you have access to some sort of CI that tests multiple builds with different compiles and configs, right? Is it possible to check this patch + amd-staging-drm-next in the CI to help us to anticipate any compilation issue if we merge this change?
>
> Or should we merge it and wait until it gets merged on the mainline? In case of a problem, we can easily revert a small patch like this, right?
>
> Thanks
> Siqueira
>
>>> index d0c6cf61c676..3cdd109189e0 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>>> dml_ccflags := -mhard-float -maltivec
>>> endif
>>>
>>> +ifdef CONFIG_ARM64
>>> +ifdef CONFIG_DRM_AMD_DC_DCN
>>> +dml_rcflags_arm64 := -mgeneral-regs-only
>>> +endif
>>> +endif
>>> +
>>
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>>> -Wno-tautological-compare
>>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
>>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>> $(dml_rcflags) $(dml_rcflags_arm64)
>>
>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>>
>> Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 14:29 ` Rodrigo Siqueira
2022-10-27 15:22 ` Nathan Chancellor
2022-10-27 17:44 ` Ao Zhong
@ 2022-10-27 17:46 ` Ao Zhong
2022-10-27 17:47 ` Ao Zhong
[not found] ` <d1157b52-c759-c765-8c74-aee43c23d6e2@estela.cn>
4 siblings, 0 replies; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 17:46 UTC (permalink / raw)
To: Rodrigo Siqueira, Arnd Bergmann, Nathan Chancellor, Alex Deucher,
Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel, Harry Wentland, Leo Li
Here are some lshw information:
hacc-arm64-pc
description: Desktop Computer
product: HUAWEIPGU-WBY0 (C233)
vendor: HUAWEI
version: D1060
serial:
width: 64 bits
capabilities: smbios-3.2.0 dmi-3.2.0 smp cp15_barrier setend swp tagged_addr_disabled
configuration: chassis=desktop family=HUAWEI sku=C233 uuid=
*-core
description: Motherboard
product: HUAWEIPGU-WBY0-PCB
vendor: HUAWEI
physical id: 0
version: D1060
serial:
slot: Null
*-firmware
description: BIOS
vendor: Byosoft
physical id: 2
version: 1.11
date: 02/07/2020
size: 128KiB
capabilities: pci pnp upgrade cdboot bootselect edd acpi biosbootspecification uefi
*-cache:0
description: L1 cache
physical id: 5
slot: L1 Instruction Cache
size: 1536KiB
capacity: 1536KiB
capabilities: synchronous internal write-back instruction
configuration: level=1
*-cache:1
description: L1 cache
physical id: 6
slot: L1 Data Cache
size: 1536KiB
capacity: 1536KiB
capabilities: synchronous internal write-back data
configuration: level=1
*-cache:2
description: L2 cache
physical id: 7
slot: L2 Cache
size: 12MiB
capacity: 12MiB
capabilities: synchronous internal varies unified
configuration: level=2
*-cache:3
description: L3 cache
physical id: 8
slot: L3 Cache
size: 24MiB
capacity: 24MiB
capabilities: synchronous internal varies unified
configuration: level=3
*-cpu
description: CPU
product: ARM (NULL)
vendor: HISILICON
physical id: 9
bus info: cpu@0
version: HUAWEI Kunpeng920 3211K
serial: NULL
slot: CPU0
size: 2600MHz
capacity: 2600MHz
clock: 100MHz
capabilities: lm
configuration: cores=24 enabledcores=24 threads=24
*-memory
description: System Memory
physical id: a
slot: System board or motherboard
size: 64GiB
*-bank:0
description: DIMM DDR4 Synchronous 3200 MHz (0,3 ns)
product: F4-3200C22-32GRS
vendor: Unknown
physical id: 0
serial:
slot: SODIMM_B
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:1
description: DIMM DDR4 Synchronous 3200 MHz (0,3 ns)
product: F4-3200C22-32GRS
vendor: Unknown
physical id: 1
serial:
slot: SODIMM_A
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-pci:0
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: 100
bus info: pci@0000:00:00.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:30 ioport:1000(size=4096) memory:e0c00000-e0efffff ioport:80080000000(size=6442450944)
*-pci
description: PCI bridge
product: Navi 10 XL Upstream Port of PCI Express Switch
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: c7
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress msi normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:29 memory:e0e00000-e0e03fff ioport:1000(size=4096) memory:e0c00000-e0dfffff ioport:80080000000(size=6442450944)
*-pci
description: PCI bridge
product: Navi 10 XL Downstream Port of PCI Express Switch
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:02:00.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress msi normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:37 ioport:1000(size=4096) memory:e0c00000-e0dfffff ioport:80080000000(size=6442450944)
*-display
description: VGA compatible controller
product: Navi 24 [Radeon RX 6400 / 6500 XT]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:03:00.0
logical name: /dev/fb0
version: c7
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=amdgpu latency=0 mode=3440x1440 resolution=3440,1440 visual=truecolor xres=3440 yres=1440
resources: iomemory:8010-800f iomemory:8000-7fff irq:250 memory:80100000000-801ffffffff memory:80080000000-800801fffff ioport:1000(size=256) memory:e0c00000-e0cfffff memory:e0d00000-e0d1ffff
*-multimedia
description: Audio device
product: Navi 21/23 HDMI/DP Audio Controller
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0.1
bus info: pci@0000:03:00.1
logical name: card0
logical name: /dev/snd/controlC0
logical name: /dev/snd/hwC0D0
logical name: /dev/snd/pcmC0D3p
logical name: /dev/snd/pcmC0D7p
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:248 memory:e0d20000-e0d23fff
*-input:0
product: HDA ATI HDMI HDMI/DP,pcm=3
physical id: 0
logical name: input4
logical name: /dev/input/event4
*-input:1
product: HDA ATI HDMI HDMI/DP,pcm=7
physical id: 1
logical name: input5
logical name: /dev/input/event5
*-pci:1
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: 101
bus info: pci@0000:00:08.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:31 ioport:2000(size=4096) memory:e0f00000-e10fffff ioport:80018000000(size=2097152)
*-nvme
description: NVMe device
product: KINGSTON SNV2S1000G
vendor: Kingston Technology Company, Inc.
physical id: 0
bus info: pci@0000:04:00.0
logical name: /dev/nvme0
version: SBI02102
serial:
width: 64 bits
clock: 33MHz
capabilities: nvme pm msi pciexpress msix nvm_express bus_master cap_list
configuration: driver=nvme latency=0 nqn=nqn.2021-03.com.kingston:nvme:nvm-subsystem-sn- state=live
resources: irq:29 memory:e0f00000-e0f03fff
*-namespace:0
description: NVMe disk
physical id: 0
logical name: hwmon1
*-namespace:1
description: NVMe disk
physical id: 2
logical name: /dev/ng0n1
*-namespace:2
description: NVMe disk
physical id: 1
bus info: nvme@0:1
logical name: /dev/nvme0n1
size: 931GiB (1TB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: guid= logicalsectorsize=512 sectorsize=512 wwid=eui.00000000000000000026b7784e21fbc5
*-volume:0 UNCLAIMED
description: Windows FAT volume
vendor: mkfs.fat
physical id: 1
bus info: nvme@0:1,1
version: FAT32
serial:
size: 98MiB
capacity: 99MiB
capabilities: boot fat initialized
configuration: FATs=2 filesystem=fat
*-volume:1
description: EFI partition
physical id: 2
bus info: nvme@0:1,2
logical name: /dev/nvme0n1p2
logical name: /
logical name: /home
serial:
capacity: 866GiB
configuration: mount.fstype=btrfs mount.options=rw,relatime,compress=zstd:1,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@home state=mounted
*-volume:2
description: EFI partition
physical id: 3
bus info: nvme@0:1,3
logical name: /dev/nvme0n1p3
logical name: /boot
serial:
capacity: 1023MiB
configuration: mount.fstype=xfs mount.options=rw,relatime,attr2,discard,inode64,logbufs=8,logbsize=32k,noquota state=mounted
*-volume:3
description: Linux swap volume
vendor: Linux
physical id: 4
bus info: nvme@0:1,4
logical name: /dev/nvme0n1p4
version: 1
serial:
size: 64GiB
capacity: 64GiB
capabilities: nofs swap initialized
configuration: filesystem=swap pagesize=4096
*-pci:2
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: 102
bus info: pci@0000:00:0a.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:32 ioport:3000(size=4096) memory:e1100000-e12fffff ioport:80018200000(size=2097152)
*-nvme
description: NVMe device
product: KXG60ZNV512G TOSHIBA
vendor: Toshiba Corporation
physical id: 0
bus info: pci@0000:05:00.0
logical name: /dev/nvme1
version: AGXA4103
serial:
width: 64 bits
clock: 33MHz
capabilities: nvme pciexpress pm msi msix nvm_express bus_master cap_list
configuration: driver=nvme latency=0 nqn=nqn.2017-03.jp.co.toshiba:KXG60ZNV512G TOSHIBA: state=live
resources: irq:29 memory:e1100000-e1103fff
*-namespace:0
description: NVMe disk
physical id: 0
logical name: hwmon0
*-namespace:1
description: NVMe disk
physical id: 2
logical name: /dev/ng1n1
*-namespace:2
description: NVMe disk
physical id: 1
bus info: nvme@1:1
logical name: /dev/nvme1n1
size: 476GiB (512GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: guid= logicalsectorsize=512 sectorsize=512 wwid=eui.00000000000000018ce38e0300176ffe
*-volume
description: EFI partition
physical id: 1
bus info: nvme@1:1,1
logical name: /dev/nvme1n1p1
logical name: /mnt/SSD2
serial:
capacity: 476GiB
configuration: mount.fstype=btrfs mount.options=rw,relatime,compress=zstd:1,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/ state=mounted
*-pci:3
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: c
bus info: pci@0000:00:0c.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:33 ioport:4000(size=4096) memory:e0000000-e0bfffff ioport:80018400000(size=2097152)
*-network UNCLAIMED
description: Network controller
product: Huawei Technologies Co., Ltd.
vendor: Huawei Technologies Co., Ltd.
physical id: 0
bus info: pci@0000:06:00.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list
configuration: latency=0
resources: memory:e0000000-e07fffff memory:e0800000-e0803fff
*-pci:4
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: d
bus info: pci@0000:00:0d.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:34 ioport:5000(size=4096) memory:e1300000-e14fffff ioport:80018600000(size=2097152)
*-usb
description: USB controller
product: uPD720202 USB 3.0 Host Controller
vendor: Renesas Technology Corp.
physical id: 0
bus info: pci@0000:07:00.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: pm msi msix pciexpress xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:29 memory:e1300000-e1301fff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
physical id: 0
bus info: usb@2
logical name: usb2
version: 6.00
capabilities: usb-2.00
configuration: driver=hub slots=2 speed=480Mbit/s
*-usb:0
description: USB hub
product: 4-Port USB 2.1 Hub
vendor: Generic
physical id: 1
bus info: usb@2:1
version: 1.01
capabilities: usb-2.10
configuration: driver=hub slots=4 speed=480Mbit/s
*-usb:1 UNCLAIMED
description: Communication device
product: Goodix Fingerprint Device
vendor: Shenzhen Goodix Technology Co.,Ltd.
physical id: 2
bus info: usb@2:2
version: 2.00
capabilities: usb-2.00
configuration: maxpower=100mA speed=12Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
physical id: 1
bus info: usb@3
logical name: usb3
version: 6.00
capabilities: usb-3.00
configuration: driver=hub slots=2 speed=5000Mbit/s
*-usb
description: USB hub
product: 4-Port USB 3.1 Hub
vendor: Generic
physical id: 1
bus info: usb@3:1
version: 1.01
capabilities: usb-3.10
configuration: driver=hub slots=4 speed=5000Mbit/s
*-pci:5
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: e
bus info: pci@0000:00:0e.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:35 ioport:6000(size=4096) memory:e1500000-e16fffff ioport:80018800000(size=2097152)
*-pci:6
description: PCI bridge
product: HiSilicon PCIe Root Port with Gen4
vendor: Huawei Technologies Co., Ltd.
physical id: f
bus info: pci@0000:00:0f.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:36 ioport:7000(size=4096) memory:e1700000-e18fffff ioport:80018a00000(size=2097152)
*-pci:7
description: PCI bridge
product: HiSilicon PCI-PCI Bridge
vendor: Huawei Technologies Co., Ltd.
physical id: 103
bus info: pci@0000:74:00.0
version: 20
width: 64 bits
clock: 33MHz
capabilities: pci pciexpress pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: iomemory:1010-100f irq:0
*-pci:8
description: PCI bridge
product: HiSilicon PCI-PCI Bridge
vendor: Huawei Technologies Co., Ltd.
physical id: 104
bus info: pci@0000:74:01.0
version: 20
width: 64 bits
clock: 33MHz
capabilities: pci pciexpress pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: iomemory:1010-100f irq:0 ioport:141000000(size=8388608)
*-generic UNCLAIMED
description: Unassigned class
product: SafeNet (wrong ID)
vendor: SafeNet (wrong ID)
physical id: 0
bus info: pci@0000:76:00.0
version: ff
width: 32 bits
clock: 66MHz
capabilities: bus_master vga_palette cap_list
configuration: latency=255 maxlatency=255 mingnt=255
resources: memory:141000000-1413fffff memory:141400000-1417effff
*-sas:0 UNCLAIMED
description: Serial Attached SCSI controller
product: HiSilicon SAS 3.0 HBA
vendor: Huawei Technologies Co., Ltd.
physical id: b
bus info: pci@0000:74:02.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: sas pciexpress msi pm cap_list
configuration: latency=0
resources: memory:a2000000-a2007fff
*-sata
description: SATA controller
product: HiSilicon AHCI HBA
vendor: Huawei Technologies Co., Ltd.
physical id: 3
bus info: pci@0000:74:03.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: sata pciexpress msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:235 memory:a2010000-a2010fff
*-sas:1 UNCLAIMED
description: Serial Attached SCSI controller
product: HiSilicon SAS 3.0 HBA
vendor: Huawei Technologies Co., Ltd.
physical id: 4
bus info: pci@0000:74:04.0
version: 21
width: 32 bits
clock: 33MHz
capabilities: sas pciexpress msi pm cap_list
configuration: latency=0
resources: memory:a2008000-a200ffff
*-pci:9
description: PCI bridge
product: HiSilicon PCI-PCI Bridge
vendor: Huawei Technologies Co., Ltd.
physical id: 105
bus info: pci@0000:78:00.0
version: 20
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:0
*-raid UNCLAIMED
description: RAID bus controller
product: HiSilicon RDE Engine
vendor: Huawei Technologies Co., Ltd.
physical id: 10
bus info: pci@0000:78:01.0
version: 21
width: 64 bits
clock: 33MHz
capabilities: raid pciexpress msi pm cap_list
configuration: latency=0
resources: iomemory:20-1f memory:208000000-2083fffff
*-usb:0
description: USB controller
product: HiSilicon USB 1.1 Host Controller
vendor: Huawei Technologies Co., Ltd.
physical id: 11
bus info: pci@0000:7a:00.0
version: 21
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm ohci bus_master cap_list
configuration: driver=ohci-pci latency=0
resources: iomemory:20-1f irq:249 memory:20c100000-20c100fff
*-usbhost
product: OHCI PCI host controller
vendor: Linux 6.0.5-gentoo-arm64 ohci_hcd
physical id: 1
bus info: usb@6
logical name: usb6
version: 6.00
capabilities: usb-1.10
configuration: driver=hub slots=2 speed=12Mbit/s
*-usb:1
description: USB controller
product: HiSilicon USB 2.0 2-port Host Controller
vendor: Huawei Technologies Co., Ltd.
physical id: 1
bus info: pci@0000:7a:01.0
version: 21
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm ehci bus_master cap_list
configuration: driver=ehci-pci latency=0
resources: iomemory:20-1f irq:237 memory:20c101000-20c101fff
*-usbhost
product: EHCI Host Controller
vendor: Linux 6.0.5-gentoo-arm64 ehci_hcd
physical id: 1
bus info: usb@1
logical name: usb1
version: 6.00
capabilities: usb-2.00
configuration: driver=hub slots=2 speed=480Mbit/s
*-usb
description: Audio device
product: Generic USB Audio
vendor: Generic
physical id: 1
bus info: usb@1:1
logical name: card1
logical name: /dev/snd/controlC1
logical name: /dev/snd/pcmC1D0c
logical name: /dev/snd/pcmC1D0p
logical name: /dev/snd/pcmC1D1c
logical name: /dev/snd/pcmC1D1p
logical name: /dev/snd/pcmC1D2c
logical name: /dev/snd/pcmC1D2p
logical name: input1
logical name: /dev/input/event1
version: 0.13
capabilities: usb-2.00 audio-control usb
configuration: driver=usbhid maxpower=100mA speed=480Mbit/s
*-usb:2
description: USB controller
product: HiSilicon USB 3.0 Host Controller
vendor: Huawei Technologies Co., Ltd.
physical id: 12
bus info: pci@0000:7a:02.0
version: 21
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: iomemory:20-1f irq:246 memory:20c000000-20c0fffff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
physical id: 0
bus info: usb@4
logical name: usb4
version: 6.00
capabilities: usb-2.00
configuration: driver=hub slots=1 speed=480Mbit/s
*-usb
description: USB hub
product: 4-Port USB 2.1 Hub
vendor: Generic
physical id: 1
bus info: usb@4:1
version: 1.01
capabilities: usb-2.10
configuration: driver=hub slots=4 speed=480Mbit/s
*-usb:0
description: USB hub
product: USB2.1 Hub
vendor: GenesysLogic
physical id: 1
bus info: usb@4:1.1
version: 6.63
capabilities: usb-2.10
configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
*-usb:0
description: Bluetooth wireless interface
product: Bluetooth Radio
vendor: Realtek
physical id: 1
bus info: usb@4:1.1.1
version: 2.00
serial:
capabilities: bluetooth usb-1.10
configuration: driver=btusb maxpower=500mA speed=12Mbit/s
*-usb:1
description: Bluetooth wireless interface
product: Bluetooth Radio
vendor: Realtek
physical id: 2
bus info: usb@4:1.1.2
version: 2.00
serial:
capabilities: bluetooth usb-1.10
configuration: driver=btusb maxpower=500mA speed=12Mbit/s
*-usb:2
description: Video
product: FHD Camera Microphone: FHD Came
vendor: SunplusIT Inc
physical id: 3
bus info: usb@4:1.1.3
logical name: card3
logical name: /dev/snd/controlC3
logical name: /dev/snd/pcmC3D0c
logical name: input6
logical name: /dev/input/event6
version: 10.14
serial: 01.00.00
capabilities: usb-2.00 usb
configuration: driver=snd-usb-audio maxpower=500mA speed=480Mbit/s
*-usb:3
description: USB hub
product: HighSpeed Hub
vendor: NEC Corp.
physical id: 4
bus info: usb@4:1.1.4
version: 1.00
capabilities: usb-2.00
configuration: driver=hub maxpower=100mA slots=3 speed=480Mbit/s
*-usb
description: Keyboard
product: Topre Corporation HHKB Professional
vendor: Topre Corporation
physical id: 1
bus info: usb@4:1.1.4.1
logical name: input3
logical name: /dev/input/event3
logical name: input3::capslock
logical name: input3::compose
logical name: input3::kana
logical name: input3::numlock
logical name: input3::scrolllock
version: 1.02
capabilities: usb-1.10 usb
configuration: driver=usbhid maxpower=100mA speed=12Mbit/s
*-usb:1
description: Human interface device
product: SAVITECH Bravo-X USB Audio
vendor: SAVITECH
physical id: 2
bus info: usb@4:1.2
logical name: card2
logical name: /dev/snd/controlC2
logical name: /dev/snd/pcmC2D0p
logical name: /dev/snd/pcmC2D1p
logical name: input2
logical name: /dev/input/event2
version: 0.01
capabilities: usb-1.10 usb
configuration: driver=snd-usb-audio maxpower=100mA speed=12Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 6.0.5-gentoo-arm64 xhci-hcd
physical id: 1
bus info: usb@5
logical name: usb5
version: 6.00
capabilities: usb-3.00
configuration: driver=hub slots=1 speed=5000Mbit/s
*-usb
description: USB hub
product: 4-Port USB 3.1 Hub
vendor: Generic
physical id: 1
bus info: usb@5:1
version: 1.01
capabilities: usb-3.10
configuration: driver=hub slots=4 speed=5000Mbit/s
*-usb
description: USB hub
product: USB3.1 Hub
vendor: GenesysLogic
physical id: 1
bus info: usb@5:1.1
version: 6.63
capabilities: usb-3.20
configuration: driver=hub slots=4 speed=5000Mbit/s
*-generic
description: System peripheral
product: HiSilicon Embedded DMA Engine
vendor: Huawei Technologies Co., Ltd.
physical id: 13
bus info: pci@0000:7b:00.0
version: 21
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm bus_master cap_list
configuration: driver=hisi_dma latency=0
resources: iomemory:10-f irq:39 memory:148800000-148803fff
*-pci:10
description: PCI bridge
product: HiSilicon PCI-PCI Bridge
vendor: Huawei Technologies Co., Ltd.
physical id: 0
bus info: pci@0000:7c:00.0
version: 20
width: 64 bits
clock: 33MHz
capabilities: pci pciexpress pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: iomemory:1010-100f irq:0 ioport:120000000(size=2097152)
*-network
description: Ethernet interface
product: HNS GE/10GE/25GE RDMA Network Controller
vendor: Huawei Technologies Co., Ltd.
physical id: 0
bus info: pci@0000:7d:00.0
logical name: enp125s0f0
version: 21
serial:
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pciexpress msix pm bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=hns3 driverversion=6.0.5-gentoo-arm64 duplex=full firmware=1.8.15.0 ip=192.168.1.150 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: iomemory:10-f iomemory:10-f irq:0 memory:120100000-12010ffff memory:120000000-1200fffff
*-pnp00:00
product: 16550A-compatible COM port
physical id: 14
capabilities: pnp
configuration: driver=serial
*-input:0
product: Power Button
physical id: 1
logical name: input0
logical name: /dev/input/event0
capabilities: platform
*-input:1
product: MX Vertical Mouse
physical id: 2
logical name: input7
logical name: /dev/input/event7
logical name: /dev/input/mouse0
capabilities: bluetooth
Am 27.10.22 um 16:29 schrieb Rodrigo Siqueira:
> Hi Ao/Arnd/Stephen/Nathan,
>
> Ao,
>
> Thanks a lot for this new patch.
>
> Since you have an ARM64 + AMD GPU, could you also run a couple of tests in your setup? If so, this is a good set of tests imho:
>
> 1. Check plug and unplug displays (let says 5x)
> 2. Change resolutions
> 3. (most wanted test) Could you run some IGT tests?
>
> About IGT, this is the official repository:
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools
>
> It should be easy to run IGT in your system. Follow a brief summary:
>
> 1. Install dependencies
>
> (maybe I missed something)
>
> Debian
> apt install flex bison pkg-config x11proto-dri2-dev python-docutils valgrind peg libpciaccess-dev libkmod-dev libprocps-dev libunwind-dev libdw-dev zlib1g-dev liblzma-dev libcairo-dev libpixman-1-dev libudev-dev libgsl-dev libasound2-dev libjson-c-dev libcurl4-openssl-dev libxrandr-dev libxv-dev meson libdrm-dev qemu-user qemu-user-static
>
> ArchLinux
> pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils valgrind peg meson libdrm libtool make autoconf automake gtk-doc python-docutils git vim sudo
>
> 2. Build IGT
>
> meson build && ninja -C build
>
> 3. Turn off your GUI
>
> (You must run IGT without any GUI)
>
> sudo systemctl isolate multi-user.target
>
> After run this command, you should see the TTY.
>
> 4. Try to run this IGT test
>
> sudo ./build/tests/kms_flip
>
> And let me know if this test looks ok for you.
>
> On 10/27/22 06:52, Arnd Bergmann wrote:
>> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>>> After moving all FPU code to the DML folder, we can enable DCN support
>>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>>> code in the DML folder that needs to use hardware FPU, and add a control
>>> mechanism for ARM Neon.
>
> I recommend you to add the following info in your commit:
>
> 1. System that you use to validate this change (CPU name, monitor, distro, wayland/X, etc).
> 2. Describe the set of tests that you tried.
>
>>>
>>> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
>>
>> There have been problems with stack frame overflows on this code
>> in the past, how much have you tested this with random configurations
>> to see if we still hit them in corner cases on arm64 that may not
>> show up on x86 or powerpc? I would expect to see a few more of them
>> for every new architecture port.
>
> Hi Arnd,
>
> We followed your suggestion to isolate all FPU code inside a single place (DML), and we recently completed most of this task. As a result, all FPU flags are only used in the DML code. I guess we might have issues in other non-x86 platforms, but this is something that we can improve over time, and from Ao message, it looks like that DCN is working on ARM.
>
> At this point, my main concern is that enabling ARM64 may causes some compilation issues that we did not reproduce yet. I cross-compiled amd-staging-drm-next + this patch with aarch64-linux-gnu-gcc version 12.2.0 and everything looks fine.
>
> Nathan/Stephen,
>
> Maybe I'm wrong, but I think you have access to some sort of CI that tests multiple builds with different compiles and configs, right? Is it possible to check this patch + amd-staging-drm-next in the CI to help us to anticipate any compilation issue if we merge this change?
>
> Or should we merge it and wait until it gets merged on the mainline? In case of a problem, we can easily revert a small patch like this, right?
>
> Thanks
> Siqueira
>
>>> index d0c6cf61c676..3cdd109189e0 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>>> dml_ccflags := -mhard-float -maltivec
>>> endif
>>>
>>> +ifdef CONFIG_ARM64
>>> +ifdef CONFIG_DRM_AMD_DC_DCN
>>> +dml_rcflags_arm64 := -mgeneral-regs-only
>>> +endif
>>> +endif
>>> +
>>
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>>> -Wno-tautological-compare
>>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
>>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>> $(dml_rcflags) $(dml_rcflags_arm64)
>>
>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>>
>> Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
2022-10-27 14:29 ` Rodrigo Siqueira
` (2 preceding siblings ...)
2022-10-27 17:46 ` Ao Zhong
@ 2022-10-27 17:47 ` Ao Zhong
[not found] ` <d1157b52-c759-c765-8c74-aee43c23d6e2@estela.cn>
4 siblings, 0 replies; 15+ messages in thread
From: Ao Zhong @ 2022-10-27 17:47 UTC (permalink / raw)
To: Rodrigo Siqueira, Arnd Bergmann, Nathan Chancellor, Alex Deucher,
Stephen Rothwell
Cc: amd-gfx, linux-arm-kernel, Harry Wentland, Leo Li
Here is the output from kms_flip:
IGT-Version: 1.26-NO-GIT (aarch64) (Linux: 6.0.5-gentoo-arm64 aarch64)
Using monotonic timestamps
Starting subtest: nonblocking-read
Subtest nonblocking-read: SUCCESS (0.000s)
Starting subtest: wf_vblank-ts-check
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (8.475s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.932s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.932s)
Subtest wf_vblank-ts-check: SUCCESS (32.569s)
Starting subtest: 2x-wf_vblank-ts-check
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.672s)
Subtest 2x-wf_vblank-ts-check: SUCCESS (30.673s)
Starting subtest: blocking-wf_vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.0us +- 0.000us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (8.242s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.932s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.932s)
Subtest blocking-wf_vblank: SUCCESS (32.337s)
Starting subtest: 2x-blocking-wf_vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.688s)
Subtest 2x-blocking-wf_vblank: SUCCESS (30.689s)
Starting subtest: absolute-wf_vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.902s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.890s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.648s)
Subtest absolute-wf_vblank: SUCCESS (31.090s)
Starting subtest: 2x-absolute-wf_vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.389s)
Subtest 2x-absolute-wf_vblank: SUCCESS (30.389s)
Starting subtest: blocking-absolute-wf_vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.902s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.890s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.651s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.651s)
Subtest blocking-absolute-wf_vblank: SUCCESS (31.096s)
Starting subtest: 2x-blocking-absolute-wf_vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.389s)
Subtest 2x-blocking-absolute-wf_vblank: SUCCESS (30.389s)
Starting subtest: basic-plain-flip
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.822s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.790s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.665s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.648s)
Subtest basic-plain-flip: SUCCESS (2.926s)
Starting subtest: 2x-plain-flip
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (2.390s)
Subtest 2x-plain-flip: SUCCESS (2.390s)
Starting subtest: busy-flip
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.822s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.810s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.648s)
Subtest busy-flip: SUCCESS (2.929s)
Starting subtest: 2x-busy-flip
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (1.388s)
Subtest 2x-busy-flip: SUCCESS (1.388s)
Starting subtest: flip-vs-fences
Test requirement not met in function run_test, file ../igt-gpu-tools-1.26/tests/kms_flip.c:1444:
Test requirement: !(flags & TEST_FENCE_STRESS) || gem_available_fences(drm_fd)
Subtest flip-vs-fences: SKIP (0.000s)
Starting subtest: 2x-flip-vs-fences
Test requirement not met in function run_pair, file ../igt-gpu-tools-1.26/tests/kms_flip.c:1499:
Test requirement: !(flags & TEST_FENCE_STRESS) || gem_available_fences(drm_fd)
Subtest 2x-flip-vs-fences: SKIP (0.000s)
Starting subtest: plain-flip-ts-check
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (8.142s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.150s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.932s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.931s)
Subtest plain-flip-ts-check: SUCCESS (32.156s)
Starting subtest: 2x-plain-flip-ts-check
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.672s)
Subtest 2x-plain-flip-ts-check: SUCCESS (30.672s)
Starting subtest: plain-flip-fb-recreate
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (8.142s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.130s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.932s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.931s)
Subtest plain-flip-fb-recreate: SUCCESS (32.136s)
Starting subtest: 2x-plain-flip-fb-recreate
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.689s)
Subtest 2x-plain-flip-fb-recreate: SUCCESS (30.689s)
Starting subtest: flip-vs-rmfb
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.711s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.638s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.679s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.679s)
Subtest flip-vs-rmfb: SUCCESS (30.708s)
Starting subtest: 2x-flip-vs-rmfb
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.549s)
Subtest 2x-flip-vs-rmfb: SUCCESS (30.549s)
Starting subtest: basic-flip-vs-dpms
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.884s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.852s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.709s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.712s)
Subtest basic-flip-vs-dpms: SUCCESS (3.157s)
Starting subtest: 2x-flip-vs-dpms
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (2.535s)
Subtest 2x-flip-vs-dpms: SUCCESS (2.536s)
Starting subtest: flip-vs-panning
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.839s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.841s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.663s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.662s)
Subtest flip-vs-panning: SUCCESS (31.005s)
Starting subtest: 2x-flip-vs-panning
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.437s)
Subtest 2x-flip-vs-panning: SUCCESS (30.437s)
Starting subtest: basic-flip-vs-modeset
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.865s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.872s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.658s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.658s)
Subtest basic-flip-vs-modeset: SUCCESS (3.054s)
Starting subtest: 2x-flip-vs-modeset
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (2.435s)
Subtest 2x-flip-vs-modeset: SUCCESS (2.435s)
Starting subtest: flip-vs-expired-vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.790s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.790s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.665s)
Subtest flip-vs-expired-vblank: SUCCESS (30.893s)
Starting subtest: 2x-flip-vs-expired-vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.388s)
Subtest 2x-flip-vs-expired-vblank: SUCCESS (30.389s)
Starting subtest: flip-vs-absolute-wf_vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest A-DP1: SUCCESS (8.242s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest B-DP1: SUCCESS (8.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.932s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.931s)
Subtest flip-vs-absolute-wf_vblank: SUCCESS (32.336s)
Starting subtest: 2x-flip-vs-absolute-wf_vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.689s)
Subtest 2x-flip-vs-absolute-wf_vblank: SUCCESS (30.689s)
Starting subtest: basic-flip-vs-wf_vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest A-DP1: SUCCESS (1.242s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (1.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (0.931s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (0.931s)
Subtest basic-flip-vs-wf_vblank: SUCCESS (4.335s)
Starting subtest: 2x-flip-vs-wf_vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (2.672s)
Subtest 2x-flip-vs-wf_vblank: SUCCESS (2.672s)
Starting subtest: flip-vs-blocking-wf-vblank
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest A-DP1: SUCCESS (8.242s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.935s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.931s)
Subtest flip-vs-blocking-wf-vblank: SUCCESS (32.339s)
Starting subtest: 2x-flip-vs-blocking-wf-vblank
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.671s)
Subtest 2x-flip-vs-blocking-wf-vblank: SUCCESS (30.671s)
Starting subtest: flip-vs-modeset-vs-hang
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest A-DP1: SKIP (0.162s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest B-DP1: SKIP (0.582s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest A-HDMI-A1: SKIP (0.249s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest B-HDMI-A1: SKIP (0.153s)
Subtest flip-vs-modeset-vs-hang: SUCCESS (1.146s)
Starting subtest: 2x-flip-vs-modeset-vs-hang
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest AB-DP1-HDMI-A1: SKIP (0.320s)
Subtest 2x-flip-vs-modeset-vs-hang: SUCCESS (0.321s)
Starting subtest: flip-vs-panning-vs-hang
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest A-DP1: SKIP (0.365s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest B-DP1: SKIP (0.582s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest A-HDMI-A1: SKIP (0.232s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest B-HDMI-A1: SKIP (0.153s)
Subtest flip-vs-panning-vs-hang: SUCCESS (1.333s)
Starting subtest: 2x-flip-vs-panning-vs-hang
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Test requirement not met in function gem_require_ring, file ../igt-gpu-tools-1.26/lib/ioctl_wrappers.c:1073:
Test requirement: gem_has_ring(fd, ring)
Dynamic subtest AB-DP1-HDMI-A1: SKIP (0.337s)
Subtest 2x-flip-vs-panning-vs-hang: SUCCESS (0.337s)
Starting subtest: flip-vs-dpms-off-vs-modeset
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (1.573s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (1.354s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.641s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.642s)
Subtest flip-vs-dpms-off-vs-modeset: SUCCESS (4.210s)
Starting subtest: 2x-flip-vs-dpms-off-vs-modeset
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (1.226s)
Subtest 2x-flip-vs-dpms-off-vs-modeset: SUCCESS (1.226s)
Starting subtest: single-buffer-flip-vs-dpms-off-vs-modeset
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (1.355s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (1.355s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.641s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.642s)
Subtest single-buffer-flip-vs-dpms-off-vs-modeset: SUCCESS (3.993s)
Starting subtest: 2x-single-buffer-flip-vs-dpms-off-vs-modeset
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (1.226s)
Subtest 2x-single-buffer-flip-vs-dpms-off-vs-modeset: SUCCESS (1.226s)
Starting subtest: dpms-off-confusion
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.790s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.790s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.648s)
Subtest dpms-off-confusion: SUCCESS (30.877s)
Starting subtest: nonexisting-fb
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.791s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.791s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.648s)
Subtest nonexisting-fb: SUCCESS (2.879s)
Starting subtest: 2x-nonexisting-fb
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (0.889s)
Subtest 2x-nonexisting-fb: SUCCESS (0.889s)
Starting subtest: dpms-vs-vblank-race
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (3.453s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (3.461s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (2.879s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (2.880s)
Subtest dpms-vs-vblank-race: SUCCESS (12.674s)
Starting subtest: 2x-dpms-vs-vblank-race
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (10.867s)
Subtest 2x-dpms-vs-vblank-race: SUCCESS (10.867s)
Starting subtest: modeset-vs-vblank-race
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest A-DP1: SUCCESS (3.361s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (3.360s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (3.016s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (3.016s)
Subtest modeset-vs-vblank-race: SUCCESS (12.754s)
Starting subtest: 2x-modeset-vs-vblank-race
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (10.708s)
Subtest 2x-modeset-vs-vblank-race: SUCCESS (10.708s)
Starting subtest: bo-too-big
Starting dynamic subtest: A-DP1
Stack trace:
Dynamic subtest A-DP1: FAIL (0.003s)
Starting dynamic subtest: B-DP1
Stack trace:
Dynamic subtest B-DP1: FAIL (0.002s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.634s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.635s)
Subtest bo-too-big: FAIL (1.275s)
Starting subtest: flip-vs-suspend
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Test requirement not met in function suspend_via_rtcwake, file ../igt-gpu-tools-1.26/lib/igt_aux.c:769:
Test requirement: ret == 0
rtcwake test failed with 1
This failure could mean that something is wrong with the rtcwake tool or how your distro is set up.
Dynamic subtest A-DP1: SKIP (0.133s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Stack trace:
Dynamic subtest B-DP1: FAIL (0.542s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Stack trace:
Dynamic subtest A-HDMI-A1: FAIL (0.214s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Stack trace:
Dynamic subtest B-HDMI-A1: FAIL (0.119s)
Subtest flip-vs-suspend: FAIL (1.009s)
Starting subtest: 2x-flip-vs-suspend
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Stack trace:
Dynamic subtest AB-DP1-HDMI-A1: FAIL (0.285s)
Subtest 2x-flip-vs-suspend: FAIL (0.285s)
Starting subtest: wf_vblank-ts-check-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Stack trace:
Dynamic subtest A-DP1: FAIL (3.651s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Stack trace:
Dynamic subtest B-DP1: FAIL (3.862s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Stack trace:
Dynamic subtest A-HDMI-A1: FAIL (3.482s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Stack trace:
Dynamic subtest B-HDMI-A1: FAIL (3.386s)
Subtest wf_vblank-ts-check-interruptible: FAIL (14.382s)
Starting subtest: 2x-wf_vblank-ts-check-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Stack trace:
Dynamic subtest AB-DP1-HDMI-A1: FAIL (3.537s)
Subtest 2x-wf_vblank-ts-check-interruptible: FAIL (3.537s)
Starting subtest: absolute-wf_vblank-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: CRASH (0.326s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (8.300s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.648s)
Subtest absolute-wf_vblank-interruptible: SUCCESS (23.924s)
Starting subtest: 2x-absolute-wf_vblank-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.389s)
Subtest 2x-absolute-wf_vblank-interruptible: SUCCESS (30.389s)
Starting subtest: blocking-absolute-wf_vblank-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.903s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.890s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.651s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.648s)
Subtest blocking-absolute-wf_vblank-interruptible: SUCCESS (31.093s)
Starting subtest: 2x-blocking-absolute-wf_vblank-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.389s)
Subtest 2x-blocking-absolute-wf_vblank-interruptible: SUCCESS (30.389s)
Starting subtest: plain-flip-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.802s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.790s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.648s)
Subtest plain-flip-interruptible: SUCCESS (2.890s)
Starting subtest: 2x-plain-flip-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (2.387s)
Subtest 2x-plain-flip-interruptible: SUCCESS (2.388s)
Starting subtest: flip-vs-fences-interruptible
Test requirement not met in function run_test, file ../igt-gpu-tools-1.26/tests/kms_flip.c:1444:
Test requirement: !(flags & TEST_FENCE_STRESS) || gem_available_fences(drm_fd)
Subtest flip-vs-fences-interruptible: SKIP (0.000s)
Starting subtest: 2x-flip-vs-fences-interruptible
Test requirement not met in function run_pair, file ../igt-gpu-tools-1.26/tests/kms_flip.c:1499:
Test requirement: !(flags & TEST_FENCE_STRESS) || gem_available_fences(drm_fd)
Subtest 2x-flip-vs-fences-interruptible: SKIP (0.000s)
Starting subtest: plain-flip-ts-check-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (8.142s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.130s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.935s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.931s)
Subtest plain-flip-ts-check-interruptible: SUCCESS (32.140s)
Starting subtest: 2x-plain-flip-ts-check-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.672s)
Subtest 2x-plain-flip-ts-check-interruptible: SUCCESS (30.672s)
Starting subtest: plain-flip-fb-recreate-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (8.142s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest B-DP1: SUCCESS (8.130s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.931s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.935s)
Subtest plain-flip-fb-recreate-interruptible: SUCCESS (32.140s)
Starting subtest: 2x-plain-flip-fb-recreate-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.8us +- 0.447us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.689s)
Subtest 2x-plain-flip-fb-recreate-interruptible: SUCCESS (30.689s)
Starting subtest: flip-vs-rmfb-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.651s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.679s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.679s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.682s)
Subtest flip-vs-rmfb-interruptible: SUCCESS (30.692s)
Starting subtest: 2x-flip-vs-rmfb-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.242s)
Subtest 2x-flip-vs-rmfb-interruptible: SUCCESS (30.242s)
Starting subtest: flip-vs-panning-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.852s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.840s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.662s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.662s)
Subtest flip-vs-panning-interruptible: SUCCESS (31.018s)
Starting subtest: 2x-flip-vs-panning-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.438s)
Subtest 2x-flip-vs-panning-interruptible: SUCCESS (30.438s)
Starting subtest: flip-vs-expired-vblank-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.802s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.790s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.648s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.648s)
Subtest flip-vs-expired-vblank-interruptible: SUCCESS (30.890s)
Starting subtest: 2x-flip-vs-expired-vblank-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.389s)
Subtest 2x-flip-vs-expired-vblank-interruptible: SUCCESS (30.389s)
Starting subtest: flip-vs-absolute-wf_vblank-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest A-DP1: SUCCESS (8.242s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (8.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (7.932s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (7.931s)
Subtest flip-vs-absolute-wf_vblank-interruptible: SUCCESS (32.337s)
Starting subtest: 2x-flip-vs-absolute-wf_vblank-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (30.672s)
Subtest 2x-flip-vs-absolute-wf_vblank-interruptible: SUCCESS (30.672s)
Starting subtest: flip-vs-wf_vblank-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (1.242s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (1.230s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (0.934s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.447us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (0.931s)
Subtest flip-vs-wf_vblank-interruptible: SUCCESS (4.338s)
Starting subtest: 2x-flip-vs-wf_vblank-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (2.688s)
Subtest 2x-flip-vs-wf_vblank-interruptible: SUCCESS (2.688s)
Starting subtest: flip-vs-dpms-off-vs-modeset-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (1.367s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (1.354s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.642s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.641s)
Subtest flip-vs-dpms-off-vs-modeset-interruptible: SUCCESS (4.005s)
Starting subtest: 2x-flip-vs-dpms-off-vs-modeset-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (1.226s)
Subtest 2x-flip-vs-dpms-off-vs-modeset-interruptible: SUCCESS (1.226s)
Starting subtest: single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (1.354s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (1.394s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.641s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.642s)
Subtest single-buffer-flip-vs-dpms-off-vs-modeset-interruptible: SUCCESS (4.031s)
Starting subtest: 2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (1.227s)
Subtest 2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible: SUCCESS (1.227s)
Starting subtest: dpms-off-confusion-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (7.790s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (7.789s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (7.647s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (7.647s)
Subtest dpms-off-confusion-interruptible: SUCCESS (30.875s)
Starting subtest: nonexisting-fb-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest A-DP1: SUCCESS (0.791s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Dynamic subtest B-DP1: SUCCESS (0.790s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.647s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.648s)
Subtest nonexisting-fb-interruptible: SUCCESS (2.877s)
Starting subtest: 2x-nonexisting-fb-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (0.888s)
Subtest 2x-nonexisting-fb-interruptible: SUCCESS (0.889s)
Starting subtest: dpms-vs-vblank-race-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (3.453s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.342us accuracy 0.01%
Dynamic subtest B-DP1: SUCCESS (3.442s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (2.880s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (2.883s)
Subtest dpms-vs-vblank-race-interruptible: SUCCESS (12.659s)
Starting subtest: 2x-dpms-vs-vblank-race-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (10.834s)
Subtest 2x-dpms-vs-vblank-race-interruptible: SUCCESS (10.834s)
Starting subtest: modeset-vs-vblank-race-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest A-DP1: SUCCESS (3.341s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Expected frametime: 20000us; measured 20000.1us +- 0.250us accuracy 0.00%
Dynamic subtest B-DP1: SUCCESS (3.400s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest A-HDMI-A1: SUCCESS (3.015s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest B-HDMI-A1: SUCCESS (3.015s)
Subtest modeset-vs-vblank-race-interruptible: SUCCESS (12.772s)
Starting subtest: 2x-modeset-vs-vblank-race-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Expected frametime: 16667us; measured 16666.7us +- 0.479us accuracy 0.01%
Dynamic subtest AB-DP1-HDMI-A1: SUCCESS (10.708s)
Subtest 2x-modeset-vs-vblank-race-interruptible: SUCCESS (10.708s)
Starting subtest: bo-too-big-interruptible
Starting dynamic subtest: A-DP1
Stack trace:
Dynamic subtest A-DP1: FAIL (0.003s)
Starting dynamic subtest: B-DP1
Stack trace:
Dynamic subtest B-DP1: FAIL (0.002s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest A-HDMI-A1: SUCCESS (0.634s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Dynamic subtest B-HDMI-A1: SUCCESS (0.635s)
Subtest bo-too-big-interruptible: FAIL (1.275s)
Starting subtest: flip-vs-suspend-interruptible
Starting dynamic subtest: A-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Test requirement not met in function suspend_via_rtcwake, file ../igt-gpu-tools-1.26/lib/igt_aux.c:769:
Test requirement: ret == 0
rtcwake test failed with 1
This failure could mean that something is wrong with the rtcwake tool or how your distro is set up.
Dynamic subtest A-DP1: SKIP (0.134s)
Starting dynamic subtest: B-DP1
3440x1440 50 3440 3488 3520 3600 1440 1443 1448 1481 0x9 0x48 266580
Stack trace:
Dynamic subtest B-DP1: FAIL (0.543s)
Starting dynamic subtest: A-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Stack trace:
Dynamic subtest A-HDMI-A1: FAIL (0.214s)
Starting dynamic subtest: B-HDMI-A1
1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Stack trace:
Dynamic subtest B-HDMI-A1: FAIL (0.119s)
Subtest flip-vs-suspend-interruptible: FAIL (1.010s)
Starting subtest: 2x-flip-vs-suspend-interruptible
Starting dynamic subtest: AB-DP1-HDMI-A1
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
3840x2160 60 3840 4016 4104 4400 2160 2168 2178 2250 0x5 0x40 594000
Stack trace:
Dynamic subtest AB-DP1-HDMI-A1: FAIL (0.285s)
Subtest 2x-flip-vs-suspend-interruptible: FAIL (0.285s)
Am 27.10.22 um 16:29 schrieb Rodrigo Siqueira:
> Hi Ao/Arnd/Stephen/Nathan,
>
> Ao,
>
> Thanks a lot for this new patch.
>
> Since you have an ARM64 + AMD GPU, could you also run a couple of tests in your setup? If so, this is a good set of tests imho:
>
> 1. Check plug and unplug displays (let says 5x)
> 2. Change resolutions
> 3. (most wanted test) Could you run some IGT tests?
>
> About IGT, this is the official repository:
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools
>
> It should be easy to run IGT in your system. Follow a brief summary:
>
> 1. Install dependencies
>
> (maybe I missed something)
>
> Debian
> apt install flex bison pkg-config x11proto-dri2-dev python-docutils valgrind peg libpciaccess-dev libkmod-dev libprocps-dev libunwind-dev libdw-dev zlib1g-dev liblzma-dev libcairo-dev libpixman-1-dev libudev-dev libgsl-dev libasound2-dev libjson-c-dev libcurl4-openssl-dev libxrandr-dev libxv-dev meson libdrm-dev qemu-user qemu-user-static
>
> ArchLinux
> pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils valgrind peg meson libdrm libtool make autoconf automake gtk-doc python-docutils git vim sudo
>
> 2. Build IGT
>
> meson build && ninja -C build
>
> 3. Turn off your GUI
>
> (You must run IGT without any GUI)
>
> sudo systemctl isolate multi-user.target
>
> After run this command, you should see the TTY.
>
> 4. Try to run this IGT test
>
> sudo ./build/tests/kms_flip
>
> And let me know if this test looks ok for you.
>
> On 10/27/22 06:52, Arnd Bergmann wrote:
>> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>>> After moving all FPU code to the DML folder, we can enable DCN support
>>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>>> code in the DML folder that needs to use hardware FPU, and add a control
>>> mechanism for ARM Neon.
>
> I recommend you to add the following info in your commit:
>
> 1. System that you use to validate this change (CPU name, monitor, distro, wayland/X, etc).
> 2. Describe the set of tests that you tried.
>
>>>
>>> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
>>
>> There have been problems with stack frame overflows on this code
>> in the past, how much have you tested this with random configurations
>> to see if we still hit them in corner cases on arm64 that may not
>> show up on x86 or powerpc? I would expect to see a few more of them
>> for every new architecture port.
>
> Hi Arnd,
>
> We followed your suggestion to isolate all FPU code inside a single place (DML), and we recently completed most of this task. As a result, all FPU flags are only used in the DML code. I guess we might have issues in other non-x86 platforms, but this is something that we can improve over time, and from Ao message, it looks like that DCN is working on ARM.
>
> At this point, my main concern is that enabling ARM64 may causes some compilation issues that we did not reproduce yet. I cross-compiled amd-staging-drm-next + this patch with aarch64-linux-gnu-gcc version 12.2.0 and everything looks fine.
>
> Nathan/Stephen,
>
> Maybe I'm wrong, but I think you have access to some sort of CI that tests multiple builds with different compiles and configs, right? Is it possible to check this patch + amd-staging-drm-next in the CI to help us to anticipate any compilation issue if we merge this change?
>
> Or should we merge it and wait until it gets merged on the mainline? In case of a problem, we can easily revert a small patch like this, right?
>
> Thanks
> Siqueira
>
>>> index d0c6cf61c676..3cdd109189e0 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>>> dml_ccflags := -mhard-float -maltivec
>>> endif
>>>
>>> +ifdef CONFIG_ARM64
>>> +ifdef CONFIG_DRM_AMD_DC_DCN
>>> +dml_rcflags_arm64 := -mgeneral-regs-only
>>> +endif
>>> +endif
>>> +
>>
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>>> -Wno-tautological-compare
>>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags)
>>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>> $(dml_rcflags) $(dml_rcflags_arm64)
>>
>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>>
>> Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
[not found] ` <d1157b52-c759-c765-8c74-aee43c23d6e2@estela.cn>
@ 2022-10-28 15:50 ` Rodrigo Siqueira Jordao
0 siblings, 0 replies; 15+ messages in thread
From: Rodrigo Siqueira Jordao @ 2022-10-28 15:50 UTC (permalink / raw)
To: Estela ad Astra, Ao Zhong
Cc: Leo Li, Harry Wentland, linux-arm-kernel, amd-gfx, Arnd Bergmann,
Nathan Chancellor, Alex Deucher, Stephen Rothwell
On 2022-10-27 15:24, Estela ad Astra wrote:
> Hello.
>
> I have tested it on a Phytium D2000 platform with RX 5500 XT.
>
> Distro: Arch Linux ARM
>
> Kernel: Linux 6.0.5-1-phytium aarch64 (patched,
> https://github.com/saeziae/pkgbuild-linux-phytium )
>
> Plug and unplug: OK on all ports.
>
> Resolutions tested: 3840x2160@60Hz, 2560x1440@60Hz, 1920*1080@60Hz
>
> Dual-screen: 3840x2160@60Hz on DP plus 2560x1440@60Hz on HDMI.
>
> Graphic applications: glxgears. 1080P video on MPV (VAAPI). Minecraft.
>
> IGT test:
>
> Most tests went well, with a few error logs.
>
> > cat kms_flip.log| grep FAIL
> Dynamic subtest A-HDMI-A1: FAIL (0.201s)
> Subtest absolute-wf_vblank: FAIL (29.571s)
> Dynamic subtest A-HDMI-A1: FAIL (0.172s)
> Subtest blocking-absolute-wf_vblank: FAIL (29.537s)
> Dynamic subtest A-HDMI-A1: FAIL (0.257s)
> Subtest blocking-absolute-wf_vblank-interruptible: FAIL (29.458s)
>
> Photos and video clips: https://t.me/esteladaily/334
>
> Thank you for all you guys' excellent work.
Hi Estela/Ao,
Thanks a lot for running those tests. I'm glad to see that DCN is
working with ARM in general.
Estela,
Could you share more details about your test system? I'm trying to
understand your system and Ao, so we can try to add one ARM64 system to
our CI.
Thanks
Siqueira
>
> On 27/10/2022 22:29, Rodrigo Siqueira wrote:
>> Hi Ao/Arnd/Stephen/Nathan,
>>
>> Ao,
>>
>> Thanks a lot for this new patch.
>>
>> Since you have an ARM64 + AMD GPU, could you also run a couple of
>> tests in your setup? If so, this is a good set of tests imho:
>>
>> 1. Check plug and unplug displays (let says 5x)
>> 2. Change resolutions
>> 3. (most wanted test) Could you run some IGT tests?
>>
>> About IGT, this is the official repository:
>>
>> https://gitlab.freedesktop.org/drm/igt-gpu-tools
>>
>> It should be easy to run IGT in your system. Follow a brief summary:
>>
>> 1. Install dependencies
>>
>> (maybe I missed something)
>>
>> Debian
>> apt install flex bison pkg-config x11proto-dri2-dev python-docutils
>> valgrind peg libpciaccess-dev libkmod-dev libprocps-dev libunwind-dev
>> libdw-dev zlib1g-dev liblzma-dev libcairo-dev libpixman-1-dev
>> libudev-dev libgsl-dev libasound2-dev libjson-c-dev
>> libcurl4-openssl-dev libxrandr-dev libxv-dev meson libdrm-dev
>> qemu-user qemu-user-static
>>
>> ArchLinux
>> pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng
>> libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib
>> xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils
>> valgrind peg meson libdrm libtool make autoconf automake gtk-doc
>> python-docutils git vim sudo
>>
>> 2. Build IGT
>>
>> meson build && ninja -C build
>>
>> 3. Turn off your GUI
>>
>> (You must run IGT without any GUI)
>>
>> sudo systemctl isolate multi-user.target
>>
>> After run this command, you should see the TTY.
>>
>> 4. Try to run this IGT test
>>
>> sudo ./build/tests/kms_flip
>>
>> And let me know if this test looks ok for you.
>>
>> On 10/27/22 06:52, Arnd Bergmann wrote:
>>> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>>>> After moving all FPU code to the DML folder, we can enable DCN support
>>>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>>>> code in the DML folder that needs to use hardware FPU, and add a
>>>> control
>>>> mechanism for ARM Neon.
>>
>> I recommend you to add the following info in your commit:
>>
>> 1. System that you use to validate this change (CPU name, monitor,
>> distro, wayland/X, etc).
>> 2. Describe the set of tests that you tried.
>>
>>>>
>>>> Signed-off-by: Ao Zhong <hacc1225@gmail.com>
>>>
>>> There have been problems with stack frame overflows on this code
>>> in the past, how much have you tested this with random configurations
>>> to see if we still hit them in corner cases on arm64 that may not
>>> show up on x86 or powerpc? I would expect to see a few more of them
>>> for every new architecture port.
>>
>> Hi Arnd,
>>
>> We followed your suggestion to isolate all FPU code inside a single
>> place (DML), and we recently completed most of this task. As a result,
>> all FPU flags are only used in the DML code. I guess we might have
>> issues in other non-x86 platforms, but this is something that we can
>> improve over time, and from Ao message, it looks like that DCN is
>> working on ARM.
>>
>> At this point, my main concern is that enabling ARM64 may causes some
>> compilation issues that we did not reproduce yet. I cross-compiled
>> amd-staging-drm-next + this patch with aarch64-linux-gnu-gcc version
>> 12.2.0 and everything looks fine.
>>
>> Nathan/Stephen,
>>
>> Maybe I'm wrong, but I think you have access to some sort of CI that
>> tests multiple builds with different compiles and configs, right? Is
>> it possible to check this patch + amd-staging-drm-next in the CI to
>> help us to anticipate any compilation issue if we merge this change?
>>
>> Or should we merge it and wait until it gets merged on the mainline?
>> In case of a problem, we can easily revert a small patch like this,
>> right?
>>
>> Thanks
>> Siqueira
>>
>>>> index d0c6cf61c676..3cdd109189e0 100644
>>>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>>>> dml_ccflags := -mhard-float -maltivec
>>>> endif
>>>>
>>>> +ifdef CONFIG_ARM64
>>>> +ifdef CONFIG_DRM_AMD_DC_DCN
>>>> +dml_rcflags_arm64 := -mgeneral-regs-only
>>>> +endif
>>>> +endif
>>>> +
>>>
>>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>>>> -Wno-tautological-compare
>>>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>>> $(dml_rcflags)
>>>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>>> $(dml_rcflags) $(dml_rcflags_arm64)
>>>
>>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>>>
>>> Arnd
>>
>>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2022-10-28 15:58 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-27 0:25 [PATCH RESEND 0/1] drm/amd/display: add DCN support for ARM64 Ao Zhong
2022-10-27 0:25 ` [PATCH RESEND 1/1] " Ao Zhong
2022-10-27 6:41 ` Christian König
2022-10-27 10:52 ` Arnd Bergmann
2022-10-27 12:52 ` Christian König
2022-10-27 13:38 ` Ao Zhong
2022-10-27 13:44 ` Arnd Bergmann
2022-10-27 13:49 ` Ao Zhong
2022-10-27 14:29 ` Rodrigo Siqueira
2022-10-27 15:22 ` Nathan Chancellor
2022-10-27 15:30 ` Rodrigo Siqueira
2022-10-27 17:44 ` Ao Zhong
2022-10-27 17:46 ` Ao Zhong
2022-10-27 17:47 ` Ao Zhong
[not found] ` <d1157b52-c759-c765-8c74-aee43c23d6e2@estela.cn>
2022-10-28 15:50 ` Rodrigo Siqueira Jordao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).