* [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.