All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking
@ 2023-05-29  6:27 Jouni Högander
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 1/4] drm/i915: Add macros to get i915 device from i915_gem_object Jouni Högander
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Jouni Högander @ 2023-05-29  6:27 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula, Rodrigo Vivi

We are preparing for Xe driver. Binary objects will have differing
implementation in Xe driver. Due this we want to remove direct
accesses to i915_gem_object members and leave details to binary object
implementation.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Jouni Högander (4):
  drm/i915: Add macros to get i915 device from i915_gem_object
  drm/i915: Add getter/setter for i915_gem_object->frontbuffer
  drm/i915/display: Remove i915_gem_object_types.h from
    intel_frontbuffer.h
  drm/i915: Add function to clear scanout flag for vmas

 .../gpu/drm/i915/display/intel_frontbuffer.c  | 44 +++++-------
 .../gpu/drm/i915/display/intel_frontbuffer.h  | 28 --------
 drivers/gpu/drm/i915/gem/i915_gem_object.c    | 70 ++++++++++++++++++-
 drivers/gpu/drm/i915/gem/i915_gem_object.h    |  6 ++
 .../gpu/drm/i915/gem/i915_gem_object_types.h  |  3 +
 drivers/gpu/drm/i915/i915_vma.c               | 22 +++++-
 drivers/gpu/drm/i915/i915_vma.h               |  2 +
 7 files changed, 116 insertions(+), 59 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH 1/4] drm/i915: Add macros to get i915 device from i915_gem_object
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
@ 2023-05-29  6:27 ` Jouni Högander
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer Jouni Högander
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Jouni Högander @ 2023-05-29  6:27 UTC (permalink / raw)
  To: intel-gfx

We want to stop touching directly i915_gem_object struct members in
intel_frontbuffer code. As a part of this we add helper macro to get i915
device from i915_gem_object.

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 .../gpu/drm/i915/display/intel_frontbuffer.c   | 18 +++++++++---------
 .../gpu/drm/i915/gem/i915_gem_object_types.h   |  3 +++
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
index 17a7aa8b28c2..3ce0436a0c7d 100644
--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
@@ -167,7 +167,7 @@ void __intel_fb_invalidate(struct intel_frontbuffer *front,
 			   enum fb_op_origin origin,
 			   unsigned int frontbuffer_bits)
 {
-	struct drm_i915_private *i915 = to_i915(front->obj->base.dev);
+	struct drm_i915_private *i915 = intel_bo_to_i915(front->obj);
 
 	if (origin == ORIGIN_CS) {
 		spin_lock(&i915->display.fb_tracking.lock);
@@ -188,7 +188,7 @@ void __intel_fb_flush(struct intel_frontbuffer *front,
 		      enum fb_op_origin origin,
 		      unsigned int frontbuffer_bits)
 {
-	struct drm_i915_private *i915 = to_i915(front->obj->base.dev);
+	struct drm_i915_private *i915 = intel_bo_to_i915(front->obj);
 
 	if (origin == ORIGIN_CS) {
 		spin_lock(&i915->display.fb_tracking.lock);
@@ -221,14 +221,14 @@ static void frontbuffer_retire(struct i915_active *ref)
 }
 
 static void frontbuffer_release(struct kref *ref)
-	__releases(&to_i915(front->obj->base.dev)->display.fb_tracking.lock)
+	__releases(&intel_bo_to_i915(front->obj)->display.fb_tracking.lock)
 {
 	struct intel_frontbuffer *front =
 		container_of(ref, typeof(*front), ref);
 	struct drm_i915_gem_object *obj = front->obj;
 	struct i915_vma *vma;
 
-	drm_WARN_ON(obj->base.dev, atomic_read(&front->bits));
+	drm_WARN_ON(&intel_bo_to_i915(obj)->drm, atomic_read(&front->bits));
 
 	spin_lock(&obj->vma.lock);
 	for_each_ggtt_vma(vma, obj) {
@@ -238,7 +238,7 @@ static void frontbuffer_release(struct kref *ref)
 	spin_unlock(&obj->vma.lock);
 
 	RCU_INIT_POINTER(obj->frontbuffer, NULL);
-	spin_unlock(&to_i915(obj->base.dev)->display.fb_tracking.lock);
+	spin_unlock(&intel_bo_to_i915(obj)->display.fb_tracking.lock);
 
 	i915_active_fini(&front->write);
 
@@ -249,7 +249,7 @@ static void frontbuffer_release(struct kref *ref)
 struct intel_frontbuffer *
 intel_frontbuffer_get(struct drm_i915_gem_object *obj)
 {
-	struct drm_i915_private *i915 = to_i915(obj->base.dev);
+	struct drm_i915_private *i915 = intel_bo_to_i915(obj);
 	struct intel_frontbuffer *front;
 
 	front = __intel_frontbuffer_get(obj);
@@ -286,7 +286,7 @@ void intel_frontbuffer_put(struct intel_frontbuffer *front)
 {
 	kref_put_lock(&front->ref,
 		      frontbuffer_release,
-		      &to_i915(front->obj->base.dev)->display.fb_tracking.lock);
+		      &intel_bo_to_i915(front->obj)->display.fb_tracking.lock);
 }
 
 /**
@@ -315,13 +315,13 @@ void intel_frontbuffer_track(struct intel_frontbuffer *old,
 	BUILD_BUG_ON(I915_MAX_PLANES > INTEL_FRONTBUFFER_BITS_PER_PIPE);
 
 	if (old) {
-		drm_WARN_ON(old->obj->base.dev,
+		drm_WARN_ON(&intel_bo_to_i915(old->obj)->drm,
 			    !(atomic_read(&old->bits) & frontbuffer_bits));
 		atomic_andnot(frontbuffer_bits, &old->bits);
 	}
 
 	if (new) {
-		drm_WARN_ON(new->obj->base.dev,
+		drm_WARN_ON(&intel_bo_to_i915(new->obj)->drm,
 			    atomic_read(&new->bits) & frontbuffer_bits);
 		atomic_or(frontbuffer_bits, &new->bits);
 	}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index e72c57716bee..658bdac2a75f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -718,6 +718,9 @@ struct drm_i915_gem_object {
 	};
 };
 
+#define intel_bo_to_drm_bo(bo) ((bo)->base)
+#define intel_bo_to_i915(bo) to_i915(intel_bo_to_drm_bo(bo).dev)
+
 static inline struct drm_i915_gem_object *
 to_intel_bo(struct drm_gem_object *gem)
 {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 1/4] drm/i915: Add macros to get i915 device from i915_gem_object Jouni Högander
@ 2023-05-29  6:27 ` Jouni Högander
  2023-07-26 14:27   ` Nirmoy Das
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 3/4] drm/i915/display: Remove i915_gem_object_types.h from intel_frontbuffer.h Jouni Högander
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Jouni Högander @ 2023-05-29  6:27 UTC (permalink / raw)
  To: intel-gfx

Add getter/setter for i915_gem_object->frontbuffer and use it instead of
directly touching i915_gem_object->frontbuffer frontbuffer pointer.

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 .../gpu/drm/i915/display/intel_frontbuffer.c  | 18 ++---
 .../gpu/drm/i915/display/intel_frontbuffer.h  | 27 -------
 drivers/gpu/drm/i915/gem/i915_gem_object.c    | 70 ++++++++++++++++++-
 drivers/gpu/drm/i915/gem/i915_gem_object.h    |  6 ++
 drivers/gpu/drm/i915/i915_vma.c               |  2 +-
 5 files changed, 81 insertions(+), 42 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
index 3ce0436a0c7d..41ac65c98720 100644
--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
@@ -237,7 +237,7 @@ static void frontbuffer_release(struct kref *ref)
 	}
 	spin_unlock(&obj->vma.lock);
 
-	RCU_INIT_POINTER(obj->frontbuffer, NULL);
+	i915_gem_object_set_frontbuffer(obj, NULL);
 	spin_unlock(&intel_bo_to_i915(obj)->display.fb_tracking.lock);
 
 	i915_active_fini(&front->write);
@@ -250,9 +250,9 @@ struct intel_frontbuffer *
 intel_frontbuffer_get(struct drm_i915_gem_object *obj)
 {
 	struct drm_i915_private *i915 = intel_bo_to_i915(obj);
-	struct intel_frontbuffer *front;
+	struct intel_frontbuffer *front, *front_ret;
 
-	front = __intel_frontbuffer_get(obj);
+	front = i915_gem_object_get_frontbuffer(obj);
 	if (front)
 		return front;
 
@@ -269,16 +269,10 @@ intel_frontbuffer_get(struct drm_i915_gem_object *obj)
 			 I915_ACTIVE_RETIRE_SLEEPS);
 
 	spin_lock(&i915->display.fb_tracking.lock);
-	if (rcu_access_pointer(obj->frontbuffer)) {
-		kfree(front);
-		front = rcu_dereference_protected(obj->frontbuffer, true);
-		kref_get(&front->ref);
-	} else {
-		i915_gem_object_get(obj);
-		rcu_assign_pointer(obj->frontbuffer, front);
-	}
+	front_ret = i915_gem_object_set_frontbuffer(obj, front);
 	spin_unlock(&i915->display.fb_tracking.lock);
-
+	if (front_ret != front)
+		kfree(front);
 	return front;
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
index 3c474ed937fb..eeccc847331d 100644
--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h
+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
@@ -75,33 +75,6 @@ void intel_frontbuffer_flip(struct drm_i915_private *i915,
 
 void intel_frontbuffer_put(struct intel_frontbuffer *front);
 
-static inline struct intel_frontbuffer *
-__intel_frontbuffer_get(const struct drm_i915_gem_object *obj)
-{
-	struct intel_frontbuffer *front;
-
-	if (likely(!rcu_access_pointer(obj->frontbuffer)))
-		return NULL;
-
-	rcu_read_lock();
-	do {
-		front = rcu_dereference(obj->frontbuffer);
-		if (!front)
-			break;
-
-		if (unlikely(!kref_get_unless_zero(&front->ref)))
-			continue;
-
-		if (likely(front == rcu_access_pointer(obj->frontbuffer)))
-			break;
-
-		intel_frontbuffer_put(front);
-	} while (1);
-	rcu_read_unlock();
-
-	return front;
-}
-
 struct intel_frontbuffer *
 intel_frontbuffer_get(struct drm_i915_gem_object *obj);
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
index 46a19b099ec8..6945e903e106 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -463,7 +463,7 @@ void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
 {
 	struct intel_frontbuffer *front;
 
-	front = __intel_frontbuffer_get(obj);
+	front = i915_gem_object_get_frontbuffer(obj);
 	if (front) {
 		intel_frontbuffer_flush(front, origin);
 		intel_frontbuffer_put(front);
@@ -475,7 +475,7 @@ void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
 {
 	struct intel_frontbuffer *front;
 
-	front = __intel_frontbuffer_get(obj);
+	front = i915_gem_object_get_frontbuffer(obj);
 	if (front) {
 		intel_frontbuffer_invalidate(front, origin);
 		intel_frontbuffer_put(front);
@@ -952,6 +952,72 @@ bool i915_gem_object_has_unknown_state(struct drm_i915_gem_object *obj)
 	return obj->mm.unknown_state;
 }
 
+/**
+ * i915_gem_object_get_frontbuffer - Get the object's frontbuffer
+ * @obj: The object whose frontbuffer to get.
+ *
+ * Get pointer to object's frontbuffer if such exists. Please note that RCU
+ * mechanism is used to handle e.g. ongoing removal of frontbuffer pointer.
+ *
+ * Return: pointer to object's frontbuffer is such exists or NULL
+ */
+struct intel_frontbuffer *
+i915_gem_object_get_frontbuffer(const struct drm_i915_gem_object *obj)
+{
+	struct intel_frontbuffer *front;
+
+	if (likely(!rcu_access_pointer(obj->frontbuffer)))
+		return NULL;
+
+	rcu_read_lock();
+	do {
+		front = rcu_dereference(obj->frontbuffer);
+		if (!front)
+			break;
+
+		if (unlikely(!kref_get_unless_zero(&front->ref)))
+			continue;
+
+		if (likely(front == rcu_access_pointer(obj->frontbuffer)))
+			break;
+
+		intel_frontbuffer_put(front);
+	} while (1);
+	rcu_read_unlock();
+
+	return front;
+}
+
+/**
+ * i915_gem_object_set_frontbuffer - Set the object's frontbuffer
+ * @obj: The object whose frontbuffer to set.
+ * @front: The frontbuffer to set
+ *
+ * Set object's frontbuffer pointer. If frontbuffer is already set for the
+ * object keep it and return it's pointer to the caller. Please note that RCU
+ * mechanism is used to handle e.g. ongoing removal of frontbuffer pointer.
+ *
+ * Return: pointer to frontbuffer which was set.
+ */
+struct intel_frontbuffer *
+i915_gem_object_set_frontbuffer(struct drm_i915_gem_object *obj,
+				struct intel_frontbuffer *front)
+{
+	struct intel_frontbuffer *front_ret = front;
+
+	if (!front) {
+		RCU_INIT_POINTER(obj->frontbuffer, NULL);
+	} else if (rcu_access_pointer(obj->frontbuffer)) {
+		front_ret = rcu_dereference_protected(obj->frontbuffer, true);
+		kref_get(&front_ret->ref);
+	} else {
+		drm_gem_object_get(&intel_bo_to_drm_bo(obj));
+		rcu_assign_pointer(obj->frontbuffer, front);
+	}
+
+	return front_ret;
+}
+
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
 #include "selftests/huge_gem_object.c"
 #include "selftests/huge_pages.c"
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
index 884a17275b3a..69c5fa91152a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -891,4 +891,10 @@ static inline int i915_gem_object_userptr_validate(struct drm_i915_gem_object *o
 
 #endif
 
+struct intel_frontbuffer *
+i915_gem_object_get_frontbuffer(const struct drm_i915_gem_object *obj);
+struct intel_frontbuffer *
+i915_gem_object_set_frontbuffer(struct drm_i915_gem_object *obj,
+				struct intel_frontbuffer *front);
+
 #endif
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index ffb425ba591c..c66ff2157f6a 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -1908,7 +1908,7 @@ int _i915_vma_move_to_active(struct i915_vma *vma,
 	if (flags & EXEC_OBJECT_WRITE) {
 		struct intel_frontbuffer *front;
 
-		front = __intel_frontbuffer_get(obj);
+		front = i915_gem_object_get_frontbuffer(obj);
 		if (unlikely(front)) {
 			if (intel_frontbuffer_invalidate(front, ORIGIN_CS))
 				i915_active_add_request(&front->write, rq);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH 3/4] drm/i915/display: Remove i915_gem_object_types.h from intel_frontbuffer.h
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 1/4] drm/i915: Add macros to get i915 device from i915_gem_object Jouni Högander
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer Jouni Högander
@ 2023-05-29  6:27 ` Jouni Högander
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 4/4] drm/i915: Add function to clear scanout flag for vmas Jouni Högander
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Jouni Högander @ 2023-05-29  6:27 UTC (permalink / raw)
  To: intel-gfx

Now as we have removed all the references to internals of i915_gem_object
from the frontbuffer header we can also remove including
i915_gem_object_types.h.

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 drivers/gpu/drm/i915/display/intel_frontbuffer.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
index eeccc847331d..72d89be3284b 100644
--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h
+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
@@ -28,7 +28,6 @@
 #include <linux/bits.h>
 #include <linux/kref.h>
 
-#include "gem/i915_gem_object_types.h"
 #include "i915_active_types.h"
 
 struct drm_i915_private;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH 4/4] drm/i915: Add function to clear scanout flag for vmas
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
                   ` (2 preceding siblings ...)
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 3/4] drm/i915/display: Remove i915_gem_object_types.h from intel_frontbuffer.h Jouni Högander
@ 2023-05-29  6:27 ` Jouni Högander
  2023-05-29  7:59 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning for Do not access i915_gem_object members from frontbuffer tracking Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Jouni Högander @ 2023-05-29  6:27 UTC (permalink / raw)
  To: intel-gfx

Currently frontbuffer tracking code is directly iterating over object vmas
and clearing scanout flags for them. Add function to clear scanout flag for
vmas and use it from frontbuffer tracking code.

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 .../gpu/drm/i915/display/intel_frontbuffer.c  |  8 +-------
 drivers/gpu/drm/i915/i915_vma.c               | 20 +++++++++++++++++++
 drivers/gpu/drm/i915/i915_vma.h               |  2 ++
 3 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
index 41ac65c98720..29ac068b8fa5 100644
--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
@@ -226,16 +226,10 @@ static void frontbuffer_release(struct kref *ref)
 	struct intel_frontbuffer *front =
 		container_of(ref, typeof(*front), ref);
 	struct drm_i915_gem_object *obj = front->obj;
-	struct i915_vma *vma;
 
 	drm_WARN_ON(&intel_bo_to_i915(obj)->drm, atomic_read(&front->bits));
 
-	spin_lock(&obj->vma.lock);
-	for_each_ggtt_vma(vma, obj) {
-		i915_vma_clear_scanout(vma);
-		vma->display_alignment = I915_GTT_MIN_ALIGNMENT;
-	}
-	spin_unlock(&obj->vma.lock);
+	i915_ggtt_clear_scanout(obj);
 
 	i915_gem_object_set_frontbuffer(obj, NULL);
 	spin_unlock(&intel_bo_to_i915(obj)->display.fb_tracking.lock);
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index c66ff2157f6a..863fccba9ccd 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -1629,6 +1629,26 @@ int i915_ggtt_pin(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
 	return err;
 }
 
+/**
+ * i915_ggtt_clear_scanout - Clear scanout flag for all objects ggtt vmas
+ *
+ * This function clears scanout flags for objects ggtt vmas. These flags are set
+ * when object is pinned for display use and this function to clear them all is
+ * targeted to be called by frontbuffer tracking code when the frontbuffer is
+ * about to be released.
+ */
+void i915_ggtt_clear_scanout(struct drm_i915_gem_object *obj)
+{
+	struct i915_vma *vma;
+
+	spin_lock(&obj->vma.lock);
+	for_each_ggtt_vma(vma, obj) {
+		i915_vma_clear_scanout(vma);
+		vma->display_alignment = I915_GTT_MIN_ALIGNMENT;
+	}
+	spin_unlock(&obj->vma.lock);
+}
+
 static void __vma_close(struct i915_vma *vma, struct intel_gt *gt)
 {
 	/*
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index 9a9729205d5b..eaa310864370 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -435,6 +435,8 @@ static inline void i915_vma_clear_scanout(struct i915_vma *vma)
 	clear_bit(I915_VMA_SCANOUT_BIT, __i915_vma_flags(vma));
 }
 
+void i915_ggtt_clear_scanout(struct drm_i915_gem_object *obj);
+
 #define for_each_until(cond) if (cond) break; else
 
 /**
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BUILD: warning for Do not access i915_gem_object members from frontbuffer tracking
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
                   ` (3 preceding siblings ...)
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 4/4] drm/i915: Add function to clear scanout flag for vmas Jouni Högander
@ 2023-05-29  7:59 ` Patchwork
  2023-05-29  7:59 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-05-29  7:59 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

== Series Details ==

Series: Do not access i915_gem_object members from frontbuffer tracking
URL   : https://patchwork.freedesktop.org/series/118475/
State : warning

== Summary ==

Error: make ARCH=i386 failed
  CALL    scripts/checksyscalls.sh
  DESCEND objtool
  INSTALL libsubcmd_headers
  CC      init/main.o
  UPD     init/utsversion-tmp.h
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_initrd.o
  CC      init/initramfs.o
  CC      init/calibrate.o
  CC      init/init_task.o
  AR      init/built-in.a
  HOSTCC  usr/gen_init_cpio
  GEN     usr/initramfs_data.cpio
  COPY    usr/initramfs_inc_data
  AS      usr/initramfs_data.o
  AR      usr/built-in.a
  CC      arch/x86/entry/vdso/vma.o
  CC      arch/x86/entry/vdso/extable.o
  LDS     arch/x86/entry/vdso/vdso.lds
  AS      arch/x86/entry/vdso/vdso-note.o
  CC      arch/x86/entry/vdso/vclock_gettime.o
  CC      arch/x86/entry/vdso/vgetcpu.o
  VDSO    arch/x86/entry/vdso/vdso64.so.dbg
  OBJCOPY arch/x86/entry/vdso/vdso64.so
  HOSTCC  arch/x86/entry/vdso/vdso2c
  VDSO2C  arch/x86/entry/vdso/vdso-image-64.c
  CC      arch/x86/entry/vdso/vdso-image-64.o
  AR      arch/x86/entry/vdso/built-in.a
  CC      arch/x86/entry/vsyscall/vsyscall_64.o
  AS      arch/x86/entry/vsyscall/vsyscall_emu_64.o
  AR      arch/x86/entry/vsyscall/built-in.a
  AS      arch/x86/entry/entry.o
  AS      arch/x86/entry/entry_64.o
  CC      arch/x86/entry/syscall_64.o
  CC      arch/x86/entry/common.o
  AS      arch/x86/entry/thunk_64.o
  AR      arch/x86/entry/built-in.a
  CC      arch/x86/events/amd/core.o
  CC      arch/x86/events/amd/lbr.o
  CC      arch/x86/events/amd/ibs.o
  CC      arch/x86/events/amd/uncore.o
  AR      arch/x86/events/amd/built-in.a
  CC      arch/x86/events/intel/core.o
  CC      arch/x86/events/intel/bts.o
  CC      arch/x86/events/intel/ds.o
  CC      arch/x86/events/intel/knc.o
  CC      arch/x86/events/intel/lbr.o
  CC      arch/x86/events/intel/p4.o
  CC      arch/x86/events/intel/p6.o
  CC      arch/x86/events/intel/pt.o
  CC      arch/x86/events/intel/uncore.o
  CC      arch/x86/events/intel/uncore_nhmex.o
  CC      arch/x86/events/intel/uncore_snb.o
  CC      arch/x86/events/intel/uncore_snbep.o
  CC      arch/x86/events/intel/uncore_discovery.o
  CC      arch/x86/events/intel/cstate.o
  AR      arch/x86/events/intel/built-in.a
  CC      arch/x86/events/zhaoxin/core.o
  AR      arch/x86/events/zhaoxin/built-in.a
  CC      arch/x86/events/core.o
  CC      arch/x86/events/probe.o
  CC      arch/x86/events/utils.o
  CC      arch/x86/events/rapl.o
  CC      arch/x86/events/msr.o
  AR      arch/x86/events/built-in.a
  CC      arch/x86/realmode/init.o
  AS      arch/x86/realmode/rm/header.o
  AS      arch/x86/realmode/rm/trampoline_64.o
  AS      arch/x86/realmode/rm/stack.o
  AS      arch/x86/realmode/rm/reboot.o
  AS      arch/x86/realmode/rm/wakeup_asm.o
  CC      arch/x86/realmode/rm/wakemain.o
  CC      arch/x86/realmode/rm/video-mode.o
  AS      arch/x86/realmode/rm/copy.o
  AS      arch/x86/realmode/rm/bioscall.o
  CC      arch/x86/realmode/rm/regs.o
  CC      arch/x86/realmode/rm/video-vga.o
  CC      arch/x86/realmode/rm/video-vesa.o
  CC      arch/x86/realmode/rm/video-bios.o
  PASYMS  arch/x86/realmode/rm/pasyms.h
  LDS     arch/x86/realmode/rm/realmode.lds
  LD      arch/x86/realmode/rm/realmode.elf
  RELOCS  arch/x86/realmode/rm/realmode.relocs
  OBJCOPY arch/x86/realmode/rm/realmode.bin
  AS      arch/x86/realmode/rmpiggy.o
  AR      arch/x86/realmode/built-in.a
  CC      arch/x86/kernel/fpu/init.o
  CC      arch/x86/kernel/fpu/bugs.o
  CC      arch/x86/kernel/fpu/core.o
  CC      arch/x86/kernel/fpu/regset.o
  CC      arch/x86/kernel/fpu/signal.o
  CC      arch/x86/kernel/fpu/xstate.o
  AR      arch/x86/kernel/fpu/built-in.a
  CC      arch/x86/kernel/cpu/mce/core.o
  CC      arch/x86/kernel/cpu/mce/severity.o
  CC      arch/x86/kernel/cpu/mce/genpool.o
  CC      arch/x86/kernel/cpu/mce/intel.o
  CC      arch/x86/kernel/cpu/mce/threshold.o
  CC      arch/x86/kernel/cpu/mce/apei.o
  AR      arch/x86/kernel/cpu/mce/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/mtrr.o
  CC      arch/x86/kernel/cpu/mtrr/if.o
  CC      arch/x86/kernel/cpu/mtrr/generic.o
  CC      arch/x86/kernel/cpu/mtrr/cleanup.o
  AR      arch/x86/kernel/cpu/mtrr/built-in.a
  CC      arch/x86/kernel/cpu/cacheinfo.o
  CC      arch/x86/kernel/cpu/scattered.o
  CC      arch/x86/kernel/cpu/topology.o
  CC      arch/x86/kernel/cpu/common.o
  CC      arch/x86/kernel/cpu/rdrand.o
  CC      arch/x86/kernel/cpu/match.o
  CC      arch/x86/kernel/cpu/bugs.o
  CC      arch/x86/kernel/cpu/aperfmperf.o
  CC      arch/x86/kernel/cpu/cpuid-deps.o
  CC      arch/x86/kernel/cpu/umwait.o
  CC      arch/x86/kernel/cpu/proc.o
  MKCAP   arch/x86/kernel/cpu/capflags.c
  CC      arch/x86/kernel/cpu/capflags.o
  CC      arch/x86/kernel/cpu/powerflags.o
  CC      arch/x86/kernel/cpu/feat_ctl.o
  CC      arch/x86/kernel/cpu/intel.o
  CC      arch/x86/kernel/cpu/intel_pconfig.o
  CC      arch/x86/kernel/cpu/tsx.o
  CC      arch/x86/kernel/cpu/intel_epb.o
  CC      arch/x86/kernel/cpu/amd.o
  CC      arch/x86/kernel/cpu/hygon.o
  CC      arch/x86/kernel/cpu/centaur.o
  CC      arch/x86/kernel/cpu/zhaoxin.o
  CC      arch/x86/kernel/cpu/perfctr-watchdog.o
  AR      arch/x86/kernel/cpu/built-in.a
  CC      arch/x86/kernel/acpi/boot.o
  CC      arch/x86/kernel/acpi/sleep.o
  AS      arch/x86/kernel/acpi/wakeup_64.o
  CC      arch/x86/kernel/acpi/apei.o
  CC      arch/x86/kernel/acpi/cppc.o
  CC      arch/x86/kernel/acpi/cstate.o
  AR      arch/x86/kernel/acpi/built-in.a
  CC      arch/x86/kernel/apic/apic.o
  CC      arch/x86/kernel/apic/apic_common.o
  CC      arch/x86/kernel/apic/apic_noop.o
  CC      arch/x86/kernel/apic/ipi.o
  CC      arch/x86/kernel/apic/vector.o
  CC      arch/x86/kernel/apic/hw_nmi.o
  CC      arch/x86/kernel/apic/io_apic.o
  CC      arch/x86/kernel/apic/msi.o
  CC      arch/x86/kernel/apic/apic_flat_64.o
  CC      arch/x86/kernel/apic/probe_64.o
  AR      arch/x86/kernel/apic/built-in.a
  CC      arch/x86/kernel/kprobes/core.o
  CC      arch/x86/kernel/kprobes/opt.o
  AR      arch/x86/kernel/kprobes/built-in.a
  LDS     arch/x86/kernel/vmlinux.lds
  AS      arch/x86/kernel/head_64.o
  CC      arch/x86/kernel/head64.o
  CC      arch/x86/kernel/ebda.o
  CC      arch/x86/kernel/platform-quirks.o
  CC      arch/x86/kernel/process_64.o
  CC      arch/x86/kernel/signal.o
  CC      arch/x86/kernel/signal_64.o
  CC      arch/x86/kernel/traps.o
  CC      arch/x86/kernel/idt.o
  CC      arch/x86/kernel/irq.o
  CC      arch/x86/kernel/irq_64.o
  CC      arch/x86/kernel/dumpstack_64.o
  CC      arch/x86/kernel/time.o
  CC      arch/x86/kernel/ioport.o
  CC      arch/x86/kernel/dumpstack.o
  CC      arch/x86/kernel/nmi.o
  CC      arch/x86/kernel/ldt.o
  CC      arch/x86/kernel/setup.o
  CC      arch/x86/kernel/x86_init.o
  CC      arch/x86/kernel/i8259.o
  CC      arch/x86/kernel/irqinit.o
  CC      arch/x86/kernel/jump_label.o
  CC      arch/x86/kernel/irq_work.o
  CC      arch/x86/kernel/probe_roms.o
  CC      arch/x86/kernel/sys_x86_64.o
  CC      arch/x86/kernel/espfix_64.o
  CC      arch/x86/kernel/ksysfs.o
  CC      arch/x86/kernel/bootflag.o
  CC      arch/x86/kernel/e820.o
  CC      arch/x86/kernel/pci-dma.o
  CC      arch/x86/kernel/quirks.o
  CC      arch/x86/kernel/topology.o
  CC      arch/x86/kernel/kdebugfs.o
  CC      arch/x86/kernel/alternative.o
  CC      arch/x86/kernel/i8253.o
  CC      arch/x86/kernel/hw_breakpoint.o
  CC      arch/x86/kernel/tsc.o
  CC      arch/x86/kernel/tsc_msr.o
  CC      arch/x86/kernel/io_delay.o
  CC      arch/x86/kernel/rtc.o
  CC      arch/x86/kernel/resource.o
  AS      arch/x86/kernel/irqflags.o
  CC      arch/x86/kernel/static_call.o
  CC      arch/x86/kernel/process.o
  CC      arch/x86/kernel/ptrace.o
  CC      arch/x86/kernel/step.o
  CC      arch/x86/kernel/i8237.o
  CC      arch/x86/kernel/stacktrace.o
  CC      arch/x86/kernel/reboot.o
  CC      arch/x86/kernel/msr.o
  CC      arch/x86/kernel/cpuid.o
  CC      arch/x86/kernel/early-quirks.o
  CC      arch/x86/kernel/smp.o
  CC      arch/x86/kernel/smpboot.o
  CC      arch/x86/kernel/tsc_sync.o
  CC      arch/x86/kernel/setup_percpu.o
  CC      arch/x86/kernel/trace_clock.o
  CC      arch/x86/kernel/trace.o
  CC      arch/x86/kernel/rethook.o
  CC      arch/x86/kernel/crash_core_64.o
  CC      arch/x86/kernel/module.o
  CC      arch/x86/kernel/early_printk.o
  CC      arch/x86/kernel/hpet.o
  CC      arch/x86/kernel/amd_nb.o
  CC      arch/x86/kernel/pcspeaker.o
  CC      arch/x86/kernel/check.o
  CC      arch/x86/kernel/perf_regs.o
  CC      arch/x86/kernel/tracepoint.o
  CC      arch/x86/kernel/itmt.o
  CC      arch/x86/kernel/umip.o
  CC      arch/x86/kernel/unwind_frame.o
  CC      arch/x86/kernel/mmconf-fam10h_64.o
  CC      arch/x86/kernel/vsmp_64.o
  AR      arch/x86/kernel/built-in.a
  CC      arch/x86/mm/pat/set_memory.o
  CC      arch/x86/mm/pat/memtype.o
  CC      arch/x86/mm/pat/memtype_interval.o
  AR      arch/x86/mm/pat/built-in.a
  CC      arch/x86/mm/init.o
  CC      arch/x86/mm/init_64.o
  CC      arch/x86/mm/fault.o
  CC      arch/x86/mm/ioremap.o
  CC      arch/x86/mm/extable.o
  CC      arch/x86/mm/mmap.o
  CC      arch/x86/mm/pgtable.o
  CC      arch/x86/mm/physaddr.o
  CC      arch/x86/mm/tlb.o
  CC      arch/x86/mm/cpu_entry_area.o
  CC      arch/x86/mm/maccess.o
  CC      arch/x86/mm/pgprot.o
  CC      arch/x86/mm/hugetlbpage.o
  CC      arch/x86/mm/pkeys.o
  CC      arch/x86/mm/pti.o
  AR      arch/x86/mm/built-in.a
  AS      arch/x86/crypto/aesni-intel_asm.o
  CC      arch/x86/crypto/aesni-intel_glue.o
  AS      arch/x86/crypto/aesni-intel_avx-x86_64.o
  AS      arch/x86/crypto/aes_ctrby8_avx-x86_64.o
  AR      arch/x86/crypto/built-in.a
  AR      arch/x86/platform/atom/built-in.a
  AR      arch/x86/platform/ce4100/built-in.a
  CC      arch/x86/platform/efi/memmap.o
  CC      arch/x86/platform/efi/quirks.o
  CC      arch/x86/platform/efi/efi.o
  CC      arch/x86/platform/efi/efi_64.o
  AS      arch/x86/platform/efi/efi_stub_64.o
  AR      arch/x86/platform/efi/built-in.a
  AR      arch/x86/platform/geode/built-in.a
  AR      arch/x86/platform/iris/built-in.a
  CC      arch/x86/platform/intel/iosf_mbi.o
  AR      arch/x86/platform/intel/built-in.a
  AR      arch/x86/platform/intel-mid/built-in.a
  AR      arch/x86/platform/intel-quark/built-in.a
  AR      arch/x86/platform/olpc/built-in.a
  AR      arch/x86/platform/scx200/built-in.a
  AR      arch/x86/platform/ts5500/built-in.a
  AR      arch/x86/platform/uv/built-in.a
  AR      arch/x86/platform/built-in.a
  AR      arch/x86/net/built-in.a
  AR      arch/x86/built-in.a
  CC      kernel/sched/core.o
  CC      kernel/sched/fair.o
  CC      kernel/sched/build_policy.o
  CC      kernel/sched/build_utility.o
  AR      kernel/sched/built-in.a
  CC      kernel/locking/mutex.o
  CC      kernel/locking/semaphore.o
  CC      kernel/locking/rwsem.o
  CC      kernel/locking/percpu-rwsem.o
  CC      kernel/locking/irqflag-debug.o
  CC      kernel/locking/mutex-debug.o
  CC      kernel/locking/lockdep.o
  CC      kernel/locking/lockdep_proc.o
  CC      kernel/locking/spinlock.o
  CC      kernel/locking/osq_lock.o
  CC      kernel/locking/qspinlock.o
  CC      kernel/locking/rtmutex_api.o
  CC      kernel/locking/spinlock_debug.o
  CC      kernel/locking/qrwlock.o
  AR      kernel/locking/built-in.a
  CC      kernel/power/qos.o
  CC      kernel/power/main.o
  CC      kernel/power/console.o
  CC      kernel/power/process.o
  CC      kernel/power/suspend.o
  CC      kernel/power/hibernate.o
  CC      kernel/power/snapshot.o
  CC      kernel/power/swap.o
  CC      kernel/power/user.o
  CC      kernel/power/poweroff.o
  AR      kernel/power/built-in.a
  CC      kernel/printk/printk.o
  CC      kernel/printk/printk_safe.o
  CC      kernel/printk/printk_ringbuffer.o
  CC      kernel/printk/sysctl.o
  AR      kernel/printk/built-in.a
  CC      kernel/irq/irqdesc.o
  CC      kernel/irq/handle.o
  CC      kernel/irq/manage.o
  CC      kernel/irq/spurious.o
  CC      kernel/irq/resend.o
  CC      kernel/irq/chip.o
  CC      kernel/irq/dummychip.o
  CC      kernel/irq/devres.o
  CC      kernel/irq/autoprobe.o
  CC      kernel/irq/irqdomain.o
  CC      kernel/irq/proc.o
  CC      kernel/irq/migration.o
  CC      kernel/irq/cpuhotplug.o
  CC      kernel/irq/pm.o
  CC      kernel/irq/msi.o
  CC      kernel/irq/affinity.o
  CC      kernel/irq/matrix.o
  AR      kernel/irq/built-in.a
  CC      kernel/rcu/update.o
  CC      kernel/rcu/sync.o
  CC      kernel/rcu/srcutree.o
  CC      kernel/rcu/tree.o
  CC      kernel/rcu/rcu_segcblist.o
  AR      kernel/rcu/built-in.a
  AR      kernel/livepatch/built-in.a
  CC      kernel/dma/mapping.o
  CC      kernel/dma/direct.o
  CC      kernel/dma/ops_helpers.o
  CC      kernel/dma/dummy.o
  CC      kernel/dma/swiotlb.o
  CC      kernel/dma/remap.o
  AR      kernel/dma/built-in.a
  CC      kernel/entry/common.o
  CC      kernel/entry/syscall_user_dispatch.o
  CC      kernel/entry/kvm.o
  AR      kernel/entry/built-in.a
  CC      kernel/module/main.o
  CC      kernel/module/strict_rwx.o
  CC      kernel/module/kmod.o
  CC      kernel/module/tree_lookup.o
  CC      kernel/module/kallsyms.o
  CC      kernel/module/procfs.o
  CC      kernel/module/sysfs.o
  AR      kernel/module/built-in.a
  CC      kernel/time/time.o
  CC      kernel/time/timer.o
  CC      kernel/time/hrtimer.o
  CC      kernel/time/timekeeping.o
  CC      kernel/time/ntp.o
  CC      kernel/time/clocksource.o
  CC      kernel/time/jiffies.o
  CC      kernel/time/timer_list.o
  CC      kernel/time/timeconv.o
  CC      kernel/time/timecounter.o
  CC      kernel/time/alarmtimer.o
  CC      kernel/time/posix-timers.o
  CC      kernel/time/posix-cpu-timers.o
  CC      kernel/time/posix-clock.o
  CC      kernel/time/itimer.o
  CC      kernel/time/clockevents.o
  CC      kernel/time/tick-common.o
  CC      kernel/time/tick-broadcast.o
  CC      kernel/time/tick-broadcast-hrtimer.o
  CC      kernel/time/tick-oneshot.o
  CC      kernel/time/tick-sched.o
  CC      kernel/time/vsyscall.o
  CC      kernel/time/timekeeping_debug.o
  CC      kernel/time/namespace.o
  AR      kernel/time/built-in.a
  CC      kernel/futex/core.o
  CC      kernel/futex/syscalls.o
  CC      kernel/futex/pi.o
  CC      kernel/futex/requeue.o
  CC      kernel/futex/waitwake.o
  AR      kernel/futex/built-in.a
  CC      kernel/cgroup/cgroup.o
  CC      kernel/cgroup/rstat.o
  CC      kernel/cgroup/namespace.o
  CC      kernel/cgroup/cgroup-v1.o
  CC      kernel/cgroup/freezer.o
  AR      kernel/cgroup/built-in.a
  CC      kernel/trace/trace_clock.o
  CC      kernel/trace/ring_buffer.o
  CC      kernel/trace/trace.o
  CC      kernel/trace/trace_output.o
  CC      kernel/trace/trace_seq.o
  CC      kernel/trace/trace_stat.o
  CC      kernel/trace/trace_printk.o
  CC      kernel/trace/pid_list.o
  CC      kernel/trace/trace_sched_switch.o
  CC      kernel/trace/trace_preemptirq.o
  CC      kernel/trace/trace_nop.o
  CC      kernel/trace/blktrace.o
  CC      kernel/trace/trace_events.o
  CC      kernel/trace/trace_export.o
  CC      kernel/trace/trace_event_perf.o
  CC      kernel/trace/trace_events_filter.o
  CC      kernel/trace/trace_events_trigger.o
  CC      kernel/trace/error_report-traces.o
  CC      kernel/trace/power-traces.o
  CC      kernel/trace/rpm-traces.o
  CC      kernel/trace/rethook.o
  AR      kernel/trace/built-in.a
  CC      kernel/bpf/core.o
  AR      kernel/bpf/built-in.a
  CC      kernel/events/core.o
  CC      kernel/events/ring_buffer.o
  CC      kernel/events/callchain.o
  CC      kernel/events/hw_breakpoint.o
  AR      kernel/events/built-in.a
  CC      kernel/fork.o
  CC      kernel/exec_domain.o
  CC      kernel/panic.o
  CC      kernel/cpu.o
  CC      kernel/exit.o
  CC      kernel/softirq.o
  CC      kernel/resource.o
  CC      kernel/sysctl.o
  CC      kernel/capability.o
  CC      kernel/ptrace.o
  CC      kernel/user.o
  CC      kernel/signal.o
  CC      kernel/sys.o
  CC      kernel/umh.o
  CC      kernel/workqueue.o
  CC      kernel/pid.o
  CC      kernel/task_work.o
  CC      kernel/extable.o
  CC      kernel/params.o
  CC      kernel/kthread.o
  CC      kernel/sys_ni.o
  CC      kernel/nsproxy.o
  CC      kernel/notifier.o
  CC      kernel/ksysfs.o
  CC      kernel/cred.o
  CC      kernel/reboot.o
  CC      kernel/async.o
  CC      kernel/range.o
  CC      kernel/smpboot.o
  CC      kernel/ucount.o
  CC      kernel/regset.o
  CC      kernel/groups.o
  CC      kernel/kcmp.o
  CC      kernel/freezer.o
  CC      kernel/stacktrace.o
  CC      kernel/dma.o
  CC      kernel/smp.o
  CC      kernel/kallsyms.o
  CC      kernel/acct.o
  CC      kernel/crash_core.o
  CC      kernel/utsname.o
  CC      kernel/user_namespace.o
  CC      kernel/pid_namespace.o
  CC      kernel/stop_machine.o
  CC      kernel/kprobes.o
  CC      kernel/hung_task.o
  CC      kernel/watchdog.o
  CC      kernel/watchdog_hld.o
  CC      kernel/seccomp.o
  CC      kernel/relay.o
  CC      kernel/utsname_sysctl.o
  CC      kernel/delayacct.o
  CC      kernel/taskstats.o
  CC      kernel/tsacct.o
  CC      kernel/tracepoint.o
  CC      kernel/latencytop.o
  CC      kernel/irq_work.o
  CC      kernel/static_call.o
  CC      kernel/static_call_inline.o
  CC      kernel/user-return-notifier.o
  CC      kernel/padata.o
  CC      kernel/jump_label.o
  CC      kernel/context_tracking.o
  CC      kernel/iomem.o
  CC      kernel/rseq.o
  AR      kernel/built-in.a
  AR      certs/built-in.a
  CC      mm/filemap.o
  CC      mm/mempool.o
  CC      mm/oom_kill.o
  CC      mm/fadvise.o
  CC      mm/maccess.o
  CC      mm/page-writeback.o
  CC      mm/folio-compat.o
  CC      mm/readahead.o
  CC      mm/swap.o
  CC      mm/truncate.o
  CC      mm/vmscan.o
  CC      mm/shmem.o
  CC      mm/util.o
  CC      mm/mmzone.o
  CC      mm/vmstat.o
  CC      mm/backing-dev.o
  CC      mm/mm_init.o
  CC      mm/percpu.o
  CC      mm/slab_common.o
  CC      mm/compaction.o
  CC      mm/interval_tree.o
  CC      mm/list_lru.o
  CC      mm/workingset.o
  CC      mm/debug.o
  CC      mm/gup.o
  CC      mm/mmap_lock.o
  CC      mm/highmem.o
  CC      mm/memory.o
  CC      mm/mincore.o
  CC      mm/mlock.o
  CC      mm/mmap.o
  CC      mm/mmu_gather.o
  CC      mm/mprotect.o
  CC      mm/mremap.o
  CC      mm/msync.o
  CC      mm/page_vma_mapped.o
  CC      mm/pagewalk.o
  CC      mm/pgtable-generic.o
  CC      mm/rmap.o
  CC      mm/vmalloc.o
  CC      mm/page_alloc.o
  CC      mm/init-mm.o
  CC      mm/memblock.o
  CC      mm/madvise.o
  CC      mm/page_io.o
  CC      mm/swap_state.o
  CC      mm/swapfile.o
  CC      mm/swap_slots.o
  CC      mm/dmapool.o
  CC      mm/hugetlb.o
  CC      mm/hugetlb_vmemmap.o
  CC      mm/sparse.o
  CC      mm/sparse-vmemmap.o
  CC      mm/mmu_notifier.o
  CC      mm/slub.o
  CC      mm/migrate.o
  CC      mm/huge_memory.o
  CC      mm/khugepaged.o
  CC      mm/page_counter.o
  CC      mm/hugetlb_cgroup.o
  CC      mm/debug_vm_pgtable.o
  CC      mm/early_ioremap.o
  CC      mm/secretmem.o
  CC      mm/userfaultfd.o
  CC      mm/hmm.o
  CC      mm/memfd.o
  AR      mm/built-in.a
  CC      fs/notify/dnotify/dnotify.o
  AR      fs/notify/dnotify/built-in.a
  CC      fs/notify/inotify/inotify_fsnotify.o
  CC      fs/notify/inotify/inotify_user.o
  AR      fs/notify/inotify/built-in.a
  CC      fs/notify/fanotify/fanotify.o
  CC      fs/notify/fanotify/fanotify_user.o
  AR      fs/notify/fanotify/built-in.a
  CC      fs/notify/fsnotify.o
  CC      fs/notify/notification.o
  CC      fs/notify/group.o
  CC      fs/notify/mark.o
  CC      fs/notify/fdinfo.o
  AR      fs/notify/built-in.a
  CC      fs/iomap/trace.o
  CC      fs/iomap/iter.o
  CC      fs/iomap/buffered-io.o
  CC      fs/iomap/direct-io.o
  CC      fs/iomap/fiemap.o
  CC      fs/iomap/seek.o
  CC      fs/iomap/swapfile.o
  AR      fs/iomap/built-in.a
  AR      fs/quota/built-in.a
  CC      fs/proc/task_mmu.o
  CC      fs/proc/inode.o
  CC      fs/proc/root.o
  CC      fs/proc/base.o
  CC      fs/proc/generic.o
  CC      fs/proc/array.o
  CC      fs/proc/fd.o
  CC      fs/proc/proc_tty.o
  CC      fs/proc/cmdline.o
  CC      fs/proc/consoles.o
  CC      fs/proc/cpuinfo.o
  CC      fs/proc/devices.o
  CC      fs/proc/interrupts.o
  CC      fs/proc/loadavg.o
  CC      fs/proc/meminfo.o
  CC      fs/proc/stat.o
  CC      fs/proc/uptime.o
  CC      fs/proc/util.o
  CC      fs/proc/version.o
  CC      fs/proc/softirqs.o
  CC      fs/proc/namespaces.o
  CC      fs/proc/self.o
  CC      fs/proc/thread_self.o
  CC      fs/proc/proc_sysctl.o
  CC      fs/proc/proc_net.o
  CC      fs/proc/kcore.o
  CC      fs/proc/kmsg.o
  CC      fs/proc/page.o
  AR      fs/proc/built-in.a
  CC      fs/kernfs/mount.o
  CC      fs/kernfs/inode.o
  CC      fs/kernfs/dir.o
  CC      fs/kernfs/file.o
  CC      fs/kernfs/symlink.o
  AR      fs/kernfs/built-in.a
  CC      fs/sysfs/file.o
  CC      fs/sysfs/dir.o
  CC      fs/sysfs/symlink.o
  CC      fs/sysfs/mount.o
  CC      fs/sysfs/group.o
  AR      fs/sysfs/built-in.a
  CC      fs/configfs/inode.o
  CC      fs/configfs/file.o
  CC      fs/configfs/dir.o
  CC      fs/configfs/symlink.o
  CC      fs/configfs/mount.o
  CC      fs/configfs/item.o
  AR      fs/configfs/built-in.a
  CC      fs/devpts/inode.o
  AR      fs/devpts/built-in.a
  CC      fs/ext4/balloc.o
  CC      fs/ext4/bitmap.o
  CC      fs/ext4/block_validity.o
  CC      fs/ext4/dir.o
  CC      fs/ext4/ext4_jbd2.o
  CC      fs/ext4/extents.o
  CC      fs/ext4/extents_status.o
  CC      fs/ext4/file.o
  CC      fs/ext4/fsmap.o
  CC      fs/ext4/fsync.o
  CC      fs/ext4/hash.o
  CC      fs/ext4/ialloc.o
  CC      fs/ext4/indirect.o
  CC      fs/ext4/inline.o
  CC      fs/ext4/inode.o
  CC      fs/ext4/ioctl.o
  CC      fs/ext4/mballoc.o
  CC      fs/ext4/migrate.o
  CC      fs/ext4/mmp.o
  CC      fs/ext4/move_extent.o
  CC      fs/ext4/namei.o
  CC      fs/ext4/page-io.o
  CC      fs/ext4/readpage.o
  CC      fs/ext4/resize.o
  CC      fs/ext4/super.o
  CC      fs/ext4/symlink.o
  CC      fs/ext4/sysfs.o
  CC      fs/ext4/xattr.o
  CC      fs/ext4/xattr_hurd.o
  CC      fs/ext4/xattr_trusted.o
  CC      fs/ext4/xattr_user.o
  CC      fs/ext4/fast_commit.o
  CC      fs/ext4/orphan.o
  AR      fs/ext4/built-in.a
  CC      fs/jbd2/transaction.o
  CC      fs/jbd2/commit.o
  CC      fs/jbd2/recovery.o
  CC      fs/jbd2/checkpoint.o
  CC      fs/jbd2/revoke.o
  CC      fs/jbd2/journal.o
  AR      fs/jbd2/built-in.a
  CC      fs/ramfs/inode.o
  CC      fs/ramfs/file-mmu.o
  AR      fs/ramfs/built-in.a
  CC      fs/hugetlbfs/inode.o
  AR      fs/hugetlbfs/built-in.a
  CC      fs/fat/cache.o
  CC      fs/fat/dir.o
  CC      fs/fat/fatent.o
  CC      fs/fat/file.o
  CC      fs/fat/inode.o
  CC      fs/fat/misc.o
  CC      fs/fat/nfs.o
  CC      fs/fat/namei_vfat.o
  CC      fs/fat/namei_msdos.o
  AR      fs/fat/built-in.a
  CC      fs/exportfs/expfs.o
  AR      fs/exportfs/built-in.a
  CC      fs/nls/nls_base.o
  CC      fs/nls/nls_cp437.o
  CC      fs/nls/nls_ascii.o
  CC      fs/nls/nls_iso8859-1.o
  CC      fs/nls/nls_utf8.o
  AR      fs/nls/built-in.a
  AR      fs/unicode/built-in.a
  CC      fs/ntfs/aops.o
  CC      fs/ntfs/attrib.o
  CC      fs/ntfs/collate.o
  CC      fs/ntfs/compress.o
  CC      fs/ntfs/debug.o
  CC      fs/ntfs/dir.o
  CC      fs/ntfs/file.o
  CC      fs/ntfs/index.o
  CC      fs/ntfs/inode.o
  CC      fs/ntfs/mft.o
  CC      fs/ntfs/mst.o
  CC      fs/ntfs/namei.o
  CC      fs/ntfs/runlist.o
  CC      fs/ntfs/super.o
  CC      fs/ntfs/sysctl.o
  CC      fs/ntfs/unistr.o
  CC      fs/ntfs/upcase.o
  AR      fs/ntfs/built-in.a
  CC      fs/autofs/init.o
  CC      fs/autofs/inode.o
  CC      fs/autofs/root.o
  CC      fs/autofs/symlink.o
  CC      fs/autofs/waitq.o
  CC      fs/autofs/expire.o
  CC      fs/autofs/dev-ioctl.o
  AR      fs/autofs/built-in.a
  AR      fs/hostfs/built-in.a
  CC      fs/debugfs/inode.o
  CC      fs/debugfs/file.o
  AR      fs/debugfs/built-in.a
  CC      fs/tracefs/inode.o
  AR      fs/tracefs/built-in.a
  CC      fs/btrfs/super.o
  CC      fs/btrfs/ctree.o
  CC      fs/btrfs/extent-tree.o
  CC      fs/btrfs/print-tree.o
  CC      fs/btrfs/root-tree.o
  CC      fs/btrfs/dir-item.o
  CC      fs/btrfs/file-item.o
  CC      fs/btrfs/inode-item.o
  CC      fs/btrfs/disk-io.o
  CC      fs/btrfs/transaction.o
  CC      fs/btrfs/inode.o
  CC      fs/btrfs/file.o
  CC      fs/btrfs/defrag.o
  CC      fs/btrfs/extent_map.o
  CC      fs/btrfs/sysfs.o
  CC      fs/btrfs/accessors.o
  CC      fs/btrfs/xattr.o
  CC      fs/btrfs/ordered-data.o
  CC      fs/btrfs/extent_io.o
  CC      fs/btrfs/volumes.o
  CC      fs/btrfs/async-thread.o
  CC      fs/btrfs/ioctl.o
  CC      fs/btrfs/locking.o
  CC      fs/btrfs/orphan.o
  CC      fs/btrfs/export.o
  CC      fs/btrfs/tree-log.o
  CC      fs/btrfs/free-space-cache.o
  CC      fs/btrfs/zlib.o
  CC      fs/btrfs/lzo.o
  CC      fs/btrfs/zstd.o
  CC      fs/btrfs/compression.o
  CC      fs/btrfs/delayed-ref.o
  CC      fs/btrfs/relocation.o
  CC      fs/btrfs/delayed-inode.o
  CC      fs/btrfs/scrub.o
  CC      fs/btrfs/backref.o
  CC      fs/btrfs/ulist.o
  CC      fs/btrfs/qgroup.o
  CC      fs/btrfs/send.o
  CC      fs/btrfs/dev-replace.o
  CC      fs/btrfs/raid56.o
  CC      fs/btrfs/uuid-tree.o
  CC      fs/btrfs/props.o
  CC      fs/btrfs/free-space-tree.o
  CC      fs/btrfs/tree-checker.o
  CC      fs/btrfs/space-info.o
  CC      fs/btrfs/block-rsv.o
  CC      fs/btrfs/delalloc-space.o
  CC      fs/btrfs/block-group.o
  CC      fs/btrfs/discard.o
  CC      fs/btrfs/reflink.o
  CC      fs/btrfs/subpage.o
  CC      fs/btrfs/tree-mod-log.o
  CC      fs/btrfs/extent-io-tree.o
  CC      fs/btrfs/fs.o
  CC      fs/btrfs/messages.o
  CC      fs/btrfs/bio.o
  CC      fs/btrfs/lru_cache.o
  AR      fs/btrfs/built-in.a
  CC      fs/pstore/inode.o
  CC      fs/pstore/platform.o
  CC      fs/pstore/pmsg.o
  AR      fs/pstore/built-in.a
  CC      fs/efivarfs/inode.o
  CC      fs/efivarfs/file.o
  CC      fs/efivarfs/super.o
  CC      fs/efivarfs/vars.o
  AR      fs/efivarfs/built-in.a
  CC      fs/open.o
  CC      fs/read_write.o
  CC      fs/file_table.o
  CC      fs/super.o
  CC      fs/char_dev.o
  CC      fs/stat.o
  CC      fs/exec.o
  CC      fs/pipe.o
  CC      fs/namei.o
  CC      fs/fcntl.o
  CC      fs/ioctl.o
  CC      fs/readdir.o
  CC      fs/select.o
  CC      fs/dcache.o
  CC      fs/inode.o
  CC      fs/attr.o
  CC      fs/bad_inode.o
  CC      fs/file.o
  CC      fs/filesystems.o
  CC      fs/namespace.o
  CC      fs/seq_file.o
  CC      fs/xattr.o
  CC      fs/libfs.o
  CC      fs/fs-writeback.o
  CC      fs/pnode.o
  CC      fs/splice.o
  CC      fs/sync.o
  CC      fs/utimes.o
  CC      fs/d_path.o
  CC      fs/stack.o
  CC      fs/fs_struct.o
  CC      fs/statfs.o
  CC      fs/fs_pin.o
  CC      fs/nsfs.o
  CC      fs/fs_types.o
  CC      fs/fs_context.o
  CC      fs/fs_parser.o
  CC      fs/fsopen.o
  CC      fs/init.o
  CC      fs/kernel_read_file.o
  CC      fs/mnt_idmapping.o
  CC      fs/remap_range.o
  CC      fs/buffer.o
  CC      fs/mpage.o
  CC      fs/proc_namespace.o
  CC      fs/direct-io.o
  CC      fs/eventpoll.o
  CC      fs/anon_inodes.o
  CC      fs/signalfd.o
  CC      fs/timerfd.o
  CC      fs/eventfd.o
  CC      fs/userfaultfd.o
  CC      fs/aio.o
  CC      fs/locks.o
  CC      fs/binfmt_script.o
  CC      fs/binfmt_elf.o
  CC      fs/mbcache.o
  CC      fs/posix_acl.o
  CC      fs/coredump.o
  CC      fs/drop_caches.o
  CC      fs/sysctls.o
  CC      fs/fhandle.o
  AR      fs/built-in.a
  CC      ipc/util.o
  CC      ipc/msgutil.o
  CC      ipc/msg.o
  CC      ipc/sem.o
  CC      ipc/shm.o
  CC      ipc/syscall.o
  CC      ipc/ipc_sysctl.o
  CC      ipc/mqueue.o
  CC      ipc/namespace.o
  CC      ipc/mq_sysctl.o
  AR      ipc/built-in.a
  CC      security/keys/gc.o
  CC      security/keys/key.o
  CC      security/keys/keyring.o
  CC      security/keys/keyctl.o
  CC      security/keys/permission.o
  CC      security/keys/process_keys.o
  CC      security/keys/request_key.o
  CC      security/keys/request_key_auth.o
  CC      security/keys/user_defined.o
  CC      security/keys/proc.o
  CC      security/keys/sysctl.o
  AR      security/keys/built-in.a
  CC      security/commoncap.o
  CC      security/min_addr.o
  CC      security/inode.o
  CC      security/device_cgroup.o
  AR      security/built-in.a
  CC      crypto/api.o
  CC      crypto/cipher.o
  CC      crypto/compress.o
  CC      crypto/algapi.o
  CC      crypto/scatterwalk.o
  CC      crypto/proc.o
  CC      crypto/aead.o
  CC      crypto/geniv.o
  CC      crypto/skcipher.o
  CC      crypto/seqiv.o
  CC      crypto/ahash.o
  CC      crypto/shash.o
  CC      crypto/akcipher.o
  CC      crypto/kpp.o
  CC      crypto/acompress.o
  CC      crypto/scompress.o
  CC      crypto/algboss.o
  CC      crypto/testmgr.o
  CC      crypto/cmac.o
  CC      crypto/hmac.o
  CC      crypto/vmac.o
  CC      crypto/xcbc.o
  CC      crypto/crypto_null.o
  CC      crypto/md5.o
  CC      crypto/sha1_generic.o
  CC      crypto/sha256_generic.o
  CC      crypto/sha512_generic.o
  CC      crypto/blake2b_generic.o
  CC      crypto/ecb.o
  CC      crypto/cbc.o
  CC      crypto/pcbc.o
  CC      crypto/cts.o
  CC      crypto/lrw.o
  CC      crypto/xts.o
  CC      crypto/ctr.o
  CC      crypto/pcrypt.o
  CC      crypto/cryptd.o
  CC      crypto/des_generic.o
  CC      crypto/aes_generic.o
  CC      crypto/deflate.o
  CC      crypto/crc32c_generic.o
  CC      crypto/crct10dif_common.o
  CC      crypto/crct10dif_generic.o
  CC      crypto/lzo.o
  CC      crypto/lzo-rle.o
  CC      crypto/lz4.o
  CC      crypto/lz4hc.o
  CC      crypto/xxhash_generic.o
  CC      crypto/rng.o
  CC      crypto/drbg.o
  CC      crypto/jitterentropy.o
  CC      crypto/jitterentropy-kcapi.o
  CC      crypto/af_alg.o
  CC      crypto/algif_hash.o
  CC      crypto/algif_skcipher.o
  CC      crypto/xor.o
  CC      crypto/hash_info.o
  CC      crypto/simd.o
  AR      crypto/built-in.a
  CC      block/partitions/core.o
  CC      block/partitions/ldm.o
  CC      block/partitions/msdos.o
  CC      block/partitions/efi.o
  AR      block/partitions/built-in.a
  CC      block/bdev.o
  CC      block/fops.o
  CC      block/bio.o
  CC      block/elevator.o
  CC      block/blk-core.o
  CC      block/blk-sysfs.o
  CC      block/blk-flush.o
  CC      block/blk-settings.o
  CC      block/blk-ioc.o
  CC      block/blk-map.o
  CC      block/blk-merge.o
  CC      block/blk-timeout.o
  CC      block/blk-lib.o
  CC      block/blk-mq.o
  CC      block/blk-mq-tag.o
  CC      block/blk-stat.o
  CC      block/blk-mq-sysfs.o
  CC      block/blk-mq-cpumap.o
  CC      block/blk-mq-sched.o
  CC      block/ioctl.o
  CC      block/genhd.o
  CC      block/ioprio.o
  CC      block/badblocks.o
  CC      block/blk-rq-qos.o
  CC      block/disk-events.o
  CC      block/blk-ia-ranges.o
  CC      block/bsg.o
  CC      block/bsg-lib.o
  CC      block/blk-cgroup.o
  CC      block/mq-deadline.o
  CC      block/kyber-iosched.o
  CC      block/blk-mq-pci.o
  CC      block/blk-mq-debugfs.o
  CC      block/blk-pm.o
  CC      block/holder.o
  AR      block/built-in.a
  CC      io_uring/io_uring.o
  CC      io_uring/xattr.o
  CC      io_uring/nop.o
  CC      io_uring/fs.o
  CC      io_uring/splice.o
  CC      io_uring/sync.o
  CC      io_uring/advise.o
  CC      io_uring/filetable.o
  CC      io_uring/openclose.o
  CC      io_uring/uring_cmd.o
  CC      io_uring/epoll.o
  CC      io_uring/statx.o
  CC      io_uring/net.o
  CC      io_uring/msg_ring.o
  CC      io_uring/timeout.o
  CC      io_uring/sqpoll.o
  CC      io_uring/fdinfo.o
  CC      io_uring/tctx.o
  CC      io_uring/poll.o
  CC      io_uring/cancel.o
  CC      io_uring/kbuf.o
  CC      io_uring/rsrc.o
  CC      io_uring/rw.o
  CC      io_uring/opdef.o
  CC      io_uring/notif.o
  CC      io_uring/io-wq.o
  AR      io_uring/built-in.a
  CC      lib/math/div64.o
  CC      lib/math/gcd.o
  CC      lib/math/lcm.o
  CC      lib/math/int_pow.o
  CC      lib/math/int_sqrt.o
  CC      lib/math/reciprocal_div.o
  CC      lib/math/rational.o
  AR      lib/math/built-in.a
  CC      lib/crypto/memneq.o
  CC      lib/crypto/utils.o
  CC      lib/crypto/chacha.o
  CC      lib/crypto/aes.o
  CC      lib/crypto/gf128mul.o
  CC      lib/crypto/blake2s.o
  CC      lib/crypto/blake2s-generic.o
  CC      lib/crypto/des.o
  CC      lib/crypto/sha1.o
  CC      lib/crypto/sha256.o
  AR      lib/crypto/built-in.a
  CC      lib/zlib_inflate/inffast.o
  CC      lib/zlib_inflate/inflate.o
  CC      lib/zlib_inflate/infutil.o
  CC      lib/zlib_inflate/inftrees.o
  CC      lib/zlib_inflate/inflate_syms.o
  AR      lib/zlib_inflate/built-in.a
  CC      lib/zlib_deflate/deflate.o
  CC      lib/zlib_deflate/deftree.o
  CC      lib/zlib_deflate/deflate_syms.o
  AR      lib/zlib_deflate/built-in.a
  CC      lib/lzo/lzo1x_compress.o
  CC      lib/lzo/lzo1x_decompress_safe.o
  AR      lib/lzo/built-in.a
  CC      lib/lz4/lz4_compress.o
  CC      lib/lz4/lz4hc_compress.o
  CC      lib/lz4/lz4_decompress.o
  AR      lib/lz4/built-in.a
  CC      lib/zstd/zstd_compress_module.o
  CC      lib/zstd/compress/fse_compress.o
  CC      lib/zstd/compress/hist.o
  CC      lib/zstd/compress/huf_compress.o
  CC      lib/zstd/compress/zstd_compress.o
  CC      lib/zstd/compress/zstd_compress_literals.o
  CC      lib/zstd/compress/zstd_compress_sequences.o
  CC      lib/zstd/compress/zstd_compress_superblock.o
  CC      lib/zstd/compress/zstd_double_fast.o
  CC      lib/zstd/compress/zstd_fast.o
  CC      lib/zstd/compress/zstd_lazy.o
  CC      lib/zstd/compress/zstd_ldm.o
  CC      lib/zstd/compress/zstd_opt.o
  CC      lib/zstd/zstd_decompress_module.o
  CC      lib/zstd/decompress/huf_decompress.o
  CC      lib/zstd/decompress/zstd_ddict.o
  CC      lib/zstd/decompress/zstd_decompress.o
  CC      lib/zstd/decompress/zstd_decompress_block.o
  CC      lib/zstd/zstd_common_module.o
  CC      lib/zstd/common/debug.o
  CC      lib/zstd/common/entropy_common.o
  CC      lib/zstd/common/error_private.o
  CC      lib/zstd/common/fse_decompress.o
  CC      lib/zstd/common/zstd_common.o
  AR      lib/zstd/built-in.a
  CC      lib/xz/xz_dec_syms.o
  CC      lib/xz/xz_dec_stream.o
  CC      lib/xz/xz_dec_lzma2.o
  CC      lib/xz/xz_dec_bcj.o
  AR      lib/xz/built-in.a
  CC      lib/raid6/algos.o
  CC      lib/raid6/recov.o
  HOSTCC  lib/raid6/mktables
  TABLE   lib/raid6/tables.c
  CC      lib/raid6/tables.o
  UNROLL  lib/raid6/int1.c
  CC      lib/raid6/int1.o
  UNROLL  lib/raid6/int2.c
  CC      lib/raid6/int2.o
  UNROLL  lib/raid6/int4.c
  CC      lib/raid6/int4.o
  UNROLL  lib/raid6/int8.c
  CC      lib/raid6/int8.o
  UNROLL  lib/raid6/int16.c
  CC      lib/raid6/int16.o
  UNROLL  lib/raid6/int32.c
  CC      lib/raid6/int32.o
  CC      lib/raid6/recov_ssse3.o
  CC      lib/raid6/recov_avx2.o
  CC      lib/raid6/mmx.o
  CC      lib/raid6/sse1.o
  CC      lib/raid6/sse2.o
  CC      lib/raid6/avx2.o
  CC      lib/raid6/avx512.o
  CC      lib/raid6/recov_avx512.o
  AR      lib/raid6/built-in.a
  CC      lib/fonts/fonts.o
  CC      lib/fonts/font_8x8.o
  CC      lib/fonts/font_8x16.o
  AR      lib/fonts/built-in.a
  CC      lib/argv_split.o
  CC      lib/bug.o
  CC      lib/buildid.o
  CC      lib/cmdline.o
  CC      lib/cpumask.o
  CC      lib/ctype.o
  CC      lib/dec_and_lock.o
  CC      lib/decompress.o
  CC      lib/decompress_bunzip2.o
  CC      lib/decompress_inflate.o
  CC      lib/decompress_unlz4.o
  CC      lib/decompress_unlzma.o
  CC      lib/decompress_unlzo.o
  CC      lib/decompress_unxz.o
  CC      lib/decompress_unzstd.o
  CC      lib/dump_stack.o
  CC      lib/earlycpio.o
  CC      lib/extable.o
  CC      lib/flex_proportions.o
  CC      lib/idr.o
  CC      lib/irq_regs.o
  CC      lib/is_single_threaded.o
  CC      lib/klist.o
  CC      lib/kobject.o
  CC      lib/kobject_uevent.o
  CC      lib/logic_pio.o
  CC      lib/maple_tree.o
  CC      lib/memcat_p.o
  CC      lib/nmi_backtrace.o
  CC      lib/plist.o
  CC      lib/radix-tree.o
  CC      lib/ratelimit.o
  CC      lib/rbtree.o
  CC      lib/seq_buf.o
  CC      lib/show_mem.o
  CC      lib/siphash.o
  CC      lib/string.o
  CC      lib/timerqueue.o
  CC      lib/vsprintf.o
  CC      lib/win_minmax.o
  CC      lib/xarray.o
  AR      lib/lib.a
  CC      lib/lockref.o
  CC      lib/bcd.o
  CC      lib/sort.o
  CC      lib/parser.o
  CC      lib/debug_locks.o
  CC      lib/random32.o
  CC      lib/bust_spinlocks.o
  CC      lib/kasprintf.o
  CC      lib/bitmap.o
  CC      lib/scatterlist.o
  CC      lib/list_sort.o
  CC      lib/uuid.o
  CC      lib/iov_iter.o
  CC      lib/clz_ctz.o
  CC      lib/bsearch.o
  CC      lib/find_bit.o
  CC      lib/llist.o
  CC      lib/memweight.o
  CC      lib/kfifo.o
  CC      lib/percpu-refcount.o
  CC      lib/rhashtable.o
  CC      lib/base64.o
  CC      lib/once.o
  CC      lib/refcount.o
  CC      lib/rcuref.o
  CC      lib/usercopy.o
  CC      lib/errseq.o
  CC      lib/bucket_locks.o
  CC      lib/generic-radix-tree.o
  CC      lib/string_helpers.o
  CC      lib/hexdump.o
  CC      lib/kstrtox.o
  CC      lib/iomap.o
  CC      lib/pci_iomap.o
  CC      lib/iomap_copy.o
  CC      lib/devres.o
  CC      lib/check_signature.o
  CC      lib/interval_tree.o
  CC      lib/assoc_array.o
  CC      lib/smp_processor_id.o
  CC      lib/list_debug.o
  CC      lib/debugobjects.o
  CC      lib/bitrev.o
  CC      lib/crc16.o
  CC      lib/crc-t10dif.o
  HOSTCC  lib/gen_crc32table
  GEN     lib/crc32table.h
  CC      lib/crc32.o
  CC      lib/libcrc32c.o
  CC      lib/xxhash.o
  CC      lib/genalloc.o
  CC      lib/percpu_counter.o
  CC      lib/fault-inject.o
  CC      lib/error-inject.o
  CC      lib/syscall.o
  CC      lib/dynamic_debug.o
  CC      lib/errname.o
  CC      lib/nlattr.o
  CC      lib/cpu_rmap.o
  CC      lib/dynamic_queue_limits.o
  CC      lib/glob.o
  CC      lib/strncpy_from_user.o
  CC      lib/strnlen_user.o
  CC      lib/net_utils.o
  CC      lib/sg_pool.o
  CC      lib/stackdepot.o
  CC      lib/ucs2_string.o
  CC      lib/sbitmap.o
  CC      lib/group_cpus.o
  AR      lib/built-in.a
  AS      arch/x86/lib/clear_page_64.o
  CC      arch/x86/lib/cmdline.o
  AS      arch/x86/lib/cmpxchg16b_emu.o
  CC      arch/x86/lib/copy_mc.o
  AS      arch/x86/lib/copy_mc_64.o
  AS      arch/x86/lib/copy_page_64.o
  AS      arch/x86/lib/copy_user_64.o
  AS      arch/x86/lib/copy_user_uncached_64.o
  CC      arch/x86/lib/cpu.o
  AS      arch/x86/lib/csum-copy_64.o
  CC      arch/x86/lib/csum-partial_64.o
  CC      arch/x86/lib/csum-wrappers_64.o
  CC      arch/x86/lib/delay.o
  CC      arch/x86/lib/error-inject.o
  AS      arch/x86/lib/getuser.o
  GEN     arch/x86/lib/inat-tables.c
  CC      arch/x86/lib/inat.o
  CC      arch/x86/lib/insn-eval.o
  CC      arch/x86/lib/insn.o
  AS      arch/x86/lib/memcpy_64.o
  AS      arch/x86/lib/memmove_64.o
  AS      arch/x86/lib/memset_64.o
  CC      arch/x86/lib/misc.o
  CC      arch/x86/lib/pc-conf-reg.o
  AS      arch/x86/lib/putuser.o
  AS      arch/x86/lib/retpoline.o
  CC      arch/x86/lib/usercopy.o
  CC      arch/x86/lib/usercopy_64.o
  AR      arch/x86/lib/lib.a
  CC      arch/x86/lib/msr-smp.o
  CC      arch/x86/lib/cache-smp.o
  CC      arch/x86/lib/msr.o
  AS      arch/x86/lib/msr-reg.o
  CC      arch/x86/lib/msr-reg-export.o
  AS      arch/x86/lib/hweight.o
  CC      arch/x86/lib/iomem.o
  AS      arch/x86/lib/iomap_copy_64.o
  AR      arch/x86/lib/built-in.a
  AR      drivers/irqchip/built-in.a
  AR      drivers/bus/mhi/built-in.a
  AR      drivers/bus/built-in.a
  AR      drivers/phy/allwinner/built-in.a
  AR      drivers/phy/amlogic/built-in.a
  AR      drivers/phy/broadcom/built-in.a
  AR      drivers/phy/cadence/built-in.a
  AR      drivers/phy/freescale/built-in.a
  AR      drivers/phy/hisilicon/built-in.a
  AR      drivers/phy/ingenic/built-in.a
  AR      drivers/phy/intel/built-in.a
  AR      drivers/phy/lantiq/built-in.a
  AR      drivers/phy/marvell/built-in.a
  AR      drivers/phy/mediatek/built-in.a
  AR      drivers/phy/microchip/built-in.a
  AR      drivers/phy/motorola/built-in.a
  AR      drivers/phy/mscc/built-in.a
  AR      drivers/phy/qualcomm/built-in.a
  AR      drivers/phy/ralink/built-in.a
  AR      drivers/phy/renesas/built-in.a
  AR      drivers/phy/rockchip/built-in.a
  AR      drivers/phy/samsung/built-in.a
  AR      drivers/phy/socionext/built-in.a
  AR      drivers/phy/st/built-in.a
  AR      drivers/phy/sunplus/built-in.a
  AR      drivers/phy/tegra/built-in.a
  AR      drivers/phy/ti/built-in.a
  AR      drivers/phy/xilinx/built-in.a
  CC      drivers/phy/phy-core.o
  AR      drivers/phy/built-in.a
  AR      drivers/pinctrl/actions/built-in.a
  AR      drivers/pinctrl/bcm/built-in.a
  AR      drivers/pinctrl/cirrus/built-in.a
  AR      drivers/pinctrl/freescale/built-in.a
  CC      drivers/pinctrl/intel/pinctrl-baytrail.o
  CC      drivers/pinctrl/intel/pinctrl-intel.o
  AR      drivers/pinctrl/intel/built-in.a
  AR      drivers/pinctrl/mediatek/built-in.a
  AR      drivers/pinctrl/mvebu/built-in.a
  AR      drivers/pinctrl/nomadik/built-in.a
  AR      drivers/pinctrl/nuvoton/built-in.a
  AR      drivers/pinctrl/nxp/built-in.a
  AR      drivers/pinctrl/sprd/built-in.a
  AR      drivers/pinctrl/sunplus/built-in.a
  AR      drivers/pinctrl/ti/built-in.a
  CC      drivers/pinctrl/core.o
  CC      drivers/pinctrl/pinctrl-utils.o
  CC      drivers/pinctrl/pinmux.o
  CC      drivers/pinctrl/pinconf.o
  CC      drivers/pinctrl/pinconf-generic.o
  AR      drivers/pinctrl/built-in.a
  CC      drivers/gpio/gpiolib.o
  CC      drivers/gpio/gpiolib-devres.o
  CC      drivers/gpio/gpiolib-legacy.o
  CC      drivers/gpio/gpiolib-cdev.o
  CC      drivers/gpio/gpiolib-sysfs.o
  CC      drivers/gpio/gpiolib-acpi.o
  CC      drivers/gpio/gpiolib-swnode.o
  AR      drivers/gpio/built-in.a
  AR      drivers/pwm/built-in.a
  CC      drivers/pci/msi/pcidev_msi.o
  CC      drivers/pci/msi/api.o
  CC      drivers/pci/msi/msi.o
  CC      drivers/pci/msi/irqdomain.o
  AR      drivers/pci/msi/built-in.a
  CC      drivers/pci/pcie/portdrv.o
  CC      drivers/pci/pcie/rcec.o
  CC      drivers/pci/pcie/aspm.o
  CC      drivers/pci/pcie/aer.o
  CC      drivers/pci/pcie/err.o
  CC      drivers/pci/pcie/pme.o
  AR      drivers/pci/pcie/built-in.a
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      drivers/pci/hotplug/pciehp_core.o
  CC      drivers/pci/hotplug/pciehp_ctrl.o
  CC      drivers/pci/hotplug/pciehp_pci.o
  CC      drivers/pci/hotplug/pciehp_hpc.o
  CC      drivers/pci/hotplug/acpiphp_core.o
  CC      drivers/pci/hotplug/acpiphp_glue.o
  AR      drivers/pci/hotplug/built-in.a
  AR      drivers/pci/controller/dwc/built-in.a
  AR      drivers/pci/controller/mobiveil/built-in.a
  AR      drivers/pci/controller/built-in.a
  AR      drivers/pci/switch/built-in.a
  CC      drivers/pci/access.o
  CC      drivers/pci/bus.o
  CC      drivers/pci/probe.o
  CC      drivers/pci/host-bridge.o
  CC      drivers/pci/remove.o
  CC      drivers/pci/pci.o
  CC      drivers/pci/pci-driver.o
  CC      drivers/pci/search.o
  CC      drivers/pci/pci-sysfs.o
  CC      drivers/pci/rom.o
  CC      drivers/pci/setup-res.o
  CC      drivers/pci/irq.o
  CC      drivers/pci/vpd.o
  CC      drivers/pci/setup-bus.o
  CC      drivers/pci/vc.o
  CC      drivers/pci/mmap.o
  CC      drivers/pci/setup-irq.o
  CC      drivers/pci/proc.o
  CC      drivers/pci/slot.o
  CC      drivers/pci/pci-acpi.o
  CC      drivers/pci/quirks.o
  CC      drivers/pci/ats.o
  CC      drivers/pci/pci-label.o
  CC      drivers/pci/vgaarb.o
  AR      drivers/pci/built-in.a
  CC      drivers/video/console/dummycon.o
  CC      drivers/video/console/vgacon.o
  AR      drivers/video/console/built-in.a
  CC      drivers/video/logo/logo.o
  HOSTCC  drivers/video/logo/pnmtologo
  LOGO    drivers/video/logo/logo_linux_clut224.c
  CC      drivers/video/logo/logo_linux_clut224.o
  AR      drivers/video/logo/built-in.a
  CC      drivers/video/backlight/backlight.o
  AR      drivers/video/backlight/built-in.a
  CC      drivers/video/fbdev/core/fb_notify.o
  CC      drivers/video/fbdev/core/fbmem.o
  CC      drivers/video/fbdev/core/fbmon.o
  CC      drivers/video/fbdev/core/fbcmap.o
  CC      drivers/video/fbdev/core/fbsysfs.o
  CC      drivers/video/fbdev/core/modedb.o
  CC      drivers/video/fbdev/core/fbcvt.o
  CC      drivers/video/fbdev/core/fb_cmdline.o
  CC      drivers/video/fbdev/core/fb_io_fops.o
  CC      drivers/video/fbdev/core/fb_defio.o
  CC      drivers/video/fbdev/core/fbcon.o
  CC      drivers/video/fbdev/core/bitblit.o
  CC      drivers/video/fbdev/core/softcursor.o
  CC      drivers/video/fbdev/core/tileblit.o
  CC      drivers/video/fbdev/core/cfbfillrect.o
  CC      drivers/video/fbdev/core/cfbcopyarea.o
  CC      drivers/video/fbdev/core/cfbimgblt.o
  AR      drivers/video/fbdev/core/built-in.a
  AR      drivers/video/fbdev/omap/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/dss/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/displays/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/built-in.a
  AR      drivers/video/fbdev/omap2/built-in.a
  CC      drivers/video/fbdev/vesafb.o
  CC      drivers/video/fbdev/efifb.o
  AR      drivers/video/fbdev/built-in.a
  CC      drivers/video/aperture.o
  CC      drivers/video/cmdline.o
  CC      drivers/video/nomodeset.o
  CC      drivers/video/hdmi.o
  AR      drivers/video/built-in.a
  CC      drivers/idle/intel_idle.o
  AR      drivers/idle/built-in.a
  AR      drivers/char/ipmi/built-in.a
  CC      drivers/acpi/acpica/dsargs.o
  CC      drivers/acpi/acpica/dscontrol.o
  CC      drivers/acpi/acpica/dsdebug.o
  CC      drivers/acpi/acpica/dsfield.o
  CC      drivers/acpi/acpica/dsinit.o
  CC      drivers/acpi/acpica/dsmethod.o
  CC      drivers/acpi/acpica/dsmthdat.o
  CC      drivers/acpi/acpica/dsobject.o
  CC      drivers/acpi/acpica/dsopcode.o
  CC      drivers/acpi/acpica/dspkginit.o
  CC      drivers/acpi/acpica/dsutils.o
  CC      drivers/acpi/acpica/dswexec.o
  CC      drivers/acpi/acpica/dswload.o
  CC      drivers/acpi/acpica/dswload2.o
  CC      drivers/acpi/acpica/dswscope.o
  CC      drivers/acpi/acpica/dswstate.o
  CC      drivers/acpi/acpica/evevent.o
  CC      drivers/acpi/acpica/evgpe.o
  CC      drivers/acpi/acpica/evgpeblk.o
  CC      drivers/acpi/acpica/evgpeinit.o
  CC      drivers/acpi/acpica/evgpeutil.o
  CC      drivers/acpi/acpica/evglock.o
  CC      drivers/acpi/acpica/evhandler.o
  CC      drivers/acpi/acpica/evmisc.o
  CC      drivers/acpi/acpica/evregion.o
  CC      drivers/acpi/acpica/evrgnini.o
  CC      drivers/acpi/acpica/evsci.o
  CC      drivers/acpi/acpica/evxface.o
  CC      drivers/acpi/acpica/evxfevnt.o
  CC      drivers/acpi/acpica/evxfgpe.o
  CC      drivers/acpi/acpica/evxfregn.o
  CC      drivers/acpi/acpica/exconcat.o
  CC      drivers/acpi/acpica/exconfig.o
  CC      drivers/acpi/acpica/exconvrt.o
  CC      drivers/acpi/acpica/excreate.o
  CC      drivers/acpi/acpica/exdebug.o
  CC      drivers/acpi/acpica/exdump.o
  CC      drivers/acpi/acpica/exfield.o
  CC      drivers/acpi/acpica/exfldio.o
  CC      drivers/acpi/acpica/exmisc.o
  CC      drivers/acpi/acpica/exmutex.o
  CC      drivers/acpi/acpica/exnames.o
  CC      drivers/acpi/acpica/exoparg1.o
  CC      drivers/acpi/acpica/exoparg2.o
  CC      drivers/acpi/acpica/exoparg3.o
  CC      drivers/acpi/acpica/exoparg6.o
  CC      drivers/acpi/acpica/exprep.o
  CC      drivers/acpi/acpica/exregion.o
  CC      drivers/acpi/acpica/exresnte.o
  CC      drivers/acpi/acpica/exresolv.o
  CC      drivers/acpi/acpica/exresop.o
  CC      drivers/acpi/acpica/exserial.o
  CC      drivers/acpi/acpica/exstore.o
  CC      drivers/acpi/acpica/exstoren.o
  CC      drivers/acpi/acpica/exstorob.o
  CC      drivers/acpi/acpica/exsystem.o
  CC      drivers/acpi/acpica/extrace.o
  CC      drivers/acpi/acpica/exutils.o
  CC      drivers/acpi/acpica/hwacpi.o
  CC      drivers/acpi/acpica/hwesleep.o
  CC      drivers/acpi/acpica/hwgpe.o
  CC      drivers/acpi/acpica/hwregs.o
  CC      drivers/acpi/acpica/hwsleep.o
  CC      drivers/acpi/acpica/hwvalid.o
  CC      drivers/acpi/acpica/hwxface.o
  CC      drivers/acpi/acpica/hwxfsleep.o
  CC      drivers/acpi/acpica/hwpci.o
  CC      drivers/acpi/acpica/nsaccess.o
  CC      drivers/acpi/acpica/nsalloc.o
  CC      drivers/acpi/acpica/nsarguments.o
  CC      drivers/acpi/acpica/nsconvert.o
  CC      drivers/acpi/acpica/nsdump.o
  CC      drivers/acpi/acpica/nseval.o
  CC      drivers/acpi/acpica/nsinit.o
  CC      drivers/acpi/acpica/nsload.o
  CC      drivers/acpi/acpica/nsnames.o
  CC      drivers/acpi/acpica/nsobject.o
  CC      drivers/acpi/acpica/nsparse.o
  CC      drivers/acpi/acpica/nspredef.o
  CC      drivers/acpi/acpica/nsprepkg.o
  CC      drivers/acpi/acpica/nsrepair.o
  CC      drivers/acpi/acpica/nsrepair2.o
  CC      drivers/acpi/acpica/nssearch.o
  CC      drivers/acpi/acpica/nsutils.o
  CC      drivers/acpi/acpica/nswalk.o
  CC      drivers/acpi/acpica/nsxfeval.o
  CC      drivers/acpi/acpica/nsxfname.o
  CC      drivers/acpi/acpica/nsxfobj.o
  CC      drivers/acpi/acpica/psargs.o
  CC      drivers/acpi/acpica/psloop.o
  CC      drivers/acpi/acpica/psobject.o
  CC      drivers/acpi/acpica/psopcode.o
  CC      drivers/acpi/acpica/psopinfo.o
  CC      drivers/acpi/acpica/psparse.o
  CC      drivers/acpi/acpica/psscope.o
  CC      drivers/acpi/acpica/pstree.o
  CC      drivers/acpi/acpica/psutils.o
  CC      drivers/acpi/acpica/pswalk.o
  CC      drivers/acpi/acpica/psxface.o
  CC      drivers/acpi/acpica/rsaddr.o
  CC      drivers/acpi/acpica/rscalc.o
  CC      drivers/acpi/acpica/rscreate.o
  CC      drivers/acpi/acpica/rsdumpinfo.o
  CC      drivers/acpi/acpica/rsinfo.o
  CC      drivers/acpi/acpica/rsio.o
  CC      drivers/acpi/acpica/rsirq.o
  CC      drivers/acpi/acpica/rslist.o
  CC      drivers/acpi/acpica/rsmemory.o
  CC      drivers/acpi/acpica/rsmisc.o
  CC      drivers/acpi/acpica/rsserial.o
  CC      drivers/acpi/acpica/rsutils.o
  CC      drivers/acpi/acpica/rsxface.o
  CC      drivers/acpi/acpica/tbdata.o
  CC      drivers/acpi/acpica/tbfadt.o
  CC      drivers/acpi/acpica/tbfind.o
  CC      drivers/acpi/acpica/tbinstal.o
  CC      drivers/acpi/acpica/tbprint.o
  CC      drivers/acpi/acpica/tbutils.o
  CC      drivers/acpi/acpica/tbxface.o
  CC      drivers/acpi/acpica/tbxfload.o
  CC      drivers/acpi/acpica/tbxfroot.o
  CC      drivers/acpi/acpica/utaddress.o
  CC      drivers/acpi/acpica/utalloc.o
  CC      drivers/acpi/acpica/utascii.o
  CC      drivers/acpi/acpica/utbuffer.o
  CC      drivers/acpi/acpica/utcksum.o
  CC      drivers/acpi/acpica/utcopy.o
  CC      drivers/acpi/acpica/utexcep.o
  CC      drivers/acpi/acpica/utdebug.o
  CC      drivers/acpi/acpica/utdecode.o
  CC      drivers/acpi/acpica/utdelete.o
  CC      drivers/acpi/acpica/uterror.o
  CC      drivers/acpi/acpica/uteval.o
  CC      drivers/acpi/acpica/utglobal.o
  CC      drivers/acpi/acpica/uthex.o
  CC      drivers/acpi/acpica/utids.o
  CC      drivers/acpi/acpica/utinit.o
  CC      drivers/acpi/acpica/utlock.o
  CC      drivers/acpi/acpica/utmath.o
  CC      drivers/acpi/acpica/utmisc.o
  CC      drivers/acpi/acpica/utmutex.o
  CC      drivers/acpi/acpica/utnonansi.o
  CC      drivers/acpi/acpica/utobject.o
  CC      drivers/acpi/acpica/utosi.o
  CC      drivers/acpi/acpica/utownerid.o
  CC      drivers/acpi/acpica/utpredef.o
  CC      drivers/acpi/acpica/utresdecode.o
  CC      drivers/acpi/acpica/utresrc.o
  CC      drivers/acpi/acpica/utstate.o
  CC      drivers/acpi/acpica/utstring.o
  CC      drivers/acpi/acpica/utstrsuppt.o
  CC      drivers/acpi/acpica/utstrtoul64.o
  CC      drivers/acpi/acpica/utxface.o
  CC      drivers/acpi/acpica/utxfinit.o
  CC      drivers/acpi/acpica/utxferror.o
  CC      drivers/acpi/acpica/utxfmutex.o
  AR      drivers/acpi/acpica/built-in.a
  CC      drivers/acpi/apei/apei-base.o
  CC      drivers/acpi/apei/hest.o
  CC      drivers/acpi/apei/erst.o
  CC      drivers/acpi/apei/bert.o
  CC      drivers/acpi/apei/ghes.o
  AR      drivers/acpi/apei/built-in.a
  AR      drivers/acpi/pmic/built-in.a
  CC      drivers/acpi/dptf/int340x_thermal.o
  AR      drivers/acpi/dptf/built-in.a
  CC      drivers/acpi/tables.o
  CC      drivers/acpi/blacklist.o
  CC      drivers/acpi/osi.o
  CC      drivers/acpi/osl.o
  CC      drivers/acpi/utils.o
  CC      drivers/acpi/reboot.o
  CC      drivers/acpi/nvs.o
  CC      drivers/acpi/wakeup.o
  CC      drivers/acpi/sleep.o
  CC      drivers/acpi/device_sysfs.o
  CC      drivers/acpi/device_pm.o
  CC      drivers/acpi/proc.o
  CC      drivers/acpi/bus.o
  CC      drivers/acpi/glue.o
  CC      drivers/acpi/scan.o
  CC      drivers/acpi/resource.o
  CC      drivers/acpi/acpi_processor.o
  CC      drivers/acpi/processor_core.o
  CC      drivers/acpi/processor_pdc.o
  CC      drivers/acpi/ec.o
  CC      drivers/acpi/dock.o
  CC      drivers/acpi/pci_root.o
  CC      drivers/acpi/pci_link.o
  CC      drivers/acpi/pci_irq.o
  CC      drivers/acpi/acpi_lpss.o
  CC      drivers/acpi/acpi_apd.o
  CC      drivers/acpi/acpi_platform.o
  CC      drivers/acpi/acpi_pnp.o
  CC      drivers/acpi/power.o
  CC      drivers/acpi/event.o
  CC      drivers/acpi/evged.o
  CC      drivers/acpi/sysfs.o
  CC      drivers/acpi/property.o
  CC      drivers/acpi/acpi_cmos_rtc.o
  CC      drivers/acpi/x86/apple.o
  CC      drivers/acpi/x86/utils.o
  CC      drivers/acpi/x86/s2idle.o
  CC      drivers/acpi/debugfs.o
  CC      drivers/acpi/acpi_lpat.o
  CC      drivers/acpi/acpi_lpit.o
  CC      drivers/acpi/prmt.o
  CC      drivers/acpi/acpi_pcc.o
  CC      drivers/acpi/ac.o
  CC      drivers/acpi/button.o
  CC      drivers/acpi/fan_core.o
  CC      drivers/acpi/fan_attr.o
  CC      drivers/acpi/processor_driver.o
  CC      drivers/acpi/processor_thermal.o
  CC      drivers/acpi/processor_idle.o
  CC      drivers/acpi/processor_throttling.o
  CC      drivers/acpi/processor_perflib.o
  CC      drivers/acpi/container.o
  CC      drivers/acpi/thermal.o
  CC      drivers/acpi/acpi_memhotplug.o
  CC      drivers/acpi/ioapic.o
  CC      drivers/acpi/battery.o
  CC      drivers/acpi/hed.o
  CC      drivers/acpi/bgrt.o
  CC      drivers/acpi/cppc_acpi.o
  CC      drivers/acpi/spcr.o
  CC      drivers/acpi/acpi_pad.o
  AR      drivers/acpi/built-in.a
  CC      drivers/pnp/pnpacpi/core.o
  CC      drivers/pnp/pnpacpi/rsparser.o
  AR      drivers/pnp/pnpacpi/built-in.a
  CC      drivers/pnp/core.o
  CC      drivers/pnp/card.o
  CC      drivers/pnp/driver.o
  CC      drivers/pnp/resource.o
  CC      drivers/pnp/manager.o
  CC      drivers/pnp/support.o
  CC      drivers/pnp/interface.o
  CC      drivers/pnp/quirks.o
  CC      drivers/pnp/system.o
  AR      drivers/pnp/built-in.a
  AR      drivers/amba/built-in.a
  AR      drivers/clk/actions/built-in.a
  AR      drivers/clk/analogbits/built-in.a
  AR      drivers/clk/bcm/built-in.a
  AR      drivers/clk/imgtec/built-in.a
  AR      drivers/clk/imx/built-in.a
  AR      drivers/clk/ingenic/built-in.a
  AR      drivers/clk/mediatek/built-in.a
  AR      drivers/clk/microchip/built-in.a
  AR      drivers/clk/mstar/built-in.a
  AR      drivers/clk/mvebu/built-in.a
  AR      drivers/clk/ralink/built-in.a
  AR      drivers/clk/renesas/built-in.a
  AR      drivers/clk/socfpga/built-in.a
  AR      drivers/clk/sprd/built-in.a
  AR      drivers/clk/starfive/built-in.a
  AR      drivers/clk/sunxi-ng/built-in.a
  AR      drivers/clk/ti/built-in.a
  AR      drivers/clk/versatile/built-in.a
  CC      drivers/clk/x86/clk-lpss-atom.o
  CC      drivers/clk/x86/clk-pmc-atom.o
  AR      drivers/clk/x86/built-in.a
  AR      drivers/clk/xilinx/built-in.a
  CC      drivers/clk/clk-devres.o
  CC      drivers/clk/clk-bulk.o
  CC      drivers/clk/clkdev.o
  CC      drivers/clk/clk.o
  CC      drivers/clk/clk-divider.o
  CC      drivers/clk/clk-fixed-factor.o
  CC      drivers/clk/clk-fixed-rate.o
  CC      drivers/clk/clk-gate.o
  CC      drivers/clk/clk-multiplier.o
  CC      drivers/clk/clk-mux.o
  CC      drivers/clk/clk-composite.o
  CC      drivers/clk/clk-fractional-divider.o
  CC      drivers/clk/clk-gpio.o
  AR      drivers/clk/built-in.a
  AR      drivers/soc/apple/built-in.a
  AR      drivers/soc/aspeed/built-in.a
  AR      drivers/soc/bcm/bcm63xx/built-in.a
  AR      drivers/soc/bcm/built-in.a
  AR      drivers/soc/fsl/built-in.a
  AR      drivers/soc/fujitsu/built-in.a
  AR      drivers/soc/imx/built-in.a
  AR      drivers/soc/ixp4xx/built-in.a
  AR      drivers/soc/loongson/built-in.a
  AR      drivers/soc/mediatek/built-in.a
  AR      drivers/soc/microchip/built-in.a
  AR      drivers/soc/nuvoton/built-in.a
  AR      drivers/soc/pxa/built-in.a
  AR      drivers/soc/amlogic/built-in.a
  AR      drivers/soc/qcom/built-in.a
  AR      drivers/soc/renesas/built-in.a
  AR      drivers/soc/rockchip/built-in.a
  AR      drivers/soc/sifive/built-in.a
  AR      drivers/soc/sunxi/built-in.a
  AR      drivers/soc/ti/built-in.a
  AR      drivers/soc/xilinx/built-in.a
  AR      drivers/soc/built-in.a
  AR      drivers/virtio/built-in.a
  CC      drivers/tty/vt/vt_ioctl.o
  CC      drivers/tty/vt/vc_screen.o
  CC      drivers/tty/vt/selection.o
  CC      drivers/tty/vt/keyboard.o
  CC      drivers/tty/vt/consolemap.o
  HOSTCC  drivers/tty/vt/conmakehash
  CONMK   drivers/tty/vt/consolemap_deftbl.c
  CC      drivers/tty/vt/consolemap_deftbl.o
  CC      drivers/tty/vt/vt.o
  COPY    drivers/tty/vt/defkeymap.c
  CC      drivers/tty/vt/defkeymap.o
  AR      drivers/tty/vt/built-in.a
  CC      drivers/tty/serial/8250/8250_core.o
  CC      drivers/tty/serial/8250/8250_pnp.o
  CC      drivers/tty/serial/8250/8250_port.o
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC      drivers/tty/serial/8250/8250_pci.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC      drivers/tty/serial/8250/8250_dw.o
  CC      drivers/tty/serial/8250/8250_lpss.o
  CC      drivers/tty/serial/8250/8250_mid.o
  CC      drivers/tty/serial/8250/8250_pericom.o
  AR      drivers/tty/serial/8250/built-in.a
  CC      drivers/tty/serial/serial_core.o
  CC      drivers/tty/serial/earlycon.o
  CC      drivers/tty/serial/serial_mctrl_gpio.o
  AR      drivers/tty/serial/built-in.a
  AR      drivers/tty/ipwireless/built-in.a
  CC      drivers/tty/tty_io.o
  CC      drivers/tty/n_tty.o
  CC      drivers/tty/tty_ioctl.o
  CC      drivers/tty/tty_ldisc.o
  CC      drivers/tty/tty_buffer.o
  CC      drivers/tty/tty_port.o
  CC      drivers/tty/tty_mutex.o
  CC      drivers/tty/tty_ldsem.o
  CC      drivers/tty/tty_baudrate.o
  CC      drivers/tty/tty_jobctrl.o
  CC      drivers/tty/n_null.o
  CC      drivers/tty/pty.o
  CC      drivers/tty/sysrq.o
  AR      drivers/tty/built-in.a
  CC      drivers/char/hw_random/core.o
  CC      drivers/char/hw_random/intel-rng.o
  AR      drivers/char/hw_random/built-in.a
  CC      drivers/char/agp/backend.o
  CC      drivers/char/agp/generic.o
  CC      drivers/char/agp/isoch.o
  CC      drivers/char/agp/intel-agp.o
  CC      drivers/char/agp/intel-gtt.o
  AR      drivers/char/agp/built-in.a
  CC      drivers/char/tpm/tpm-chip.o
  CC      drivers/char/tpm/tpm-dev-common.o
  CC      drivers/char/tpm/tpm-dev.o
  CC      drivers/char/tpm/tpm-interface.o
  CC      drivers/char/tpm/tpm1-cmd.o
  CC      drivers/char/tpm/tpm2-cmd.o
  CC      drivers/char/tpm/tpmrm-dev.o
  CC      drivers/char/tpm/tpm2-space.o
  CC      drivers/char/tpm/tpm-sysfs.o
  CC      drivers/char/tpm/eventlog/common.o
  CC      drivers/char/tpm/eventlog/tpm1.o
  CC      drivers/char/tpm/eventlog/tpm2.o
  CC      drivers/char/tpm/tpm_ppi.o
  CC      drivers/char/tpm/eventlog/acpi.o
  CC      drivers/char/tpm/eventlog/efi.o
  CC      drivers/char/tpm/tpm_crb.o
  AR      drivers/char/tpm/built-in.a
  CC      drivers/char/mem.o
  CC      drivers/char/random.o
  CC      drivers/char/misc.o
  CC      drivers/char/hpet.o
  CC      drivers/char/nvram.o
  AR      drivers/char/built-in.a
  AR      drivers/iommu/amd/built-in.a
  CC      drivers/iommu/intel/dmar.o
  CC      drivers/iommu/intel/iommu.o
  CC      drivers/iommu/intel/pasid.o
  CC      drivers/iommu/intel/trace.o
  CC      drivers/iommu/intel/cap_audit.o
  CC      drivers/iommu/intel/perfmon.o
  AR      drivers/iommu/intel/built-in.a
  AR      drivers/iommu/arm/arm-smmu/built-in.a
  AR      drivers/iommu/arm/arm-smmu-v3/built-in.a
  AR      drivers/iommu/arm/built-in.a
  AR      drivers/iommu/iommufd/built-in.a
  CC      drivers/iommu/iommu.o
  CC      drivers/iommu/iommu-traces.o
  CC      drivers/iommu/iommu-sysfs.o
  CC      drivers/iommu/dma-iommu.o
  CC      drivers/iommu/iova.o
  AR      drivers/iommu/built-in.a
  AR      drivers/gpu/host1x/built-in.a
  AR      drivers/gpu/drm/tests/built-in.a
  AR      drivers/gpu/drm/arm/built-in.a
  AR      drivers/gpu/drm/display/built-in.a
  AR      drivers/gpu/drm/rcar-du/built-in.a
  AR      drivers/gpu/drm/omapdrm/built-in.a
  AR      drivers/gpu/drm/tilcdc/built-in.a
  AR      drivers/gpu/drm/imx/built-in.a
  AR      drivers/gpu/drm/i2c/built-in.a
  AR      drivers/gpu/drm/panel/built-in.a
  AR      drivers/gpu/drm/bridge/analogix/built-in.a
  AR      drivers/gpu/drm/bridge/cadence/built-in.a
  AR      drivers/gpu/drm/bridge/imx/built-in.a
  AR      drivers/gpu/drm/bridge/synopsys/built-in.a
  AR      drivers/gpu/drm/bridge/built-in.a
  AR      drivers/gpu/drm/hisilicon/built-in.a
  AR      drivers/gpu/drm/mxsfb/built-in.a
  AR      drivers/gpu/drm/tiny/built-in.a
  AR      drivers/gpu/drm/xlnx/built-in.a
  AR      drivers/gpu/drm/gud/built-in.a
  AR      drivers/gpu/drm/solomon/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_vma.o
drivers/gpu/drm/i915/i915_vma.c:1641: warning: Function parameter or member 'obj' not described in 'i915_ggtt_clear_scanout'
1 warnings as Errors
make[5]: *** [scripts/Makefile.build:252: drivers/gpu/drm/i915/i915_vma.o] Error 1
make[5]: *** Deleting file 'drivers/gpu/drm/i915/i915_vma.o'
make[4]: *** [scripts/Makefile.build:494: drivers/gpu/drm/i915] Error 2
make[3]: *** [scripts/Makefile.build:494: drivers/gpu/drm] Error 2
make[2]: *** [scripts/Makefile.build:494: drivers/gpu] Error 2
make[1]: *** [scripts/Makefile.build:494: drivers] Error 2
make: *** [Makefile:2026: .] Error 2



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Do not access i915_gem_object members from frontbuffer tracking
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
                   ` (4 preceding siblings ...)
  2023-05-29  7:59 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning for Do not access i915_gem_object members from frontbuffer tracking Patchwork
@ 2023-05-29  7:59 ` Patchwork
  2023-05-29  8:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  2023-05-29 11:52 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-05-29  7:59 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

== Series Details ==

Series: Do not access i915_gem_object members from frontbuffer tracking
URL   : https://patchwork.freedesktop.org/series/118475/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for Do not access i915_gem_object members from frontbuffer tracking
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
                   ` (5 preceding siblings ...)
  2023-05-29  7:59 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2023-05-29  8:16 ` Patchwork
  2023-05-29 11:52 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-05-29  8:16 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 5099 bytes --]

== Series Details ==

Series: Do not access i915_gem_object members from frontbuffer tracking
URL   : https://patchwork.freedesktop.org/series/118475/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13198 -> Patchwork_118475v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/index.html

Participating hosts (38 -> 37)
------------------------------

  Missing    (1): fi-kbl-soraka 

Known issues
------------

  Here are the changes found in Patchwork_118475v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-apl-guc:         [PASS][1] -> [DMESG-FAIL][2] ([i915#5334])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-1:         NOTRUN -> [DMESG-WARN][3] ([i915#6367])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/bat-rpls-1/igt@i915_selftest@live@slpc.html

  * igt@i915_suspend@basic-s3-without-i915:
    - bat-rpls-1:         NOTRUN -> [ABORT][4] ([i915#6687] / [i915#7978])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/bat-rpls-1/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - fi-skl-6600u:       NOTRUN -> [SKIP][5] ([fdo#109271])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/fi-skl-6600u/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  
#### Possible fixes ####

  * igt@dmabuf@all-tests@dma_fence:
    - fi-skl-6600u:       [DMESG-FAIL][6] ([i915#8189]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/fi-skl-6600u/igt@dmabuf@all-tests@dma_fence.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/fi-skl-6600u/igt@dmabuf@all-tests@dma_fence.html

  * igt@dmabuf@all-tests@sanitycheck:
    - fi-skl-6600u:       [ABORT][8] -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/fi-skl-6600u/igt@dmabuf@all-tests@sanitycheck.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/fi-skl-6600u/igt@dmabuf@all-tests@sanitycheck.html

  * igt@i915_selftest@live@requests:
    - bat-rpls-1:         [ABORT][10] ([i915#4983] / [i915#7911] / [i915#7920]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/bat-rpls-1/igt@i915_selftest@live@requests.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/bat-rpls-1/igt@i915_selftest@live@requests.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1:
    - bat-dg2-8:          [FAIL][12] ([i915#7932]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
  [i915#7269]: https://gitlab.freedesktop.org/drm/intel/issues/7269
  [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
  [i915#7920]: https://gitlab.freedesktop.org/drm/intel/issues/7920
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
  [i915#8189]: https://gitlab.freedesktop.org/drm/intel/issues/8189


Build changes
-------------

  * Linux: CI_DRM_13198 -> Patchwork_118475v1

  CI-20190529: 20190529
  CI_DRM_13198: cf59b48ea3c0c0075d7c4e8538177d38999da7b0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7308: 766edf96979bf13a10c9985c007f2baca5c9e308 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_118475v1: cf59b48ea3c0c0075d7c4e8538177d38999da7b0 @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

0317ee61fd86 drm/i915: Add function to clear scanout flag for vmas
bb5b8ffc0ebb drm/i915/display: Remove i915_gem_object_types.h from intel_frontbuffer.h
17614fde476b drm/i915: Add getter/setter for i915_gem_object->frontbuffer
59cc687780b3 drm/i915: Add macros to get i915 device from i915_gem_object

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/index.html

[-- Attachment #2: Type: text/html, Size: 5721 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✓ Fi.CI.IGT: success for Do not access i915_gem_object members from frontbuffer tracking
  2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
                   ` (6 preceding siblings ...)
  2023-05-29  8:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-05-29 11:52 ` Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-05-29 11:52 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 15316 bytes --]

== Series Details ==

Series: Do not access i915_gem_object members from frontbuffer tracking
URL   : https://patchwork.freedesktop.org/series/118475/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13198_full -> Patchwork_118475v1_full
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with Patchwork_118475v1_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_118475v1_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_118475v1_full:

### IGT changes ###

#### Warnings ####

  * igt@kms_hdmi_inject@inject-audio:
    - shard-snb:          [SKIP][1] ([fdo#109271]) -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-snb6/igt@kms_hdmi_inject@inject-audio.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-snb1/igt@kms_hdmi_inject@inject-audio.html

  
Known issues
------------

  Here are the changes found in Patchwork_118475v1_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_barrier_race@remote-request@rcs0:
    - shard-glk:          [PASS][3] -> [ABORT][4] ([i915#7461] / [i915#8211])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-glk8/igt@gem_barrier_race@remote-request@rcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-glk8/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_lmem_swapping@heavy-multi:
    - shard-apl:          NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@gem_lmem_swapping@heavy-multi.html

  * igt@i915_pm_rpm@modeset-lpsp:
    - shard-apl:          NOTRUN -> [SKIP][6] ([fdo#109271]) +30 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@i915_pm_rpm@modeset-lpsp.html

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#3886]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-glk:          [PASS][8] -> [FAIL][9] ([IGT#6] / [i915#72])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-glk5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-glk4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-valid-mode:
    - shard-apl:          NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#4579]) +4 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
    - shard-apl:          NOTRUN -> [SKIP][11] ([IGT#6] / [fdo#109271]) +21 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_hdr@static-swap:
    - shard-apl:          NOTRUN -> [SKIP][12] ([IGT#6] / [fdo#109271] / [i915#4579])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@kms_hdr@static-swap.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-0-25@pipe-a-hdmi-a-1:
    - shard-snb:          NOTRUN -> [SKIP][13] ([fdo#109271]) +19 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-snb1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-0-25@pipe-a-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#4579]) +13 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-snb4/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
    - shard-apl:          NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#658])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html

  
#### Possible fixes ####

  * igt@gem_ctx_freq@sysfs:
    - {shard-dg1}:        [FAIL][16] ([i915#6786]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-dg1-16/igt@gem_ctx_freq@sysfs.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-dg1-15/igt@gem_ctx_freq@sysfs.html

  * igt@gem_exec_fair@basic-none@bcs0:
    - {shard-rkl}:        [FAIL][18] ([i915#2842]) -> [PASS][19] +1 similar issue
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-rkl-7/igt@gem_exec_fair@basic-none@bcs0.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-rkl-6/igt@gem_exec_fair@basic-none@bcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - {shard-tglu}:       [FAIL][20] ([i915#2842]) -> [PASS][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-tglu-8/igt@gem_exec_fair@basic-throttle@rcs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-tglu-7/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - {shard-rkl}:        [SKIP][22] ([i915#1397]) -> [PASS][23] +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-rkl-6/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_suspend@basic-s3-without-i915:
    - {shard-rkl}:        [FAIL][24] ([fdo#103375]) -> [PASS][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-rkl-6/igt@i915_suspend@basic-s3-without-i915.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-rkl-7/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1:
    - shard-apl:          [ABORT][26] ([i915#180]) -> [PASS][27]
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-apl1/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl4/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-apl:          [FAIL][28] ([IGT#6] / [i915#2346]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][30] ([i915#79]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-glk6/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@plain-flip-ts-check@b-hdmi-a1:
    - shard-glk:          [FAIL][32] ([i915#2122]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13198/shard-glk6/igt@kms_flip@plain-flip-ts-check@b-hdmi-a1.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/shard-glk8/igt@kms_flip@plain-flip-ts-check@b-hdmi-a1.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6786]: https://gitlab.freedesktop.org/drm/intel/issues/6786
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502


Build changes
-------------

  * Linux: CI_DRM_13198 -> Patchwork_118475v1

  CI-20190529: 20190529
  CI_DRM_13198: cf59b48ea3c0c0075d7c4e8538177d38999da7b0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7308: 766edf96979bf13a10c9985c007f2baca5c9e308 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_118475v1: cf59b48ea3c0c0075d7c4e8538177d38999da7b0 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118475v1/index.html

[-- Attachment #2: Type: text/html, Size: 12228 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer
  2023-05-29  6:27 ` [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer Jouni Högander
@ 2023-07-26 14:27   ` Nirmoy Das
  2023-07-27  6:45     ` Hogander, Jouni
  0 siblings, 1 reply; 11+ messages in thread
From: Nirmoy Das @ 2023-07-26 14:27 UTC (permalink / raw)
  To: Jouni Högander, intel-gfx; +Cc: Chris Wilson

Hi Jouni,

On 5/29/2023 8:27 AM, Jouni Högander wrote:
> Add getter/setter for i915_gem_object->frontbuffer and use it instead of
> directly touching i915_gem_object->frontbuffer frontbuffer pointer.
>
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>   .../gpu/drm/i915/display/intel_frontbuffer.c  | 18 ++---
>   .../gpu/drm/i915/display/intel_frontbuffer.h  | 27 -------
>   drivers/gpu/drm/i915/gem/i915_gem_object.c    | 70 ++++++++++++++++++-
>   drivers/gpu/drm/i915/gem/i915_gem_object.h    |  6 ++
>   drivers/gpu/drm/i915/i915_vma.c               |  2 +-
>   5 files changed, 81 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> index 3ce0436a0c7d..41ac65c98720 100644
> --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> @@ -237,7 +237,7 @@ static void frontbuffer_release(struct kref *ref)
>   	}
>   	spin_unlock(&obj->vma.lock);
>   
> -	RCU_INIT_POINTER(obj->frontbuffer, NULL);
> +	i915_gem_object_set_frontbuffer(obj, NULL);
>   	spin_unlock(&intel_bo_to_i915(obj)->display.fb_tracking.lock);
>   
>   	i915_active_fini(&front->write);
> @@ -250,9 +250,9 @@ struct intel_frontbuffer *
>   intel_frontbuffer_get(struct drm_i915_gem_object *obj)
>   {
>   	struct drm_i915_private *i915 = intel_bo_to_i915(obj);
> -	struct intel_frontbuffer *front;
> +	struct intel_frontbuffer *front, *front_ret;
>   
> -	front = __intel_frontbuffer_get(obj);
> +	front = i915_gem_object_get_frontbuffer(obj);
>   	if (front)
>   		return front;
>   
> @@ -269,16 +269,10 @@ intel_frontbuffer_get(struct drm_i915_gem_object *obj)
>   			 I915_ACTIVE_RETIRE_SLEEPS);
>   
>   	spin_lock(&i915->display.fb_tracking.lock);
> -	if (rcu_access_pointer(obj->frontbuffer)) {
> -		kfree(front);
> -		front = rcu_dereference_protected(obj->frontbuffer, true);
> -		kref_get(&front->ref);
> -	} else {
> -		i915_gem_object_get(obj);
> -		rcu_assign_pointer(obj->frontbuffer, front);
> -	}
> +	front_ret = i915_gem_object_set_frontbuffer(obj, front);
>   	spin_unlock(&i915->display.fb_tracking.lock);
> -
> +	if (front_ret != front)
> +		kfree(front);
>   	return front;


Should be "return front_ret" here or better s/front_ret/cur/

>   }
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> index 3c474ed937fb..eeccc847331d 100644
> --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> @@ -75,33 +75,6 @@ void intel_frontbuffer_flip(struct drm_i915_private *i915,
>   
>   void intel_frontbuffer_put(struct intel_frontbuffer *front);
>   
> -static inline struct intel_frontbuffer *
> -__intel_frontbuffer_get(const struct drm_i915_gem_object *obj)
> -{
> -	struct intel_frontbuffer *front;
> -
> -	if (likely(!rcu_access_pointer(obj->frontbuffer)))
> -		return NULL;
> -
> -	rcu_read_lock();
> -	do {
> -		front = rcu_dereference(obj->frontbuffer);
> -		if (!front)
> -			break;
> -
> -		if (unlikely(!kref_get_unless_zero(&front->ref)))
> -			continue;
> -
> -		if (likely(front == rcu_access_pointer(obj->frontbuffer)))
> -			break;
> -
> -		intel_frontbuffer_put(front);
> -	} while (1);
> -	rcu_read_unlock();
> -
> -	return front;
> -}
> -
>   struct intel_frontbuffer *
>   intel_frontbuffer_get(struct drm_i915_gem_object *obj);
>   
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> index 46a19b099ec8..6945e903e106 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> @@ -463,7 +463,7 @@ void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
>   {
>   	struct intel_frontbuffer *front;
>   
> -	front = __intel_frontbuffer_get(obj);
> +	front = i915_gem_object_get_frontbuffer(obj);
>   	if (front) {
>   		intel_frontbuffer_flush(front, origin);
>   		intel_frontbuffer_put(front);
> @@ -475,7 +475,7 @@ void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
>   {
>   	struct intel_frontbuffer *front;
>   
> -	front = __intel_frontbuffer_get(obj);
> +	front = i915_gem_object_get_frontbuffer(obj);
>   	if (front) {
>   		intel_frontbuffer_invalidate(front, origin);
>   		intel_frontbuffer_put(front);
> @@ -952,6 +952,72 @@ bool i915_gem_object_has_unknown_state(struct drm_i915_gem_object *obj)
>   	return obj->mm.unknown_state;
>   }
>   
> +/**
> + * i915_gem_object_get_frontbuffer - Get the object's frontbuffer
> + * @obj: The object whose frontbuffer to get.
> + *
> + * Get pointer to object's frontbuffer if such exists. Please note that RCU
> + * mechanism is used to handle e.g. ongoing removal of frontbuffer pointer.
> + *
> + * Return: pointer to object's frontbuffer is such exists or NULL
> + */
> +struct intel_frontbuffer *
> +i915_gem_object_get_frontbuffer(const struct drm_i915_gem_object *obj)
> +{
> +	struct intel_frontbuffer *front;
> +
> +	if (likely(!rcu_access_pointer(obj->frontbuffer)))
> +		return NULL;
> +
> +	rcu_read_lock();
> +	do {
> +		front = rcu_dereference(obj->frontbuffer);
> +		if (!front)
> +			break;
> +
> +		if (unlikely(!kref_get_unless_zero(&front->ref)))
> +			continue;
> +
> +		if (likely(front == rcu_access_pointer(obj->frontbuffer)))
> +			break;
> +
> +		intel_frontbuffer_put(front);
> +	} while (1);
> +	rcu_read_unlock();
> +
> +	return front;
> +}
> +
> +/**
> + * i915_gem_object_set_frontbuffer - Set the object's frontbuffer
> + * @obj: The object whose frontbuffer to set.
> + * @front: The frontbuffer to set
> + *
> + * Set object's frontbuffer pointer. If frontbuffer is already set for the
> + * object keep it and return it's pointer to the caller. Please note that RCU
> + * mechanism is used to handle e.g. ongoing removal of frontbuffer pointer.
> + *
> + * Return: pointer to frontbuffer which was set.
> + */
> +struct intel_frontbuffer *
> +i915_gem_object_set_frontbuffer(struct drm_i915_gem_object *obj,
> +				struct intel_frontbuffer *front)
> +{
> +	struct intel_frontbuffer *front_ret = front;
> +
> +	if (!front) {
> +		RCU_INIT_POINTER(obj->frontbuffer, NULL);
> +	} else if (rcu_access_pointer(obj->frontbuffer)) {
> +		front_ret = rcu_dereference_protected(obj->frontbuffer, true);

Could you please add a comment here stating that this function is 
protected by i915->display.fb_tracking.lock or consider moving the lock 
handling to this function?

Otherwise this is bit confusing.


Regards,

Nirmo


> +		kref_get(&front_ret->ref);
> +	} else {
> +		drm_gem_object_get(&intel_bo_to_drm_bo(obj));
> +		rcu_assign_pointer(obj->frontbuffer, front);
> +	}
> +
> +	return front_ret;
> +}
> +
>   #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
>   #include "selftests/huge_gem_object.c"
>   #include "selftests/huge_pages.c"
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> index 884a17275b3a..69c5fa91152a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> @@ -891,4 +891,10 @@ static inline int i915_gem_object_userptr_validate(struct drm_i915_gem_object *o
>   
>   #endif
>   
> +struct intel_frontbuffer *
> +i915_gem_object_get_frontbuffer(const struct drm_i915_gem_object *obj);
> +struct intel_frontbuffer *
> +i915_gem_object_set_frontbuffer(struct drm_i915_gem_object *obj,
> +				struct intel_frontbuffer *front);
> +
>   #endif
> diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
> index ffb425ba591c..c66ff2157f6a 100644
> --- a/drivers/gpu/drm/i915/i915_vma.c
> +++ b/drivers/gpu/drm/i915/i915_vma.c
> @@ -1908,7 +1908,7 @@ int _i915_vma_move_to_active(struct i915_vma *vma,
>   	if (flags & EXEC_OBJECT_WRITE) {
>   		struct intel_frontbuffer *front;
>   
> -		front = __intel_frontbuffer_get(obj);
> +		front = i915_gem_object_get_frontbuffer(obj);
>   		if (unlikely(front)) {
>   			if (intel_frontbuffer_invalidate(front, ORIGIN_CS))
>   				i915_active_add_request(&front->write, rq);

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer
  2023-07-26 14:27   ` Nirmoy Das
@ 2023-07-27  6:45     ` Hogander, Jouni
  0 siblings, 0 replies; 11+ messages in thread
From: Hogander, Jouni @ 2023-07-27  6:45 UTC (permalink / raw)
  To: nirmoy.das, intel-gfx; +Cc: chris.p.wilson

On Wed, 2023-07-26 at 16:27 +0200, Nirmoy Das wrote:
> Hi Jouni,
> 
> On 5/29/2023 8:27 AM, Jouni Högander wrote:
> > Add getter/setter for i915_gem_object->frontbuffer and use it
> > instead of
> > directly touching i915_gem_object->frontbuffer frontbuffer pointer.
> > 
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> >   .../gpu/drm/i915/display/intel_frontbuffer.c  | 18 ++---
> >   .../gpu/drm/i915/display/intel_frontbuffer.h  | 27 -------
> >   drivers/gpu/drm/i915/gem/i915_gem_object.c    | 70
> > ++++++++++++++++++-
> >   drivers/gpu/drm/i915/gem/i915_gem_object.h    |  6 ++
> >   drivers/gpu/drm/i915/i915_vma.c               |  2 +-
> >   5 files changed, 81 insertions(+), 42 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> > b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> > index 3ce0436a0c7d..41ac65c98720 100644
> > --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> > +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
> > @@ -237,7 +237,7 @@ static void frontbuffer_release(struct kref
> > *ref)
> >         }
> >         spin_unlock(&obj->vma.lock);
> >   
> > -       RCU_INIT_POINTER(obj->frontbuffer, NULL);
> > +       i915_gem_object_set_frontbuffer(obj, NULL);
> >         spin_unlock(&intel_bo_to_i915(obj)-
> > >display.fb_tracking.lock);
> >   
> >         i915_active_fini(&front->write);
> > @@ -250,9 +250,9 @@ struct intel_frontbuffer *
> >   intel_frontbuffer_get(struct drm_i915_gem_object *obj)
> >   {
> >         struct drm_i915_private *i915 = intel_bo_to_i915(obj);
> > -       struct intel_frontbuffer *front;
> > +       struct intel_frontbuffer *front, *front_ret;
> >   
> > -       front = __intel_frontbuffer_get(obj);
> > +       front = i915_gem_object_get_frontbuffer(obj);
> >         if (front)
> >                 return front;
> >   
> > @@ -269,16 +269,10 @@ intel_frontbuffer_get(struct
> > drm_i915_gem_object *obj)
> >                          I915_ACTIVE_RETIRE_SLEEPS);
> >   
> >         spin_lock(&i915->display.fb_tracking.lock);
> > -       if (rcu_access_pointer(obj->frontbuffer)) {
> > -               kfree(front);
> > -               front = rcu_dereference_protected(obj->frontbuffer,
> > true);
> > -               kref_get(&front->ref);
> > -       } else {
> > -               i915_gem_object_get(obj);
> > -               rcu_assign_pointer(obj->frontbuffer, front);
> > -       }
> > +       front_ret = i915_gem_object_set_frontbuffer(obj, front);
> >         spin_unlock(&i915->display.fb_tracking.lock);
> > -
> > +       if (front_ret != front)
> > +               kfree(front);
> >         return front;
> 
> 
> Should be "return front_ret" here or better s/front_ret/cur/

Thank you Nirmoy for checking my patch. Fixed this comment and the one
below in new version:

https://patchwork.freedesktop.org/series/118475/

> 
> >   }
> >   
> > diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> > b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> > index 3c474ed937fb..eeccc847331d 100644
> > --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> > +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h
> > @@ -75,33 +75,6 @@ void intel_frontbuffer_flip(struct
> > drm_i915_private *i915,
> >   
> >   void intel_frontbuffer_put(struct intel_frontbuffer *front);
> >   
> > -static inline struct intel_frontbuffer *
> > -__intel_frontbuffer_get(const struct drm_i915_gem_object *obj)
> > -{
> > -       struct intel_frontbuffer *front;
> > -
> > -       if (likely(!rcu_access_pointer(obj->frontbuffer)))
> > -               return NULL;
> > -
> > -       rcu_read_lock();
> > -       do {
> > -               front = rcu_dereference(obj->frontbuffer);
> > -               if (!front)
> > -                       break;
> > -
> > -               if (unlikely(!kref_get_unless_zero(&front->ref)))
> > -                       continue;
> > -
> > -               if (likely(front == rcu_access_pointer(obj-
> > >frontbuffer)))
> > -                       break;
> > -
> > -               intel_frontbuffer_put(front);
> > -       } while (1);
> > -       rcu_read_unlock();
> > -
> > -       return front;
> > -}
> > -
> >   struct intel_frontbuffer *
> >   intel_frontbuffer_get(struct drm_i915_gem_object *obj);
> >   
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c
> > b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> > index 46a19b099ec8..6945e903e106 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> > @@ -463,7 +463,7 @@ void __i915_gem_object_flush_frontbuffer(struct
> > drm_i915_gem_object *obj,
> >   {
> >         struct intel_frontbuffer *front;
> >   
> > -       front = __intel_frontbuffer_get(obj);
> > +       front = i915_gem_object_get_frontbuffer(obj);
> >         if (front) {
> >                 intel_frontbuffer_flush(front, origin);
> >                 intel_frontbuffer_put(front);
> > @@ -475,7 +475,7 @@ void
> > __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object
> > *obj,
> >   {
> >         struct intel_frontbuffer *front;
> >   
> > -       front = __intel_frontbuffer_get(obj);
> > +       front = i915_gem_object_get_frontbuffer(obj);
> >         if (front) {
> >                 intel_frontbuffer_invalidate(front, origin);
> >                 intel_frontbuffer_put(front);
> > @@ -952,6 +952,72 @@ bool i915_gem_object_has_unknown_state(struct
> > drm_i915_gem_object *obj)
> >         return obj->mm.unknown_state;
> >   }
> >   
> > +/**
> > + * i915_gem_object_get_frontbuffer - Get the object's frontbuffer
> > + * @obj: The object whose frontbuffer to get.
> > + *
> > + * Get pointer to object's frontbuffer if such exists. Please note
> > that RCU
> > + * mechanism is used to handle e.g. ongoing removal of frontbuffer
> > pointer.
> > + *
> > + * Return: pointer to object's frontbuffer is such exists or NULL
> > + */
> > +struct intel_frontbuffer *
> > +i915_gem_object_get_frontbuffer(const struct drm_i915_gem_object
> > *obj)
> > +{
> > +       struct intel_frontbuffer *front;
> > +
> > +       if (likely(!rcu_access_pointer(obj->frontbuffer)))
> > +               return NULL;
> > +
> > +       rcu_read_lock();
> > +       do {
> > +               front = rcu_dereference(obj->frontbuffer);
> > +               if (!front)
> > +                       break;
> > +
> > +               if (unlikely(!kref_get_unless_zero(&front->ref)))
> > +                       continue;
> > +
> > +               if (likely(front == rcu_access_pointer(obj-
> > >frontbuffer)))
> > +                       break;
> > +
> > +               intel_frontbuffer_put(front);
> > +       } while (1);
> > +       rcu_read_unlock();
> > +
> > +       return front;
> > +}
> > +
> > +/**
> > + * i915_gem_object_set_frontbuffer - Set the object's frontbuffer
> > + * @obj: The object whose frontbuffer to set.
> > + * @front: The frontbuffer to set
> > + *
> > + * Set object's frontbuffer pointer. If frontbuffer is already set
> > for the
> > + * object keep it and return it's pointer to the caller. Please
> > note that RCU
> > + * mechanism is used to handle e.g. ongoing removal of frontbuffer
> > pointer.
> > + *
> > + * Return: pointer to frontbuffer which was set.
> > + */
> > +struct intel_frontbuffer *
> > +i915_gem_object_set_frontbuffer(struct drm_i915_gem_object *obj,
> > +                               struct intel_frontbuffer *front)
> > +{
> > +       struct intel_frontbuffer *front_ret = front;
> > +
> > +       if (!front) {
> > +               RCU_INIT_POINTER(obj->frontbuffer, NULL);
> > +       } else if (rcu_access_pointer(obj->frontbuffer)) {
> > +               front_ret = rcu_dereference_protected(obj-
> > >frontbuffer, true);
> 
> Could you please add a comment here stating that this function is 
> protected by i915->display.fb_tracking.lock or consider moving the
> lock 
> handling to this function?
> 
> Otherwise this is bit confusing.
> 
> 
> Regards,
> 
> Nirmo
> 
> 
> > +               kref_get(&front_ret->ref);
> > +       } else {
> > +               drm_gem_object_get(&intel_bo_to_drm_bo(obj));
> > +               rcu_assign_pointer(obj->frontbuffer, front);
> > +       }
> > +
> > +       return front_ret;
> > +}
> > +
> >   #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
> >   #include "selftests/huge_gem_object.c"
> >   #include "selftests/huge_pages.c"
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > index 884a17275b3a..69c5fa91152a 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > @@ -891,4 +891,10 @@ static inline int
> > i915_gem_object_userptr_validate(struct drm_i915_gem_object *o
> >   
> >   #endif
> >   
> > +struct intel_frontbuffer *
> > +i915_gem_object_get_frontbuffer(const struct drm_i915_gem_object
> > *obj);
> > +struct intel_frontbuffer *
> > +i915_gem_object_set_frontbuffer(struct drm_i915_gem_object *obj,
> > +                               struct intel_frontbuffer *front);
> > +
> >   #endif
> > diff --git a/drivers/gpu/drm/i915/i915_vma.c
> > b/drivers/gpu/drm/i915/i915_vma.c
> > index ffb425ba591c..c66ff2157f6a 100644
> > --- a/drivers/gpu/drm/i915/i915_vma.c
> > +++ b/drivers/gpu/drm/i915/i915_vma.c
> > @@ -1908,7 +1908,7 @@ int _i915_vma_move_to_active(struct i915_vma
> > *vma,
> >         if (flags & EXEC_OBJECT_WRITE) {
> >                 struct intel_frontbuffer *front;
> >   
> > -               front = __intel_frontbuffer_get(obj);
> > +               front = i915_gem_object_get_frontbuffer(obj);
> >                 if (unlikely(front)) {
> >                         if (intel_frontbuffer_invalidate(front,
> > ORIGIN_CS))
> >                                 i915_active_add_request(&front-
> > >write, rq);

BR,

Jouni Högander

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-07-27  6:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-29  6:27 [Intel-gfx] [PATCH 0/4] Do not access i915_gem_object members from frontbuffer tracking Jouni Högander
2023-05-29  6:27 ` [Intel-gfx] [PATCH 1/4] drm/i915: Add macros to get i915 device from i915_gem_object Jouni Högander
2023-05-29  6:27 ` [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer Jouni Högander
2023-07-26 14:27   ` Nirmoy Das
2023-07-27  6:45     ` Hogander, Jouni
2023-05-29  6:27 ` [Intel-gfx] [PATCH 3/4] drm/i915/display: Remove i915_gem_object_types.h from intel_frontbuffer.h Jouni Högander
2023-05-29  6:27 ` [Intel-gfx] [PATCH 4/4] drm/i915: Add function to clear scanout flag for vmas Jouni Högander
2023-05-29  7:59 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning for Do not access i915_gem_object members from frontbuffer tracking Patchwork
2023-05-29  7:59 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-05-29  8:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-05-29 11:52 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.