* [PATCH 2/3] drm/msm: clean up fault injection usage
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
@ 2024-08-13 12:12 ` Jani Nikula
2024-08-13 12:30 ` Thomas Hellström
` (2 more replies)
2024-08-13 12:12 ` [PATCH 3/3] drm/xe: " Jani Nikula
` (6 subsequent siblings)
7 siblings, 3 replies; 16+ messages in thread
From: Jani Nikula @ 2024-08-13 12:12 UTC (permalink / raw)
To: linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov, jani.nikula
With the proper stubs in place in linux/fault-inject.h, we can remove a
bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/msm/msm_debugfs.c | 2 --
drivers/gpu/drm/msm/msm_drv.c | 2 --
drivers/gpu/drm/msm/msm_drv.h | 4 ----
3 files changed, 8 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_debugfs.c
index 4494f6d1c7cb..7ab607252d18 100644
--- a/drivers/gpu/drm/msm/msm_debugfs.c
+++ b/drivers/gpu/drm/msm/msm_debugfs.c
@@ -357,12 +357,10 @@ void msm_debugfs_init(struct drm_minor *minor)
if (priv->kms && priv->kms->funcs->debugfs_init)
priv->kms->funcs->debugfs_init(priv->kms, minor);
-#ifdef CONFIG_FAULT_INJECTION
fault_create_debugfs_attr("fail_gem_alloc", minor->debugfs_root,
&fail_gem_alloc);
fault_create_debugfs_attr("fail_gem_iova", minor->debugfs_root,
&fail_gem_iova);
-#endif
}
#endif
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 9c33f4e3f822..6938410f4fc7 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -58,10 +58,8 @@ static bool modeset = true;
MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
module_param(modeset, bool, 0600);
-#ifdef CONFIG_FAULT_INJECTION
DECLARE_FAULT_ATTR(fail_gem_alloc);
DECLARE_FAULT_ATTR(fail_gem_iova);
-#endif
static int msm_drm_uninit(struct device *dev)
{
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index be016d7b4ef1..9b953860131b 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -33,12 +33,8 @@
#include <drm/msm_drm.h>
#include <drm/drm_gem.h>
-#ifdef CONFIG_FAULT_INJECTION
extern struct fault_attr fail_gem_alloc;
extern struct fault_attr fail_gem_iova;
-#else
-# define should_fail(attr, size) 0
-#endif
struct msm_kms;
struct msm_gpu;
--
2.39.2
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] drm/msm: clean up fault injection usage
2024-08-13 12:12 ` [PATCH 2/3] drm/msm: clean up fault injection usage Jani Nikula
@ 2024-08-13 12:30 ` Thomas Hellström
2024-08-13 12:54 ` Ghimiray, Himal Prasad
2024-08-14 23:38 ` Abhinav Kumar
2 siblings, 0 replies; 16+ messages in thread
From: Thomas Hellström @ 2024-08-13 12:30 UTC (permalink / raw)
To: Jani Nikula, linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, robdclark, quic_abhinavk,
dmitry.baryshkov
On Tue, 2024-08-13 at 15:12 +0300, Jani Nikula wrote:
> With the proper stubs in place in linux/fault-inject.h, we can remove
> a
> bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
LGTM.
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> drivers/gpu/drm/msm/msm_debugfs.c | 2 --
> drivers/gpu/drm/msm/msm_drv.c | 2 --
> drivers/gpu/drm/msm/msm_drv.h | 4 ----
> 3 files changed, 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_debugfs.c
> b/drivers/gpu/drm/msm/msm_debugfs.c
> index 4494f6d1c7cb..7ab607252d18 100644
> --- a/drivers/gpu/drm/msm/msm_debugfs.c
> +++ b/drivers/gpu/drm/msm/msm_debugfs.c
> @@ -357,12 +357,10 @@ void msm_debugfs_init(struct drm_minor *minor)
> if (priv->kms && priv->kms->funcs->debugfs_init)
> priv->kms->funcs->debugfs_init(priv->kms, minor);
>
> -#ifdef CONFIG_FAULT_INJECTION
> fault_create_debugfs_attr("fail_gem_alloc", minor-
> >debugfs_root,
> &fail_gem_alloc);
> fault_create_debugfs_attr("fail_gem_iova", minor-
> >debugfs_root,
> &fail_gem_iova);
> -#endif
> }
> #endif
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c
> b/drivers/gpu/drm/msm/msm_drv.c
> index 9c33f4e3f822..6938410f4fc7 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -58,10 +58,8 @@ static bool modeset = true;
> MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on
> (default), 0=disable)");
> module_param(modeset, bool, 0600);
>
> -#ifdef CONFIG_FAULT_INJECTION
> DECLARE_FAULT_ATTR(fail_gem_alloc);
> DECLARE_FAULT_ATTR(fail_gem_iova);
> -#endif
>
> static int msm_drm_uninit(struct device *dev)
> {
> diff --git a/drivers/gpu/drm/msm/msm_drv.h
> b/drivers/gpu/drm/msm/msm_drv.h
> index be016d7b4ef1..9b953860131b 100644
> --- a/drivers/gpu/drm/msm/msm_drv.h
> +++ b/drivers/gpu/drm/msm/msm_drv.h
> @@ -33,12 +33,8 @@
> #include <drm/msm_drm.h>
> #include <drm/drm_gem.h>
>
> -#ifdef CONFIG_FAULT_INJECTION
> extern struct fault_attr fail_gem_alloc;
> extern struct fault_attr fail_gem_iova;
> -#else
> -# define should_fail(attr, size) 0
> -#endif
>
> struct msm_kms;
> struct msm_gpu;
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] drm/msm: clean up fault injection usage
2024-08-13 12:12 ` [PATCH 2/3] drm/msm: clean up fault injection usage Jani Nikula
2024-08-13 12:30 ` Thomas Hellström
@ 2024-08-13 12:54 ` Ghimiray, Himal Prasad
2024-08-14 23:38 ` Abhinav Kumar
2 siblings, 0 replies; 16+ messages in thread
From: Ghimiray, Himal Prasad @ 2024-08-13 12:54 UTC (permalink / raw)
To: Jani Nikula, linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov
On 13-08-2024 17:42, Jani Nikula wrote:
> With the proper stubs in place in linux/fault-inject.h, we can remove a
> bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/msm/msm_debugfs.c | 2 --
> drivers/gpu/drm/msm/msm_drv.c | 2 --
> drivers/gpu/drm/msm/msm_drv.h | 4 ----
> 3 files changed, 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_debugfs.c
> index 4494f6d1c7cb..7ab607252d18 100644
> --- a/drivers/gpu/drm/msm/msm_debugfs.c
> +++ b/drivers/gpu/drm/msm/msm_debugfs.c
> @@ -357,12 +357,10 @@ void msm_debugfs_init(struct drm_minor *minor)
> if (priv->kms && priv->kms->funcs->debugfs_init)
> priv->kms->funcs->debugfs_init(priv->kms, minor);
>
> -#ifdef CONFIG_FAULT_INJECTION
> fault_create_debugfs_attr("fail_gem_alloc", minor->debugfs_root,
> &fail_gem_alloc);
> fault_create_debugfs_attr("fail_gem_iova", minor->debugfs_root,
> &fail_gem_iova);
> -#endif
> }
> #endif
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 9c33f4e3f822..6938410f4fc7 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -58,10 +58,8 @@ static bool modeset = true;
> MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
> module_param(modeset, bool, 0600);
>
> -#ifdef CONFIG_FAULT_INJECTION
> DECLARE_FAULT_ATTR(fail_gem_alloc);
> DECLARE_FAULT_ATTR(fail_gem_iova);
> -#endif
>
> static int msm_drm_uninit(struct device *dev)
> {
> diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
> index be016d7b4ef1..9b953860131b 100644
> --- a/drivers/gpu/drm/msm/msm_drv.h
> +++ b/drivers/gpu/drm/msm/msm_drv.h
> @@ -33,12 +33,8 @@
> #include <drm/msm_drm.h>
> #include <drm/drm_gem.h>
>
> -#ifdef CONFIG_FAULT_INJECTION
> extern struct fault_attr fail_gem_alloc;
> extern struct fault_attr fail_gem_iova;
> -#else
> -# define should_fail(attr, size) 0
> -#endif
LGTM
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>
> struct msm_kms;
> struct msm_gpu;
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] drm/msm: clean up fault injection usage
2024-08-13 12:12 ` [PATCH 2/3] drm/msm: clean up fault injection usage Jani Nikula
2024-08-13 12:30 ` Thomas Hellström
2024-08-13 12:54 ` Ghimiray, Himal Prasad
@ 2024-08-14 23:38 ` Abhinav Kumar
2 siblings, 0 replies; 16+ messages in thread
From: Abhinav Kumar @ 2024-08-14 23:38 UTC (permalink / raw)
To: Jani Nikula, linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
dmitry.baryshkov
On 8/13/2024 5:12 AM, Jani Nikula wrote:
> With the proper stubs in place in linux/fault-inject.h, we can remove a
> bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/msm/msm_debugfs.c | 2 --
> drivers/gpu/drm/msm/msm_drv.c | 2 --
> drivers/gpu/drm/msm/msm_drv.h | 4 ----
> 3 files changed, 8 deletions(-)
>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/3] drm/xe: clean up fault injection usage
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
2024-08-13 12:12 ` [PATCH 2/3] drm/msm: clean up fault injection usage Jani Nikula
@ 2024-08-13 12:12 ` Jani Nikula
2024-08-13 12:32 ` Thomas Hellström
2024-08-13 12:50 ` Ghimiray, Himal Prasad
2024-08-13 12:19 ` ✓ CI.Patch_applied: success for series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Patchwork
` (5 subsequent siblings)
7 siblings, 2 replies; 16+ messages in thread
From: Jani Nikula @ 2024-08-13 12:12 UTC (permalink / raw)
To: linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov, jani.nikula
With the proper stubs in place in linux/fault-inject.h, we can remove a
bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/xe/xe_debugfs.c | 7 +------
drivers/gpu/drm/xe/xe_gt.h | 10 ++--------
2 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 1011e5d281fa..b381bfb634f7 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -6,6 +6,7 @@
#include "xe_debugfs.h"
#include <linux/debugfs.h>
+#include <linux/fault-inject.h>
#include <linux/string_helpers.h>
#include <drm/drm_debugfs.h>
@@ -26,10 +27,7 @@
#include "xe_vm.h"
#endif
-#ifdef CONFIG_FAULT_INJECTION
-#include <linux/fault-inject.h> /* XXX: fault-inject.h is broken */
DECLARE_FAULT_ATTR(gt_reset_failure);
-#endif
static struct xe_device *node_to_xe(struct drm_info_node *node)
{
@@ -214,8 +212,5 @@ void xe_debugfs_register(struct xe_device *xe)
for_each_gt(gt, xe, id)
xe_gt_debugfs_register(gt);
-#ifdef CONFIG_FAULT_INJECTION
fault_create_debugfs_attr("fail_gt_reset", root, >_reset_failure);
-#endif
-
}
diff --git a/drivers/gpu/drm/xe/xe_gt.h b/drivers/gpu/drm/xe/xe_gt.h
index 8b1a5027dcf2..ee138e9768a2 100644
--- a/drivers/gpu/drm/xe/xe_gt.h
+++ b/drivers/gpu/drm/xe/xe_gt.h
@@ -6,6 +6,8 @@
#ifndef _XE_GT_H_
#define _XE_GT_H_
+#include <linux/fault-inject.h>
+
#include <drm/drm_util.h>
#include "xe_device.h"
@@ -19,19 +21,11 @@
#define CCS_MASK(gt) (((gt)->info.engine_mask & XE_HW_ENGINE_CCS_MASK) >> XE_HW_ENGINE_CCS0)
-#ifdef CONFIG_FAULT_INJECTION
-#include <linux/fault-inject.h> /* XXX: fault-inject.h is broken */
extern struct fault_attr gt_reset_failure;
static inline bool xe_fault_inject_gt_reset(void)
{
return should_fail(>_reset_failure, 1);
}
-#else
-static inline bool xe_fault_inject_gt_reset(void)
-{
- return false;
-}
-#endif
struct xe_gt *xe_gt_alloc(struct xe_tile *tile);
int xe_gt_init_hwconfig(struct xe_gt *gt);
--
2.39.2
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 3/3] drm/xe: clean up fault injection usage
2024-08-13 12:12 ` [PATCH 3/3] drm/xe: " Jani Nikula
@ 2024-08-13 12:32 ` Thomas Hellström
2024-08-13 12:50 ` Ghimiray, Himal Prasad
1 sibling, 0 replies; 16+ messages in thread
From: Thomas Hellström @ 2024-08-13 12:32 UTC (permalink / raw)
To: Jani Nikula, linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, robdclark, quic_abhinavk,
dmitry.baryshkov
On Tue, 2024-08-13 at 15:12 +0300, Jani Nikula wrote:
> With the proper stubs in place in linux/fault-inject.h, we can remove
> a
> bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> drivers/gpu/drm/xe/xe_debugfs.c | 7 +------
> drivers/gpu/drm/xe/xe_gt.h | 10 ++--------
> 2 files changed, 3 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c
> b/drivers/gpu/drm/xe/xe_debugfs.c
> index 1011e5d281fa..b381bfb634f7 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -6,6 +6,7 @@
> #include "xe_debugfs.h"
>
> #include <linux/debugfs.h>
> +#include <linux/fault-inject.h>
> #include <linux/string_helpers.h>
>
> #include <drm/drm_debugfs.h>
> @@ -26,10 +27,7 @@
> #include "xe_vm.h"
> #endif
>
> -#ifdef CONFIG_FAULT_INJECTION
> -#include <linux/fault-inject.h> /* XXX: fault-inject.h is broken */
> DECLARE_FAULT_ATTR(gt_reset_failure);
> -#endif
>
> static struct xe_device *node_to_xe(struct drm_info_node *node)
> {
> @@ -214,8 +212,5 @@ void xe_debugfs_register(struct xe_device *xe)
> for_each_gt(gt, xe, id)
> xe_gt_debugfs_register(gt);
>
> -#ifdef CONFIG_FAULT_INJECTION
> fault_create_debugfs_attr("fail_gt_reset", root,
> >_reset_failure);
> -#endif
> -
> }
> diff --git a/drivers/gpu/drm/xe/xe_gt.h b/drivers/gpu/drm/xe/xe_gt.h
> index 8b1a5027dcf2..ee138e9768a2 100644
> --- a/drivers/gpu/drm/xe/xe_gt.h
> +++ b/drivers/gpu/drm/xe/xe_gt.h
> @@ -6,6 +6,8 @@
> #ifndef _XE_GT_H_
> #define _XE_GT_H_
>
> +#include <linux/fault-inject.h>
> +
> #include <drm/drm_util.h>
>
> #include "xe_device.h"
> @@ -19,19 +21,11 @@
>
> #define CCS_MASK(gt) (((gt)->info.engine_mask &
> XE_HW_ENGINE_CCS_MASK) >> XE_HW_ENGINE_CCS0)
>
> -#ifdef CONFIG_FAULT_INJECTION
> -#include <linux/fault-inject.h> /* XXX: fault-inject.h is broken */
> extern struct fault_attr gt_reset_failure;
> static inline bool xe_fault_inject_gt_reset(void)
> {
> return should_fail(>_reset_failure, 1);
> }
> -#else
> -static inline bool xe_fault_inject_gt_reset(void)
> -{
> - return false;
> -}
> -#endif
>
> struct xe_gt *xe_gt_alloc(struct xe_tile *tile);
> int xe_gt_init_hwconfig(struct xe_gt *gt);
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 3/3] drm/xe: clean up fault injection usage
2024-08-13 12:12 ` [PATCH 3/3] drm/xe: " Jani Nikula
2024-08-13 12:32 ` Thomas Hellström
@ 2024-08-13 12:50 ` Ghimiray, Himal Prasad
1 sibling, 0 replies; 16+ messages in thread
From: Ghimiray, Himal Prasad @ 2024-08-13 12:50 UTC (permalink / raw)
To: Jani Nikula, linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov
On 13-08-2024 17:42, Jani Nikula wrote:
> With the proper stubs in place in linux/fault-inject.h, we can remove a
> bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
I had previously raised the patch
[https://lore.kernel.org/lkml/ZYBNDXoVO7LB_S0d@rdvivi-mobl4/T/] to
address the header inclusion dependency in lklm.
Given that [Patch 1/3] in this series also makes function inclusions,
such as should_fail, independent of configs, this seems to be an
improved version.
Assuming Patch 1 is approved by the maintainers, this patch looks good
to me.
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
> ---
> drivers/gpu/drm/xe/xe_debugfs.c | 7 +------
> drivers/gpu/drm/xe/xe_gt.h | 10 ++--------
> 2 files changed, 3 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
> index 1011e5d281fa..b381bfb634f7 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -6,6 +6,7 @@
> #include "xe_debugfs.h"
>
> #include <linux/debugfs.h>
> +#include <linux/fault-inject.h>
> #include <linux/string_helpers.h>
>
> #include <drm/drm_debugfs.h>
> @@ -26,10 +27,7 @@
> #include "xe_vm.h"
> #endif
>
> -#ifdef CONFIG_FAULT_INJECTION
> -#include <linux/fault-inject.h> /* XXX: fault-inject.h is broken */
> DECLARE_FAULT_ATTR(gt_reset_failure);
> -#endif
>
> static struct xe_device *node_to_xe(struct drm_info_node *node)
> {
> @@ -214,8 +212,5 @@ void xe_debugfs_register(struct xe_device *xe)
> for_each_gt(gt, xe, id)
> xe_gt_debugfs_register(gt);
>
> -#ifdef CONFIG_FAULT_INJECTION
> fault_create_debugfs_attr("fail_gt_reset", root, >_reset_failure);
> -#endif
> -
> }
> diff --git a/drivers/gpu/drm/xe/xe_gt.h b/drivers/gpu/drm/xe/xe_gt.h
> index 8b1a5027dcf2..ee138e9768a2 100644
> --- a/drivers/gpu/drm/xe/xe_gt.h
> +++ b/drivers/gpu/drm/xe/xe_gt.h
> @@ -6,6 +6,8 @@
> #ifndef _XE_GT_H_
> #define _XE_GT_H_
>
> +#include <linux/fault-inject.h>
> +
> #include <drm/drm_util.h>
>
> #include "xe_device.h"
> @@ -19,19 +21,11 @@
>
> #define CCS_MASK(gt) (((gt)->info.engine_mask & XE_HW_ENGINE_CCS_MASK) >> XE_HW_ENGINE_CCS0)
>
> -#ifdef CONFIG_FAULT_INJECTION
> -#include <linux/fault-inject.h> /* XXX: fault-inject.h is broken */
> extern struct fault_attr gt_reset_failure;
> static inline bool xe_fault_inject_gt_reset(void)
> {
> return should_fail(>_reset_failure, 1);
> }
> -#else
> -static inline bool xe_fault_inject_gt_reset(void)
> -{
> - return false;
> -}
> -#endif
>
> struct xe_gt *xe_gt_alloc(struct xe_tile *tile);
> int xe_gt_init_hwconfig(struct xe_gt *gt);
^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.Patch_applied: success for series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
2024-08-13 12:12 ` [PATCH 2/3] drm/msm: clean up fault injection usage Jani Nikula
2024-08-13 12:12 ` [PATCH 3/3] drm/xe: " Jani Nikula
@ 2024-08-13 12:19 ` Patchwork
2024-08-13 12:19 ` ✗ CI.checkpatch: warning " Patchwork
` (4 subsequent siblings)
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2024-08-13 12:19 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
URL : https://patchwork.freedesktop.org/series/137232/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 924db73e261b drm-tip: 2024y-08m-13d-10h-24m-37s UTC integration manifest
=== git am output follows ===
Applying: fault-inject: improve build for CONFIG_FAULT_INJECTION=n
Applying: drm/msm: clean up fault injection usage
Applying: drm/xe: clean up fault injection usage
^ permalink raw reply [flat|nested] 16+ messages in thread* ✗ CI.checkpatch: warning for series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
` (2 preceding siblings ...)
2024-08-13 12:19 ` ✓ CI.Patch_applied: success for series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Patchwork
@ 2024-08-13 12:19 ` Patchwork
2024-08-13 12:20 ` ✓ CI.KUnit: success " Patchwork
` (3 subsequent siblings)
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2024-08-13 12:19 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
URL : https://patchwork.freedesktop.org/series/137232/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
9fe5037901cabbcdf27a6fe0dfb047ca1474d363
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 947c0dbca26c9b0edee61ec8fe43f27def224589
Author: Jani Nikula <jani.nikula@intel.com>
Date: Tue Aug 13 15:12:37 2024 +0300
drm/xe: clean up fault injection usage
With the proper stubs in place in linux/fault-inject.h, we can remove a
bunch of conditional compilation for CONFIG_FAULT_INJECTION=n.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+ /mt/dim checkpatch 924db73e261b7bfd4b70b14db61197f48bf09426 drm-intel
edd9310c7882 fault-inject: improve build for CONFIG_FAULT_INJECTION=n
-:56: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations
#56: FILE: include/linux/fault-inject.h:69:
+}
+static inline bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags)
-:60: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations
#60: FILE: include/linux/fault-inject.h:73:
+}
+static inline bool should_fail(struct fault_attr *attr, ssize_t size)
total: 0 errors, 0 warnings, 2 checks, 58 lines checked
80a106f0261b drm/msm: clean up fault injection usage
947c0dbca26c drm/xe: clean up fault injection usage
^ permalink raw reply [flat|nested] 16+ messages in thread* ✓ CI.KUnit: success for series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
` (3 preceding siblings ...)
2024-08-13 12:19 ` ✗ CI.checkpatch: warning " Patchwork
@ 2024-08-13 12:20 ` Patchwork
2024-08-13 12:24 ` ✗ CI.Build: failure " Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2024-08-13 12:20 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
URL : https://patchwork.freedesktop.org/series/137232/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[12:19:15] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[12:19:19] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[12:19:45] Starting KUnit Kernel (1/1)...
[12:19:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[12:19:45] =================== guc_dbm (7 subtests) ===================
[12:19:45] [PASSED] test_empty
[12:19:45] [PASSED] test_default
[12:19:45] ======================== test_size ========================
[12:19:45] [PASSED] 4
[12:19:45] [PASSED] 8
[12:19:45] [PASSED] 32
[12:19:45] [PASSED] 256
[12:19:45] ==================== [PASSED] test_size ====================
[12:19:45] ======================= test_reuse ========================
[12:19:45] [PASSED] 4
[12:19:45] [PASSED] 8
[12:19:45] [PASSED] 32
[12:19:45] [PASSED] 256
[12:19:45] =================== [PASSED] test_reuse ====================
[12:19:45] =================== test_range_overlap ====================
[12:19:45] [PASSED] 4
[12:19:45] [PASSED] 8
[12:19:45] [PASSED] 32
[12:19:45] [PASSED] 256
[12:19:45] =============== [PASSED] test_range_overlap ================
[12:19:45] =================== test_range_compact ====================
[12:19:45] [PASSED] 4
[12:19:45] [PASSED] 8
[12:19:45] [PASSED] 32
[12:19:45] [PASSED] 256
[12:19:45] =============== [PASSED] test_range_compact ================
[12:19:45] ==================== test_range_spare =====================
[12:19:45] [PASSED] 4
[12:19:45] [PASSED] 8
[12:19:45] [PASSED] 32
[12:19:45] [PASSED] 256
[12:19:45] ================ [PASSED] test_range_spare =================
[12:19:45] ===================== [PASSED] guc_dbm =====================
[12:19:45] =================== guc_idm (6 subtests) ===================
[12:19:45] [PASSED] bad_init
[12:19:45] [PASSED] no_init
[12:19:45] [PASSED] init_fini
[12:19:45] [PASSED] check_used
[12:19:45] [PASSED] check_quota
[12:19:45] [PASSED] check_all
[12:19:45] ===================== [PASSED] guc_idm =====================
[12:19:45] ================== no_relay (3 subtests) ===================
[12:19:45] [PASSED] xe_drops_guc2pf_if_not_ready
[12:19:45] [PASSED] xe_drops_guc2vf_if_not_ready
[12:19:45] [PASSED] xe_rejects_send_if_not_ready
[12:19:45] ==================== [PASSED] no_relay =====================
[12:19:45] ================== pf_relay (14 subtests) ==================
[12:19:45] [PASSED] pf_rejects_guc2pf_too_short
[12:19:45] [PASSED] pf_rejects_guc2pf_too_long
[12:19:45] [PASSED] pf_rejects_guc2pf_no_payload
[12:19:45] [PASSED] pf_fails_no_payload
[12:19:45] [PASSED] pf_fails_bad_origin
[12:19:45] [PASSED] pf_fails_bad_type
[12:19:45] [PASSED] pf_txn_reports_error
[12:19:45] [PASSED] pf_txn_sends_pf2guc
[12:19:45] [PASSED] pf_sends_pf2guc
[12:19:45] [SKIPPED] pf_loopback_nop
[12:19:45] [SKIPPED] pf_loopback_echo
[12:19:45] [SKIPPED] pf_loopback_fail
[12:19:45] [SKIPPED] pf_loopback_busy
[12:19:45] [SKIPPED] pf_loopback_retry
[12:19:45] ==================== [PASSED] pf_relay =====================
[12:19:45] ================== vf_relay (3 subtests) ===================
[12:19:45] [PASSED] vf_rejects_guc2vf_too_short
[12:19:45] [PASSED] vf_rejects_guc2vf_too_long
[12:19:45] [PASSED] vf_rejects_guc2vf_no_payload
[12:19:45] ==================== [PASSED] vf_relay =====================
[12:19:45] ================= pf_service (11 subtests) =================
[12:19:45] [PASSED] pf_negotiate_any
[12:19:45] [PASSED] pf_negotiate_base_match
[12:19:45] [PASSED] pf_negotiate_base_newer
[12:19:45] [PASSED] pf_negotiate_base_next
[12:19:45] [SKIPPED] pf_negotiate_base_older
[12:19:45] [PASSED] pf_negotiate_base_prev
[12:19:45] [PASSED] pf_negotiate_latest_match
[12:19:45] [PASSED] pf_negotiate_latest_newer
[12:19:45] [PASSED] pf_negotiate_latest_next
[12:19:45] [SKIPPED] pf_negotiate_latest_older
[12:19:45] [SKIPPED] pf_negotiate_latest_prev
[12:19:45] =================== [PASSED] pf_service ====================
[12:19:45] ===================== lmtt (1 subtest) =====================
[12:19:45] ======================== test_ops =========================
[12:19:45] [PASSED] 2-level
[12:19:45] [PASSED] multi-level
[12:19:45] ==================== [PASSED] test_ops =====================
[12:19:45] ====================== [PASSED] lmtt =======================
[12:19:45] =================== xe_mocs (2 subtests) ===================
[12:19:45] ================ xe_live_mocs_kernel_kunit ================
[12:19:45] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[12:19:45] ================ xe_live_mocs_reset_kunit =================
[12:19:45] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[12:19:45] ==================== [SKIPPED] xe_mocs =====================
[12:19:45] ================= xe_migrate (2 subtests) ==================
[12:19:45] ================= xe_migrate_sanity_kunit =================
[12:19:45] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[12:19:45] ================== xe_validate_ccs_kunit ==================
[12:19:45] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[12:19:45] =================== [SKIPPED] xe_migrate ===================
[12:19:45] ================== xe_dma_buf (1 subtest) ==================
[12:19:45] ==================== xe_dma_buf_kunit =====================
[12:19:45] ================ [SKIPPED] xe_dma_buf_kunit ================
[12:19:45] =================== [SKIPPED] xe_dma_buf ===================
[12:19:45] ==================== xe_bo (2 subtests) ====================
[12:19:45] ================== xe_ccs_migrate_kunit ===================
[12:19:45] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[12:19:45] ==================== xe_bo_evict_kunit ====================
[12:19:45] =============== [SKIPPED] xe_bo_evict_kunit ================
[12:19:45] ===================== [SKIPPED] xe_bo ======================
[12:19:45] ==================== args (11 subtests) ====================
[12:19:45] [PASSED] count_args_test
[12:19:45] [PASSED] call_args_example
[12:19:45] [PASSED] call_args_test
[12:19:45] [PASSED] drop_first_arg_example
[12:19:45] [PASSED] drop_first_arg_test
[12:19:45] [PASSED] first_arg_example
[12:19:45] [PASSED] first_arg_test
[12:19:45] [PASSED] last_arg_example
[12:19:45] [PASSED] last_arg_test
[12:19:45] [PASSED] pick_arg_example
[12:19:45] [PASSED] sep_comma_example
[12:19:45] ====================== [PASSED] args =======================
[12:19:45] =================== xe_pci (2 subtests) ====================
stty: 'standard input': Inappropriate ioctl for device
[12:19:45] [PASSED] xe_gmdid_graphics_ip
[12:19:45] [PASSED] xe_gmdid_media_ip
[12:19:45] ===================== [PASSED] xe_pci ======================
[12:19:45] =================== xe_rtp (2 subtests) ====================
[12:19:45] =============== xe_rtp_process_to_sr_tests ================
[12:19:45] [PASSED] coalesce-same-reg
[12:19:45] [PASSED] no-match-no-add
[12:19:45] [PASSED] match-or
[12:19:45] [PASSED] match-or-xfail
[12:19:45] [PASSED] no-match-no-add-multiple-rules
[12:19:45] [PASSED] two-regs-two-entries
[12:19:45] [PASSED] clr-one-set-other
[12:19:45] [PASSED] set-field
[12:19:45] [PASSED] conflict-duplicate
[12:19:45] [PASSED] conflict-not-disjoint
[12:19:45] [PASSED] conflict-reg-type
[12:19:45] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[12:19:45] ================== xe_rtp_process_tests ===================
[12:19:45] [PASSED] active1
[12:19:45] [PASSED] active2
[12:19:45] [PASSED] active-inactive
[12:19:45] [PASSED] inactive-active
[12:19:45] [PASSED] inactive-1st_or_active-inactive
[12:19:45] [PASSED] inactive-2nd_or_active-inactive
[12:19:45] [PASSED] inactive-last_or_active-inactive
[12:19:45] [PASSED] inactive-no_or_active-inactive
[12:19:45] ============== [PASSED] xe_rtp_process_tests ===============
[12:19:45] ===================== [PASSED] xe_rtp ======================
[12:19:45] ==================== xe_wa (1 subtest) =====================
[12:19:45] ======================== xe_wa_gt =========================
[12:19:45] [PASSED] TIGERLAKE (B0)
[12:19:45] [PASSED] DG1 (A0)
[12:19:45] [PASSED] DG1 (B0)
[12:19:45] [PASSED] ALDERLAKE_S (A0)
[12:19:45] [PASSED] ALDERLAKE_S (B0)
[12:19:45] [PASSED] ALDERLAKE_S (C0)
[12:19:45] [PASSED] ALDERLAKE_S (D0)
[12:19:45] [PASSED] ALDERLAKE_P (A0)
[12:19:45] [PASSED] ALDERLAKE_P (B0)
[12:19:45] [PASSED] ALDERLAKE_P (C0)
[12:19:45] [PASSED] ALDERLAKE_S_RPLS (D0)
[12:19:45] [PASSED] ALDERLAKE_P_RPLU (E0)
[12:19:45] [PASSED] DG2_G10 (C0)
[12:19:45] [PASSED] DG2_G11 (B1)
[12:19:45] [PASSED] DG2_G12 (A1)
[12:19:45] [PASSED] METEORLAKE (g:A0, m:A0)
[12:19:45] [PASSED] METEORLAKE (g:A0, m:A0)
[12:19:45] [PASSED] METEORLAKE (g:A0, m:A0)
[12:19:45] [PASSED] LUNARLAKE (g:A0, m:A0)
[12:19:45] [PASSED] LUNARLAKE (g:B0, m:A0)
[12:19:45] [PASSED] BATTLEMAGE (g:A0, m:A1)
[12:19:45] ==================== [PASSED] xe_wa_gt =====================
[12:19:45] ====================== [PASSED] xe_wa ======================
[12:19:45] ============================================================
[12:19:45] Testing complete. Ran 121 tests: passed: 106, skipped: 15
[12:19:45] Elapsed time: 30.291s total, 4.170s configuring, 25.850s building, 0.231s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[12:19:45] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[12:19:47] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[12:20:08] Starting KUnit Kernel (1/1)...
[12:20:08] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[12:20:08] ============ drm_test_pick_cmdline (2 subtests) ============
[12:20:08] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[12:20:08] =============== drm_test_pick_cmdline_named ===============
[12:20:08] [PASSED] NTSC
[12:20:08] [PASSED] NTSC-J
[12:20:08] [PASSED] PAL
[12:20:08] [PASSED] PAL-M
[12:20:08] =========== [PASSED] drm_test_pick_cmdline_named ===========
[12:20:08] ============== [PASSED] drm_test_pick_cmdline ==============
[12:20:08] ================== drm_buddy (7 subtests) ==================
[12:20:08] [PASSED] drm_test_buddy_alloc_limit
[12:20:08] [PASSED] drm_test_buddy_alloc_optimistic
[12:20:08] [PASSED] drm_test_buddy_alloc_pessimistic
[12:20:08] [PASSED] drm_test_buddy_alloc_pathological
[12:20:08] [PASSED] drm_test_buddy_alloc_contiguous
[12:20:08] [PASSED] drm_test_buddy_alloc_clear
[12:20:08] [PASSED] drm_test_buddy_alloc_range_bias
[12:20:08] ==================== [PASSED] drm_buddy ====================
[12:20:08] ============= drm_cmdline_parser (40 subtests) =============
[12:20:08] [PASSED] drm_test_cmdline_force_d_only
[12:20:08] [PASSED] drm_test_cmdline_force_D_only_dvi
[12:20:08] [PASSED] drm_test_cmdline_force_D_only_hdmi
[12:20:08] [PASSED] drm_test_cmdline_force_D_only_not_digital
[12:20:08] [PASSED] drm_test_cmdline_force_e_only
[12:20:08] [PASSED] drm_test_cmdline_res
[12:20:08] [PASSED] drm_test_cmdline_res_vesa
[12:20:08] [PASSED] drm_test_cmdline_res_vesa_rblank
[12:20:08] [PASSED] drm_test_cmdline_res_rblank
[12:20:08] [PASSED] drm_test_cmdline_res_bpp
[12:20:08] [PASSED] drm_test_cmdline_res_refresh
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[12:20:08] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[12:20:08] [PASSED] drm_test_cmdline_res_margins_force_on
[12:20:08] [PASSED] drm_test_cmdline_res_vesa_margins
[12:20:08] [PASSED] drm_test_cmdline_name
[12:20:08] [PASSED] drm_test_cmdline_name_bpp
[12:20:08] [PASSED] drm_test_cmdline_name_option
[12:20:08] [PASSED] drm_test_cmdline_name_bpp_option
[12:20:08] [PASSED] drm_test_cmdline_rotate_0
[12:20:08] [PASSED] drm_test_cmdline_rotate_90
[12:20:08] [PASSED] drm_test_cmdline_rotate_180
[12:20:08] [PASSED] drm_test_cmdline_rotate_270
[12:20:08] [PASSED] drm_test_cmdline_hmirror
[12:20:08] [PASSED] drm_test_cmdline_vmirror
[12:20:08] [PASSED] drm_test_cmdline_margin_options
[12:20:08] [PASSED] drm_test_cmdline_multiple_options
[12:20:08] [PASSED] drm_test_cmdline_bpp_extra_and_option
[12:20:08] [PASSED] drm_test_cmdline_extra_and_option
[12:20:08] [PASSED] drm_test_cmdline_freestanding_options
[12:20:08] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[12:20:08] [PASSED] drm_test_cmdline_panel_orientation
[12:20:08] ================ drm_test_cmdline_invalid =================
[12:20:08] [PASSED] margin_only
[12:20:08] [PASSED] interlace_only
[12:20:08] [PASSED] res_missing_x
[12:20:08] [PASSED] res_missing_y
[12:20:08] [PASSED] res_bad_y
[12:20:08] [PASSED] res_missing_y_bpp
[12:20:08] [PASSED] res_bad_bpp
[12:20:08] [PASSED] res_bad_refresh
[12:20:08] [PASSED] res_bpp_refresh_force_on_off
[12:20:08] [PASSED] res_invalid_mode
[12:20:08] [PASSED] res_bpp_wrong_place_mode
[12:20:08] [PASSED] name_bpp_refresh
[12:20:08] [PASSED] name_refresh
[12:20:08] [PASSED] name_refresh_wrong_mode
[12:20:08] [PASSED] name_refresh_invalid_mode
[12:20:08] [PASSED] rotate_multiple
[12:20:08] [PASSED] rotate_invalid_val
[12:20:08] [PASSED] rotate_truncated
[12:20:08] [PASSED] invalid_option
[12:20:08] [PASSED] invalid_tv_option
[12:20:08] [PASSED] truncated_tv_option
[12:20:08] ============ [PASSED] drm_test_cmdline_invalid =============
[12:20:08] =============== drm_test_cmdline_tv_options ===============
[12:20:08] [PASSED] NTSC
[12:20:08] [PASSED] NTSC_443
[12:20:08] [PASSED] NTSC_J
[12:20:08] [PASSED] PAL
[12:20:08] [PASSED] PAL_M
[12:20:08] [PASSED] PAL_N
[12:20:08] [PASSED] SECAM
[12:20:08] [PASSED] MONO_525
[12:20:08] [PASSED] MONO_625
[12:20:08] =========== [PASSED] drm_test_cmdline_tv_options ===========
[12:20:08] =============== [PASSED] drm_cmdline_parser ================
[12:20:08] ========== drmm_connector_hdmi_init (19 subtests) ==========
[12:20:08] [PASSED] drm_test_connector_hdmi_init_valid
[12:20:08] [PASSED] drm_test_connector_hdmi_init_bpc_8
[12:20:08] [PASSED] drm_test_connector_hdmi_init_bpc_10
[12:20:08] [PASSED] drm_test_connector_hdmi_init_bpc_12
[12:20:08] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[12:20:08] [PASSED] drm_test_connector_hdmi_init_bpc_null
[12:20:08] [PASSED] drm_test_connector_hdmi_init_formats_empty
[12:20:08] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[12:20:08] [PASSED] drm_test_connector_hdmi_init_null_ddc
[12:20:08] [PASSED] drm_test_connector_hdmi_init_null_product
[12:20:08] [PASSED] drm_test_connector_hdmi_init_null_vendor
[12:20:08] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[12:20:08] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[12:20:08] [PASSED] drm_test_connector_hdmi_init_product_valid
[12:20:08] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[12:20:08] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[12:20:08] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[12:20:08] ========= drm_test_connector_hdmi_init_type_valid =========
[12:20:08] [PASSED] HDMI-A
[12:20:08] [PASSED] HDMI-B
[12:20:08] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[12:20:08] ======== drm_test_connector_hdmi_init_type_invalid ========
[12:20:08] [PASSED] Unknown
[12:20:08] [PASSED] VGA
[12:20:08] [PASSED] DVI-I
[12:20:08] [PASSED] DVI-D
[12:20:08] [PASSED] DVI-A
[12:20:08] [PASSED] Composite
[12:20:08] [PASSED] SVIDEO
[12:20:08] [PASSED] LVDS
[12:20:08] [PASSED] Component
[12:20:08] [PASSED] DIN
[12:20:08] [PASSED] DP
[12:20:08] [PASSED] TV
[12:20:08] [PASSED] eDP
[12:20:08] [PASSED] Virtual
[12:20:08] [PASSED] DSI
[12:20:08] [PASSED] DPI
[12:20:08] [PASSED] Writeback
[12:20:08] [PASSED] SPI
[12:20:08] [PASSED] USB
[12:20:08] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[12:20:08] ============ [PASSED] drmm_connector_hdmi_init =============
[12:20:08] ============= drmm_connector_init (3 subtests) =============
[12:20:08] [PASSED] drm_test_drmm_connector_init
[12:20:08] [PASSED] drm_test_drmm_connector_init_null_ddc
[12:20:08] ========= drm_test_drmm_connector_init_type_valid =========
[12:20:08] [PASSED] Unknown
[12:20:08] [PASSED] VGA
[12:20:08] [PASSED] DVI-I
[12:20:08] [PASSED] DVI-D
[12:20:08] [PASSED] DVI-A
[12:20:08] [PASSED] Composite
[12:20:08] [PASSED] SVIDEO
[12:20:08] [PASSED] LVDS
[12:20:08] [PASSED] Component
[12:20:08] [PASSED] DIN
[12:20:08] [PASSED] DP
[12:20:08] [PASSED] HDMI-A
[12:20:08] [PASSED] HDMI-B
[12:20:08] [PASSED] TV
[12:20:08] [PASSED] eDP
[12:20:08] [PASSED] Virtual
[12:20:08] [PASSED] DSI
[12:20:08] [PASSED] DPI
[12:20:08] [PASSED] Writeback
[12:20:08] [PASSED] SPI
[12:20:08] [PASSED] USB
[12:20:08] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[12:20:08] =============== [PASSED] drmm_connector_init ===============
[12:20:08] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[12:20:08] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[12:20:08] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[12:20:08] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[12:20:08] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[12:20:08] ========== drm_test_get_tv_mode_from_name_valid ===========
[12:20:08] [PASSED] NTSC
[12:20:08] [PASSED] NTSC-443
[12:20:08] [PASSED] NTSC-J
[12:20:08] [PASSED] PAL
[12:20:08] [PASSED] PAL-M
[12:20:08] [PASSED] PAL-N
[12:20:08] [PASSED] SECAM
[12:20:08] [PASSED] Mono
[12:20:08] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[12:20:08] [PASSED] drm_test_get_tv_mode_from_name_truncated
[12:20:08] ============ [PASSED] drm_get_tv_mode_from_name ============
[12:20:08] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[12:20:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[12:20:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[12:20:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[12:20:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[12:20:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[12:20:08] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[12:20:08] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[12:20:08] [PASSED] VIC 96
[12:20:08] [PASSED] VIC 97
[12:20:08] [PASSED] VIC 101
[12:20:08] [PASSED] VIC 102
[12:20:08] [PASSED] VIC 106
[12:20:08] [PASSED] VIC 107
[12:20:08] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[12:20:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[12:20:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[12:20:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[12:20:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[12:20:08] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[12:20:08] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[12:20:08] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[12:20:08] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[12:20:08] [PASSED] Automatic
[12:20:08] [PASSED] Full
[12:20:08] [PASSED] Limited 16:235
[12:20:08] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[12:20:08] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[12:20:08] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[12:20:08] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[12:20:08] === drm_test_drm_hdmi_connector_get_output_format_name ====
[12:20:08] [PASSED] RGB
[12:20:08] [PASSED] YUV 4:2:0
[12:20:08] [PASSED] YUV 4:2:2
[12:20:08] [PASSED] YUV 4:4:4
[12:20:08] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[12:20:08] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[12:20:08] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[12:20:08] ============= drm_damage_helper (21 subtests) ==============
[12:20:08] [PASSED] drm_test_damage_iter_no_damage
[12:20:08] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[12:20:08] [PASSED] drm_test_damage_iter_no_damage_src_moved
[12:20:08] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[12:20:08] [PASSED] drm_test_damage_iter_no_damage_not_visible
[12:20:08] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[12:20:08] [PASSED] drm_test_damage_iter_no_damage_no_fb
[12:20:08] [PASSED] drm_test_damage_iter_simple_damage
[12:20:08] [PASSED] drm_test_damage_iter_single_damage
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_outside_src
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_src_moved
[12:20:08] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[12:20:08] [PASSED] drm_test_damage_iter_damage
[12:20:08] [PASSED] drm_test_damage_iter_damage_one_intersect
[12:20:08] [PASSED] drm_test_damage_iter_damage_one_outside
[12:20:08] [PASSED] drm_test_damage_iter_damage_src_moved
[12:20:08] [PASSED] drm_test_damage_iter_damage_not_visible
[12:20:08] ================ [PASSED] drm_damage_helper ================
[12:20:08] ============== drm_dp_mst_helper (3 subtests) ==============
[12:20:08] ============== drm_test_dp_mst_calc_pbn_mode ==============
[12:20:08] [PASSED] Clock 154000 BPP 30 DSC disabled
[12:20:08] [PASSED] Clock 234000 BPP 30 DSC disabled
[12:20:08] [PASSED] Clock 297000 BPP 24 DSC disabled
[12:20:08] [PASSED] Clock 332880 BPP 24 DSC enabled
[12:20:08] [PASSED] Clock 324540 BPP 24 DSC enabled
[12:20:08] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[12:20:08] ============== drm_test_dp_mst_calc_pbn_div ===============
[12:20:08] [PASSED] Link rate 2000000 lane count 4
[12:20:08] [PASSED] Link rate 2000000 lane count 2
[12:20:08] [PASSED] Link rate 2000000 lane count 1
[12:20:08] [PASSED] Link rate 1350000 lane count 4
[12:20:08] [PASSED] Link rate 1350000 lane count 2
[12:20:08] [PASSED] Link rate 1350000 lane count 1
[12:20:08] [PASSED] Link rate 1000000 lane count 4
[12:20:08] [PASSED] Link rate 1000000 lane count 2
[12:20:08] [PASSED] Link rate 1000000 lane count 1
[12:20:08] [PASSED] Link rate 810000 lane count 4
[12:20:08] [PASSED] Link rate 810000 lane count 2
[12:20:08] [PASSED] Link rate 810000 lane count 1
[12:20:08] [PASSED] Link rate 540000 lane count 4
[12:20:08] [PASSED] Link rate 540000 lane count 2
[12:20:08] [PASSED] Link rate 540000 lane count 1
[12:20:08] [PASSED] Link rate 270000 lane count 4
[12:20:08] [PASSED] Link rate 270000 lane count 2
[12:20:08] [PASSED] Link rate 270000 lane count 1
[12:20:08] [PASSED] Link rate 162000 lane count 4
[12:20:08] [PASSED] Link rate 162000 lane count 2
[12:20:08] [PASSED] Link rate 162000 lane count 1
[12:20:08] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[12:20:08] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[12:20:08] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[12:20:08] [PASSED] DP_POWER_UP_PHY with port number
[12:20:08] [PASSED] DP_POWER_DOWN_PHY with port number
[12:20:08] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[12:20:08] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[12:20:08] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[12:20:08] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[12:20:08] [PASSED] DP_QUERY_PAYLOAD with port number
[12:20:08] [PASSED] DP_QUERY_PAYLOAD with VCPI
[12:20:08] [PASSED] DP_REMOTE_DPCD_READ with port number
[12:20:08] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[12:20:08] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[12:20:08] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[12:20:08] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[12:20:08] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[12:20:08] [PASSED] DP_REMOTE_I2C_READ with port number
[12:20:08] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[12:20:08] [PASSED] DP_REMOTE_I2C_READ with transactions array
[12:20:08] [PASSED] DP_REMOTE_I2C_WRITE with port number
[12:20:08] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[12:20:08] [PASSED] DP_REMOTE_I2C_WRITE with data array
[12:20:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[12:20:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[12:20:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[12:20:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[12:20:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[12:20:08] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[12:20:08] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[12:20:08] ================ [PASSED] drm_dp_mst_helper ================
[12:20:08] ================== drm_exec (7 subtests) ===================
[12:20:08] [PASSED] sanitycheck
[12:20:08] [PASSED] test_lock
[12:20:08] [PASSED] test_lock_unlock
[12:20:08] [PASSED] test_duplicates
[12:20:08] [PASSED] test_prepare
[12:20:08] [PASSED] test_prepare_array
[12:20:08] [PASSED] test_multiple_loops
[12:20:08] ==================== [PASSED] drm_exec =====================
[12:20:08] =========== drm_format_helper_test (17 subtests) ===========
[12:20:08] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[12:20:08] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[12:20:08] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[12:20:08] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[12:20:08] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[12:20:08] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[12:20:08] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[12:20:08] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[12:20:08] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[12:20:08] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[12:20:08] ============== drm_test_fb_xrgb8888_to_mono ===============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[12:20:08] ==================== drm_test_fb_swab =====================
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ================ [PASSED] drm_test_fb_swab =================
[12:20:08] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[12:20:08] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[12:20:08] [PASSED] single_pixel_source_buffer
[12:20:08] [PASSED] single_pixel_clip_rectangle
[12:20:08] [PASSED] well_known_colors
[12:20:08] [PASSED] destination_pitch
[12:20:08] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[12:20:08] ================= drm_test_fb_clip_offset =================
[12:20:08] [PASSED] pass through
[12:20:08] [PASSED] horizontal offset
[12:20:08] [PASSED] vertical offset
[12:20:08] [PASSED] horizontal and vertical offset
[12:20:08] [PASSED] horizontal offset (custom pitch)
[12:20:08] [PASSED] vertical offset (custom pitch)
[12:20:08] [PASSED] horizontal and vertical offset (custom pitch)
[12:20:08] ============= [PASSED] drm_test_fb_clip_offset =============
[12:20:08] ============== drm_test_fb_build_fourcc_list ==============
[12:20:08] [PASSED] no native formats
[12:20:08] [PASSED] XRGB8888 as native format
[12:20:08] [PASSED] remove duplicates
[12:20:08] [PASSED] convert alpha formats
[12:20:08] [PASSED] random formats
[12:20:08] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[12:20:08] =================== drm_test_fb_memcpy ====================
[12:20:08] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[12:20:08] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[12:20:08] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[12:20:08] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[12:20:08] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[12:20:08] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[12:20:08] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[12:20:08] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[12:20:08] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[12:20:08] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[12:20:08] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[12:20:08] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[12:20:08] =============== [PASSED] drm_test_fb_memcpy ================
[12:20:08] ============= [PASSED] drm_format_helper_test ==============
[12:20:08] ================= drm_format (18 subtests) =================
[12:20:08] [PASSED] drm_test_format_block_width_invalid
[12:20:08] [PASSED] drm_test_format_block_width_one_plane
[12:20:08] [PASSED] drm_test_format_block_width_two_plane
[12:20:08] [PASSED] drm_test_format_block_width_three_plane
[12:20:08] [PASSED] drm_test_format_block_width_tiled
[12:20:08] [PASSED] drm_test_format_block_height_invalid
[12:20:08] [PASSED] drm_test_format_block_height_one_plane
[12:20:08] [PASSED] drm_test_format_block_height_two_plane
[12:20:08] [PASSED] drm_test_format_block_height_three_plane
[12:20:08] [PASSED] drm_test_format_block_height_tiled
[12:20:08] [PASSED] drm_test_format_min_pitch_invalid
[12:20:08] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[12:20:08] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[12:20:08] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[12:20:08] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[12:20:08] [PASSED] drm_test_format_min_pitch_two_plane
[12:20:08] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[12:20:08] [PASSED] drm_test_format_min_pitch_tiled
[12:20:08] =================== [PASSED] drm_format ====================
[12:20:08] =============== drm_framebuffer (1 subtest) ================
[12:20:08] =============== drm_test_framebuffer_create ===============
[12:20:08] [PASSED] ABGR8888 normal sizes
[12:20:08] [PASSED] ABGR8888 max sizes
[12:20:08] [PASSED] ABGR8888 pitch greater than min required
[12:20:08] [PASSED] ABGR8888 pitch less than min required
[12:20:08] [PASSED] ABGR8888 Invalid width
[12:20:08] [PASSED] ABGR8888 Invalid buffer handle
[12:20:08] [PASSED] No pixel format
[12:20:08] [PASSED] ABGR8888 Width 0
[12:20:08] [PASSED] ABGR8888 Height 0
[12:20:08] [PASSED] ABGR8888 Out of bound height * pitch combination
[12:20:08] [PASSED] ABGR8888 Large buffer offset
[12:20:08] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[12:20:08] [PASSED] ABGR8888 Valid buffer modifier
[12:20:08] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[12:20:08] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] NV12 Normal sizes
[12:20:08] [PASSED] NV12 Max sizes
[12:20:08] [PASSED] NV12 Invalid pitch
[12:20:08] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[12:20:08] [PASSED] NV12 different modifier per-plane
[12:20:08] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[12:20:08] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] NV12 Modifier for inexistent plane
[12:20:08] [PASSED] NV12 Handle for inexistent plane
[12:20:08] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[12:20:08] [PASSED] YVU420 Normal sizes
[12:20:08] [PASSED] YVU420 Max sizes
[12:20:08] [PASSED] YVU420 Invalid pitch
[12:20:08] [PASSED] YVU420 Different pitches
[12:20:08] [PASSED] YVU420 Different buffer offsets/pitches
[12:20:08] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[12:20:08] [PASSED] YVU420 Valid modifier
[12:20:08] [PASSED] YVU420 Different modifiers per plane
[12:20:08] [PASSED] YVU420 Modifier for inexistent plane
[12:20:08] [PASSED] X0L2 Normal sizes
[12:20:08] [PASSED] X0L2 Max sizes
[12:20:08] [PASSED] X0L2 Invalid pitch
[12:20:08] [PASSED] X0L2 Pitch greater than minimum required
[12:20:08] [PASSED] X0L2 Handle for inexistent plane
[12:20:08] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[12:20:08] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[12:20:08] [PASSED] X0L2 Valid modifier
[12:20:08] [PASSED] X0L2 Modifier for inexistent plane
[12:20:08] =========== [PASSED] drm_test_framebuffer_create ===========
[12:20:08] ================= [PASSED] drm_framebuffer =================
[12:20:08] ================ drm_gem_shmem (8 subtests) ================
[12:20:08] [PASSED] drm_gem_shmem_test_obj_create
[12:20:08] [PASSED] drm_gem_shmem_test_obj_create_private
[12:20:08] [PASSED] drm_gem_shmem_test_pin_pages
[12:20:08] [PASSED] drm_gem_shmem_test_vmap
[12:20:08] [PASSED] drm_gem_shmem_test_get_pages_sgt
[12:20:08] [PASSED] drm_gem_shmem_test_get_sg_table
[12:20:08] [PASSED] drm_gem_shmem_test_madvise
[12:20:08] [PASSED] drm_gem_shmem_test_purge
[12:20:08] ================== [PASSED] drm_gem_shmem ==================
[12:20:08] === drm_atomic_helper_connector_hdmi_check (22 subtests) ===
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[12:20:08] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[12:20:08] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[12:20:08] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[12:20:08] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[12:20:08] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[12:20:08] [PASSED] drm_test_check_output_bpc_dvi
[12:20:08] [PASSED] drm_test_check_output_bpc_format_vic_1
[12:20:08] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[12:20:08] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[12:20:08] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[12:20:08] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[12:20:08] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[12:20:08] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[12:20:08] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[12:20:08] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[12:20:08] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[12:20:08] [PASSED] drm_test_check_broadcast_rgb_value
[12:20:08] [PASSED] drm_test_check_bpc_8_value
[12:20:08] [PASSED] drm_test_check_bpc_10_value
[12:20:08] [PASSED] drm_test_check_bpc_12_value
[12:20:08] [PASSED] drm_test_check_format_value
[12:20:08] [PASSED] drm_test_check_tmds_char_value
[12:20:08] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[12:20:08] ================= drm_managed (2 subtests) =================
[12:20:08] [PASSED] drm_test_managed_release_action
[12:20:08] [PASSED] drm_test_managed_run_action
[12:20:08] =================== [PASSED] drm_managed ===================
[12:20:08] =================== drm_mm (6 subtests) ====================
[12:20:08] [PASSED] drm_test_mm_init
[12:20:08] [PASSED] drm_test_mm_debug
[12:20:08] [PASSED] drm_test_mm_align32
[12:20:08] [PASSED] drm_test_mm_align64
[12:20:08] [PASSED] drm_test_mm_lowest
[12:20:08] [PASSED] drm_test_mm_highest
[12:20:08] ===================== [PASSED] drm_mm ======================
[12:20:08] ============= drm_modes_analog_tv (5 subtests) =============
[12:20:08] [PASSED] drm_test_modes_analog_tv_mono_576i
[12:20:08] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[12:20:08] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[12:20:08] [PASSED] drm_test_modes_analog_tv_pal_576i
[12:20:08] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[12:20:08] =============== [PASSED] drm_modes_analog_tv ===============
[12:20:08] ============== drm_plane_helper (2 subtests) ===============
[12:20:08] =============== drm_test_check_plane_state ================
[12:20:08] [PASSED] clipping_simple
[12:20:08] [PASSED] clipping_rotate_reflect
[12:20:08] [PASSED] positioning_simple
[12:20:08] [PASSED] upscaling
[12:20:08] [PASSED] downscaling
[12:20:08] [PASSED] rounding1
[12:20:08] [PASSED] rounding2
[12:20:08] [PASSED] rounding3
[12:20:08] [PASSED] rounding4
[12:20:08] =========== [PASSED] drm_test_check_plane_state ============
[12:20:08] =========== drm_test_check_invalid_plane_state ============
[12:20:08] [PASSED] positioning_invalid
[12:20:08] [PASSED] upscaling_invalid
stty: 'standard input': Inappropriate ioctl for device
[12:20:08] [PASSED] downscaling_invalid
[12:20:08] ======= [PASSED] drm_test_check_invalid_plane_state ========
[12:20:08] ================ [PASSED] drm_plane_helper =================
[12:20:08] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[12:20:08] ====== drm_test_connector_helper_tv_get_modes_check =======
[12:20:08] [PASSED] None
[12:20:08] [PASSED] PAL
[12:20:08] [PASSED] NTSC
[12:20:08] [PASSED] Both, NTSC Default
[12:20:08] [PASSED] Both, PAL Default
[12:20:08] [PASSED] Both, NTSC Default, with PAL on command-line
[12:20:08] [PASSED] Both, PAL Default, with NTSC on command-line
[12:20:08] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[12:20:08] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[12:20:08] ================== drm_rect (9 subtests) ===================
[12:20:08] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[12:20:08] [PASSED] drm_test_rect_clip_scaled_not_clipped
[12:20:08] [PASSED] drm_test_rect_clip_scaled_clipped
[12:20:08] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[12:20:08] ================= drm_test_rect_intersect =================
[12:20:08] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[12:20:08] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[12:20:08] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[12:20:08] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[12:20:08] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[12:20:08] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[12:20:08] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[12:20:08] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[12:20:08] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[12:20:08] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[12:20:08] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[12:20:08] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[12:20:08] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[12:20:08] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[12:20:08] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[12:20:08] ============= [PASSED] drm_test_rect_intersect =============
[12:20:08] ================ drm_test_rect_calc_hscale ================
[12:20:08] [PASSED] normal use
[12:20:08] [PASSED] out of max range
[12:20:08] [PASSED] out of min range
[12:20:08] [PASSED] zero dst
[12:20:08] [PASSED] negative src
[12:20:08] [PASSED] negative dst
[12:20:08] ============ [PASSED] drm_test_rect_calc_hscale ============
[12:20:08] ================ drm_test_rect_calc_vscale ================
[12:20:08] [PASSED] normal use
[12:20:08] [PASSED] out of max range
[12:20:08] [PASSED] out of min range
[12:20:08] [PASSED] zero dst
[12:20:08] [PASSED] negative src
[12:20:08] [PASSED] negative dst
[12:20:08] ============ [PASSED] drm_test_rect_calc_vscale ============
[12:20:08] ================== drm_test_rect_rotate ===================
[12:20:08] [PASSED] reflect-x
[12:20:08] [PASSED] reflect-y
[12:20:08] [PASSED] rotate-0
[12:20:08] [PASSED] rotate-90
[12:20:08] [PASSED] rotate-180
[12:20:08] [PASSED] rotate-270
[12:20:08] ============== [PASSED] drm_test_rect_rotate ===============
[12:20:08] ================ drm_test_rect_rotate_inv =================
[12:20:08] [PASSED] reflect-x
[12:20:08] [PASSED] reflect-y
[12:20:08] [PASSED] rotate-0
[12:20:08] [PASSED] rotate-90
[12:20:08] [PASSED] rotate-180
[12:20:08] [PASSED] rotate-270
[12:20:08] ============ [PASSED] drm_test_rect_rotate_inv =============
[12:20:08] ==================== [PASSED] drm_rect =====================
[12:20:08] ============================================================
[12:20:08] Testing complete. Ran 515 tests: passed: 515
[12:20:08] Elapsed time: 23.196s total, 1.745s configuring, 21.304s building, 0.145s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[12:20:08] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[12:20:10] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[12:20:19] Starting KUnit Kernel (1/1)...
[12:20:19] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[12:20:19] ================= ttm_device (5 subtests) ==================
[12:20:19] [PASSED] ttm_device_init_basic
[12:20:19] [PASSED] ttm_device_init_multiple
[12:20:19] [PASSED] ttm_device_fini_basic
[12:20:19] [PASSED] ttm_device_init_no_vma_man
[12:20:19] ================== ttm_device_init_pools ==================
[12:20:19] [PASSED] No DMA allocations, no DMA32 required
[12:20:19] [PASSED] DMA allocations, DMA32 required
[12:20:19] [PASSED] No DMA allocations, DMA32 required
[12:20:19] [PASSED] DMA allocations, no DMA32 required
[12:20:19] ============== [PASSED] ttm_device_init_pools ==============
[12:20:19] =================== [PASSED] ttm_device ====================
[12:20:19] ================== ttm_pool (8 subtests) ===================
[12:20:19] ================== ttm_pool_alloc_basic ===================
[12:20:19] [PASSED] One page
[12:20:19] [PASSED] More than one page
[12:20:19] [PASSED] Above the allocation limit
[12:20:19] [PASSED] One page, with coherent DMA mappings enabled
[12:20:19] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[12:20:19] ============== [PASSED] ttm_pool_alloc_basic ===============
[12:20:19] ============== ttm_pool_alloc_basic_dma_addr ==============
[12:20:19] [PASSED] One page
[12:20:19] [PASSED] More than one page
[12:20:19] [PASSED] Above the allocation limit
[12:20:19] [PASSED] One page, with coherent DMA mappings enabled
[12:20:19] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[12:20:19] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[12:20:19] [PASSED] ttm_pool_alloc_order_caching_match
[12:20:19] [PASSED] ttm_pool_alloc_caching_mismatch
[12:20:19] [PASSED] ttm_pool_alloc_order_mismatch
[12:20:19] [PASSED] ttm_pool_free_dma_alloc
[12:20:19] [PASSED] ttm_pool_free_no_dma_alloc
[12:20:19] [PASSED] ttm_pool_fini_basic
[12:20:19] ==================== [PASSED] ttm_pool =====================
[12:20:19] ================ ttm_resource (8 subtests) =================
[12:20:19] ================= ttm_resource_init_basic =================
[12:20:19] [PASSED] Init resource in TTM_PL_SYSTEM
[12:20:19] [PASSED] Init resource in TTM_PL_VRAM
[12:20:19] [PASSED] Init resource in a private placement
[12:20:19] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[12:20:19] ============= [PASSED] ttm_resource_init_basic =============
[12:20:19] [PASSED] ttm_resource_init_pinned
[12:20:19] [PASSED] ttm_resource_fini_basic
[12:20:19] [PASSED] ttm_resource_manager_init_basic
[12:20:19] [PASSED] ttm_resource_manager_usage_basic
[12:20:19] [PASSED] ttm_resource_manager_set_used_basic
[12:20:19] [PASSED] ttm_sys_man_alloc_basic
[12:20:19] [PASSED] ttm_sys_man_free_basic
[12:20:19] ================== [PASSED] ttm_resource ===================
[12:20:19] =================== ttm_tt (15 subtests) ===================
[12:20:19] ==================== ttm_tt_init_basic ====================
[12:20:19] [PASSED] Page-aligned size
[12:20:19] [PASSED] Extra pages requested
[12:20:19] ================ [PASSED] ttm_tt_init_basic ================
[12:20:19] [PASSED] ttm_tt_init_misaligned
[12:20:19] [PASSED] ttm_tt_fini_basic
[12:20:19] [PASSED] ttm_tt_fini_sg
[12:20:19] [PASSED] ttm_tt_fini_shmem
[12:20:19] [PASSED] ttm_tt_create_basic
[12:20:19] [PASSED] ttm_tt_create_invalid_bo_type
[12:20:19] [PASSED] ttm_tt_create_ttm_exists
[12:20:19] [PASSED] ttm_tt_create_failed
[12:20:19] [PASSED] ttm_tt_destroy_basic
[12:20:19] [PASSED] ttm_tt_populate_null_ttm
[12:20:19] [PASSED] ttm_tt_populate_populated_ttm
[12:20:19] [PASSED] ttm_tt_unpopulate_basic
[12:20:19] [PASSED] ttm_tt_unpopulate_empty_ttm
[12:20:19] [PASSED] ttm_tt_swapin_basic
[12:20:19] ===================== [PASSED] ttm_tt ======================
[12:20:19] =================== ttm_bo (14 subtests) ===================
[12:20:19] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[12:20:19] [PASSED] Cannot be interrupted and sleeps
[12:20:19] [PASSED] Cannot be interrupted, locks straight away
[12:20:19] [PASSED] Can be interrupted, sleeps
[12:20:19] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[12:20:19] [PASSED] ttm_bo_reserve_locked_no_sleep
[12:20:19] [PASSED] ttm_bo_reserve_no_wait_ticket
[12:20:19] [PASSED] ttm_bo_reserve_double_resv
[12:20:19] [PASSED] ttm_bo_reserve_interrupted
[12:20:19] [PASSED] ttm_bo_reserve_deadlock
[12:20:19] [PASSED] ttm_bo_unreserve_basic
[12:20:19] [PASSED] ttm_bo_unreserve_pinned
[12:20:19] [PASSED] ttm_bo_unreserve_bulk
[12:20:19] [PASSED] ttm_bo_put_basic
[12:20:19] [PASSED] ttm_bo_put_shared_resv
[12:20:19] [PASSED] ttm_bo_pin_basic
[12:20:19] [PASSED] ttm_bo_pin_unpin_resource
[12:20:19] [PASSED] ttm_bo_multiple_pin_one_unpin
[12:20:19] ===================== [PASSED] ttm_bo ======================
[12:20:19] ============== ttm_bo_validate (22 subtests) ===============
[12:20:19] ============== ttm_bo_init_reserved_sys_man ===============
[12:20:19] [PASSED] Buffer object for userspace
[12:20:19] [PASSED] Kernel buffer object
[12:20:19] [PASSED] Shared buffer object
[12:20:19] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[12:20:19] ============== ttm_bo_init_reserved_mock_man ==============
[12:20:19] [PASSED] Buffer object for userspace
[12:20:19] [PASSED] Kernel buffer object
[12:20:19] [PASSED] Shared buffer object
[12:20:19] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[12:20:19] [PASSED] ttm_bo_init_reserved_resv
[12:20:19] ================== ttm_bo_validate_basic ==================
[12:20:19] [PASSED] Buffer object for userspace
[12:20:19] [PASSED] Kernel buffer object
[12:20:19] [PASSED] Shared buffer object
[12:20:19] ============== [PASSED] ttm_bo_validate_basic ==============
[12:20:19] [PASSED] ttm_bo_validate_invalid_placement
[12:20:19] ============= ttm_bo_validate_same_placement ==============
[12:20:19] [PASSED] System manager
[12:20:19] [PASSED] VRAM manager
[12:20:19] ========= [PASSED] ttm_bo_validate_same_placement ==========
[12:20:19] [PASSED] ttm_bo_validate_failed_alloc
[12:20:19] [PASSED] ttm_bo_validate_pinned
[12:20:19] [PASSED] ttm_bo_validate_busy_placement
[12:20:19] ================ ttm_bo_validate_multihop =================
[12:20:19] [PASSED] Buffer object for userspace
[12:20:19] [PASSED] Kernel buffer object
[12:20:19] [PASSED] Shared buffer object
[12:20:19] ============ [PASSED] ttm_bo_validate_multihop =============
[12:20:19] ========== ttm_bo_validate_no_placement_signaled ==========
[12:20:19] [PASSED] Buffer object in system domain, no page vector
[12:20:19] [PASSED] Buffer object in system domain with an existing page vector
[12:20:19] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[12:20:19] ======== ttm_bo_validate_no_placement_not_signaled ========
[12:20:19] [PASSED] Buffer object for userspace
[12:20:19] [PASSED] Kernel buffer object
[12:20:19] [PASSED] Shared buffer object
[12:20:19] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[12:20:19] [PASSED] ttm_bo_validate_move_fence_signaled
[12:20:19] ========= ttm_bo_validate_move_fence_not_signaled =========
[12:20:19] [PASSED] Waits for GPU
[12:20:19] [PASSED] Tries to lock straight away
[12:20:19] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[12:20:19] [PASSED] ttm_bo_validate_swapout
[12:20:19] [PASSED] ttm_bo_validate_happy_evict
[12:20:19] [PASSED] ttm_bo_validate_all_pinned_evict
[12:20:19] [PASSED] ttm_bo_validate_allowed_only_evict
[12:20:19] [PASSED] ttm_bo_validate_deleted_evict
[12:20:19] [PASSED] ttm_bo_validate_busy_domain_evict
[12:20:19] [PASSED] ttm_bo_validate_evict_gutting
[12:20:19] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[12:20:19] ================= [PASSED] ttm_bo_validate =================
[12:20:19] ============================================================
[12:20:19] Testing complete. Ran 102 tests: passed: 102
[12:20:20] Elapsed time: 11.191s total, 1.710s configuring, 8.809s building, 0.560s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 16+ messages in thread* ✗ CI.Build: failure for series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
` (4 preceding siblings ...)
2024-08-13 12:20 ` ✓ CI.KUnit: success " Patchwork
@ 2024-08-13 12:24 ` Patchwork
2024-08-13 12:55 ` [PATCH 1/3] " Ghimiray, Himal Prasad
2024-08-14 2:24 ` Andrew Morton
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2024-08-13 12:24 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
URL : https://patchwork.freedesktop.org/series/137232/
State : failure
== Summary ==
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_utils.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_policy.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_translation_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_dc_resource_mgmt.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_mall_phantom.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml_display_rq_dlg_calc.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_top/dml_top.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_top/dml_top_mcache.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_top/dml2_top_optimization.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/inc/dml2_debug.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_factory.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_shared.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_dpmm/dml2_dpmm_dcn4.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_dpmm/dml2_dpmm_factory.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_mcg/dml2_mcg_dcn4.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_mcg/dml2_mcg_factory.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn3.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_factory.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_standalone_libraries/lib_float_math.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/dml21_translation_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/dml21_wrapper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/dml21_utils.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce120/dce120_timing_generator.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce112/dce112_compressor.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_timing_generator.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_compressor.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_opp_regamma_v.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_opp_csc_v.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_timing_generator_v.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_mem_input_v.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_opp_v.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_transform_v.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce80/dce80_timing_generator.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce60/dce60_timing_generator.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce60/dce60_hw_sequencer.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce60/dce60_resource.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/hdcp/hdcp_msg.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/spl/dc_spl.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/spl/dc_spl_scl_filters.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/spl/dc_spl_isharp_filters.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_stat.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_resource.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_hw_sequencer.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_sink.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_surface.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_debug.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_stream.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_enc_cfg.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_exports.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_state.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_vm_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dc_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dc_edid_parser.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dc_spl_translate.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/freesync/freesync.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/color/color_gamma.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/color/color_table.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/info_packet/info_packet.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/power/power_helpers.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_srv.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_srv_stat.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_reg.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn20.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn21.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn30.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn301.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn302.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn303.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn31.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn314.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn315.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn316.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn32.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn35.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn351.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn401.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp_ddc.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp_log.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp_psp.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp1_execution.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp1_transition.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp2_execution.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp/hdcp2_transition.o
LD [M] drivers/gpu/drm/amd/amdgpu/amdgpu.o
AR drivers/gpu/built-in.a
make[3]: *** [../scripts/Makefile.build:485: drivers] Error 2
make[2]: *** [/kernel/Makefile:1925: .] Error 2
make[1]: *** [/kernel/Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/kernel/build64-default'
make: *** [Makefile:224: __sub-make] Error 2
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
` (5 preceding siblings ...)
2024-08-13 12:24 ` ✗ CI.Build: failure " Patchwork
@ 2024-08-13 12:55 ` Ghimiray, Himal Prasad
2024-08-14 2:24 ` Andrew Morton
7 siblings, 0 replies; 16+ messages in thread
From: Ghimiray, Himal Prasad @ 2024-08-13 12:55 UTC (permalink / raw)
To: Jani Nikula, linux-kernel
Cc: intel-xe, linux-arm-msm, dri-devel, akinobu.mita, akpm,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov
On 13-08-2024 17:42, Jani Nikula wrote:
> The fault-inject.h users across the kernel need to add a lot of #ifdef
> CONFIG_FAULT_INJECTION to cater for shortcomings in the header. Make
> fault-inject.h self-contained for CONFIG_FAULT_INJECTION=n, and add
> stubs for DECLARE_FAULT_ATTR(), setup_fault_attr(), should_fail_ex(),
> and should_fail() to allow removal of conditional compilation.
Would a "Fixes" tag be appropriate here?
Fixes: 6ff1cb355e62 ("[PATCH] fault-injection capabilities infrastructure")
>
> Cc: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> include/linux/fault-inject.h | 36 +++++++++++++++++++++++++++++-------
> 1 file changed, 29 insertions(+), 7 deletions(-)
>
> diff --git a/include/linux/fault-inject.h b/include/linux/fault-inject.h
> index 354413950d34..8c829d28dcf3 100644
> --- a/include/linux/fault-inject.h
> +++ b/include/linux/fault-inject.h
> @@ -2,13 +2,17 @@
> #ifndef _LINUX_FAULT_INJECT_H
> #define _LINUX_FAULT_INJECT_H
>
> +#include <linux/err.h>
> +#include <linux/types.h>
> +
> +struct dentry;
> +struct kmem_cache;
> +
> #ifdef CONFIG_FAULT_INJECTION
>
> -#include <linux/types.h>
> -#include <linux/debugfs.h>
> +#include <linux/atomic.h>
> #include <linux/configfs.h>
> #include <linux/ratelimit.h>
> -#include <linux/atomic.h>
>
> /*
> * For explanation of the elements of this struct, see
> @@ -51,6 +55,28 @@ int setup_fault_attr(struct fault_attr *attr, char *str);
> bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags);
> bool should_fail(struct fault_attr *attr, ssize_t size);
>
> +#else /* CONFIG_FAULT_INJECTION */
> +
> +struct fault_attr {
> +};
> +
> +#define DECLARE_FAULT_ATTR(name) struct fault_attr name = {}
> +
> +static inline int setup_fault_attr(struct fault_attr *attr, char *str)
> +{
> + return 0; /* Note: 0 means error for __setup() handlers! */
> +}
> +static inline bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags)
> +{
> + return false;
> +}
> +static inline bool should_fail(struct fault_attr *attr, ssize_t size)
> +{
> + return false;
> +}
> +
> +#endif /* CONFIG_FAULT_INJECTION */
> +
> #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
>
> struct dentry *fault_create_debugfs_attr(const char *name,
> @@ -87,10 +113,6 @@ static inline void fault_config_init(struct fault_config *config,
>
> #endif /* CONFIG_FAULT_INJECTION_CONFIGFS */
>
> -#endif /* CONFIG_FAULT_INJECTION */
> -
> -struct kmem_cache;
> -
> #ifdef CONFIG_FAIL_PAGE_ALLOC
> bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order);
> #else
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-13 12:12 [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n Jani Nikula
` (6 preceding siblings ...)
2024-08-13 12:55 ` [PATCH 1/3] " Ghimiray, Himal Prasad
@ 2024-08-14 2:24 ` Andrew Morton
2024-08-14 6:57 ` Jani Nikula
7 siblings, 1 reply; 16+ messages in thread
From: Andrew Morton @ 2024-08-14 2:24 UTC (permalink / raw)
To: Jani Nikula
Cc: linux-kernel, intel-xe, linux-arm-msm, dri-devel, akinobu.mita,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov
On Tue, 13 Aug 2024 15:12:35 +0300 Jani Nikula <jani.nikula@intel.com> wrote:
> The fault-inject.h users across the kernel need to add a lot of #ifdef
> CONFIG_FAULT_INJECTION to cater for shortcomings in the header. Make
> fault-inject.h self-contained for CONFIG_FAULT_INJECTION=n, and add
> stubs for DECLARE_FAULT_ATTR(), setup_fault_attr(), should_fail_ex(),
> and should_fail() to allow removal of conditional compilation.
>
> --- a/include/linux/fault-inject.h
> +++ b/include/linux/fault-inject.h
>
> -#include <linux/types.h>
> -#include <linux/debugfs.h>
Removing a nested include exposes all those sites which were
erroneously depending upon that nested include. Here's what I have
found so far, there will be more.
--- a/mm/failslab.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/mm/failslab.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/fault-inject.h>
#include <linux/error-injection.h>
+#include <linux/debugfs.h>
#include <linux/slab.h>
#include <linux/mm.h>
#include "slab.h"
--- a/lib/fault-inject.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/lib/fault-inject.c
@@ -2,6 +2,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/random.h>
+#include <linux/debugfs.h>
#include <linux/sched.h>
#include <linux/stat.h>
#include <linux/types.h>
--- a/kernel/futex/core.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/kernel/futex/core.c
@@ -34,6 +34,7 @@
#include <linux/compat.h>
#include <linux/jhash.h>
#include <linux/pagemap.h>
+#include <linux/debugfs.h>
#include <linux/plist.h>
#include <linux/memblock.h>
#include <linux/fault-inject.h>
_
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-14 2:24 ` Andrew Morton
@ 2024-08-14 6:57 ` Jani Nikula
2024-08-14 19:12 ` Andrew Morton
0 siblings, 1 reply; 16+ messages in thread
From: Jani Nikula @ 2024-08-14 6:57 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-kernel, intel-xe, linux-arm-msm, dri-devel, akinobu.mita,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov
On Tue, 13 Aug 2024, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Tue, 13 Aug 2024 15:12:35 +0300 Jani Nikula <jani.nikula@intel.com> wrote:
>
>> The fault-inject.h users across the kernel need to add a lot of #ifdef
>> CONFIG_FAULT_INJECTION to cater for shortcomings in the header. Make
>> fault-inject.h self-contained for CONFIG_FAULT_INJECTION=n, and add
>> stubs for DECLARE_FAULT_ATTR(), setup_fault_attr(), should_fail_ex(),
>> and should_fail() to allow removal of conditional compilation.
>>
>> --- a/include/linux/fault-inject.h
>> +++ b/include/linux/fault-inject.h
>>
>> -#include <linux/types.h>
>> -#include <linux/debugfs.h>
>
> Removing a nested include exposes all those sites which were
> erroneously depending upon that nested include. Here's what I have
> found so far, there will be more.
Right. I didn't hit them with the configs I tried... though I wonder why
not, especially lib/fault-inject.c puzzles me.
How do you want to proceed? Arguably uncovering and fixing those places
is good, but that's kind of an unintended consequence here.
BR,
Jani.
>
> --- a/mm/failslab.c~fault-inject-improve-build-for-config_fault_injection=n-fix
> +++ a/mm/failslab.c
> @@ -1,6 +1,7 @@
> // SPDX-License-Identifier: GPL-2.0
> #include <linux/fault-inject.h>
> #include <linux/error-injection.h>
> +#include <linux/debugfs.h>
> #include <linux/slab.h>
> #include <linux/mm.h>
> #include "slab.h"
> --- a/lib/fault-inject.c~fault-inject-improve-build-for-config_fault_injection=n-fix
> +++ a/lib/fault-inject.c
> @@ -2,6 +2,7 @@
> #include <linux/kernel.h>
> #include <linux/init.h>
> #include <linux/random.h>
> +#include <linux/debugfs.h>
> #include <linux/sched.h>
> #include <linux/stat.h>
> #include <linux/types.h>
> --- a/kernel/futex/core.c~fault-inject-improve-build-for-config_fault_injection=n-fix
> +++ a/kernel/futex/core.c
> @@ -34,6 +34,7 @@
> #include <linux/compat.h>
> #include <linux/jhash.h>
> #include <linux/pagemap.h>
> +#include <linux/debugfs.h>
> #include <linux/plist.h>
> #include <linux/memblock.h>
> #include <linux/fault-inject.h>
> _
>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/3] fault-inject: improve build for CONFIG_FAULT_INJECTION=n
2024-08-14 6:57 ` Jani Nikula
@ 2024-08-14 19:12 ` Andrew Morton
0 siblings, 0 replies; 16+ messages in thread
From: Andrew Morton @ 2024-08-14 19:12 UTC (permalink / raw)
To: Jani Nikula
Cc: linux-kernel, intel-xe, linux-arm-msm, dri-devel, akinobu.mita,
lucas.demarchi, rodrigo.vivi, thomas.hellstrom, robdclark,
quic_abhinavk, dmitry.baryshkov
On Wed, 14 Aug 2024 09:57:31 +0300 Jani Nikula <jani.nikula@intel.com> wrote:
> > Removing a nested include exposes all those sites which were
> > erroneously depending upon that nested include. Here's what I have
> > found so far, there will be more.
>
> Right. I didn't hit them with the configs I tried... though I wonder why
> not, especially lib/fault-inject.c puzzles me.
>
> How do you want to proceed? Arguably uncovering and fixing those places
> is good, but that's kind of an unintended consequence here.
Is OK, it's a good change. I fixed everything which my usual build
testing covers. Other things will be reported and I'll fix those also.
If you have time to eyeball the 36 files which include fault-inject.h
then that would help things along.
^ permalink raw reply [flat|nested] 16+ messages in thread