* [Intel-gfx] [PATCH 1/5] drm/i915: Add ability for tracking buffer objects per client
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
@ 2023-07-27 10:13 ` Tvrtko Ursulin
2023-08-03 5:30 ` Iddamsetty, Aravind
2023-07-27 10:13 ` [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM Tvrtko Ursulin
` (8 subsequent siblings)
9 siblings, 1 reply; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-07-27 10:13 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
In order to show per client memory usage lets add some infrastructure
which enables tracking buffer objects owned by clients.
We add a per client list protected by a new per client lock and to support
delayed destruction (post client exit) we make tracked objects hold
references to the owning client.
Also, object memory region teardown is moved to the existing RCU free
callback to allow safe dereference from the fdinfo RCU read section.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_object.c | 13 +++++--
.../gpu/drm/i915/gem/i915_gem_object_types.h | 12 +++++++
drivers/gpu/drm/i915/i915_drm_client.c | 36 +++++++++++++++++++
drivers/gpu/drm/i915/i915_drm_client.h | 32 +++++++++++++++++
4 files changed, 90 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
index 97ac6fb37958..3dc4fbb67d2b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -105,6 +105,10 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
INIT_LIST_HEAD(&obj->mm.link);
+#ifdef CONFIG_PROC_FS
+ INIT_LIST_HEAD(&obj->client_link);
+#endif
+
INIT_LIST_HEAD(&obj->lut_list);
spin_lock_init(&obj->lut_lock);
@@ -292,6 +296,10 @@ void __i915_gem_free_object_rcu(struct rcu_head *head)
container_of(head, typeof(*obj), rcu);
struct drm_i915_private *i915 = to_i915(obj->base.dev);
+ /* We need to keep this alive for RCU read access from fdinfo. */
+ if (obj->mm.n_placements > 1)
+ kfree(obj->mm.placements);
+
i915_gem_object_free(obj);
GEM_BUG_ON(!atomic_read(&i915->mm.free_count));
@@ -388,9 +396,6 @@ void __i915_gem_free_object(struct drm_i915_gem_object *obj)
if (obj->ops->release)
obj->ops->release(obj);
- if (obj->mm.n_placements > 1)
- kfree(obj->mm.placements);
-
if (obj->shares_resv_from)
i915_vm_resv_put(obj->shares_resv_from);
@@ -441,6 +446,8 @@ static void i915_gem_free_object(struct drm_gem_object *gem_obj)
GEM_BUG_ON(i915_gem_object_is_framebuffer(obj));
+ i915_drm_client_remove_object(obj);
+
/*
* Before we free the object, make sure any pure RCU-only
* read-side critical sections are complete, e.g.
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..8de2b91b3edf 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -300,6 +300,18 @@ struct drm_i915_gem_object {
*/
struct i915_address_space *shares_resv_from;
+#ifdef CONFIG_PROC_FS
+ /**
+ * @client: @i915_drm_client which created the object
+ */
+ struct i915_drm_client *client;
+
+ /**
+ * @client_link: Link into @i915_drm_client.objects_list
+ */
+ struct list_head client_link;
+#endif
+
union {
struct rcu_head rcu;
struct llist_node freed;
diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
index 2a44b3876cb5..2e5e69edc0f9 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.c
+++ b/drivers/gpu/drm/i915/i915_drm_client.c
@@ -28,6 +28,10 @@ struct i915_drm_client *i915_drm_client_alloc(void)
kref_init(&client->kref);
spin_lock_init(&client->ctx_lock);
INIT_LIST_HEAD(&client->ctx_list);
+#ifdef CONFIG_PROC_FS
+ spin_lock_init(&client->objects_lock);
+ INIT_LIST_HEAD(&client->objects_list);
+#endif
return client;
}
@@ -108,4 +112,36 @@ void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file)
for (i = 0; i < ARRAY_SIZE(uabi_class_names); i++)
show_client_class(p, i915, file_priv->client, i);
}
+
+void i915_drm_client_add_object(struct i915_drm_client *client,
+ struct drm_i915_gem_object *obj)
+{
+ unsigned long flags;
+
+ GEM_WARN_ON(obj->client);
+ GEM_WARN_ON(!list_empty(&obj->client_link));
+
+ spin_lock_irqsave(&client->objects_lock, flags);
+ obj->client = i915_drm_client_get(client);
+ list_add_tail_rcu(&obj->client_link, &client->objects_list);
+ spin_unlock_irqrestore(&client->objects_lock, flags);
+}
+
+bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj)
+{
+ struct i915_drm_client *client = fetch_and_zero(&obj->client);
+ unsigned long flags;
+
+ /* Object may not be associated with a client. */
+ if (!client)
+ return false;
+
+ spin_lock_irqsave(&client->objects_lock, flags);
+ list_del_rcu(&obj->client_link);
+ spin_unlock_irqrestore(&client->objects_lock, flags);
+
+ i915_drm_client_put(client);
+
+ return true;
+}
#endif
diff --git a/drivers/gpu/drm/i915/i915_drm_client.h b/drivers/gpu/drm/i915/i915_drm_client.h
index 67816c912bca..5f58fdf7dcb8 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.h
+++ b/drivers/gpu/drm/i915/i915_drm_client.h
@@ -12,6 +12,9 @@
#include <uapi/drm/i915_drm.h>
+#include "i915_file_private.h"
+#include "gem/i915_gem_object_types.h"
+
#define I915_LAST_UABI_ENGINE_CLASS I915_ENGINE_CLASS_COMPUTE
struct drm_file;
@@ -25,6 +28,20 @@ struct i915_drm_client {
spinlock_t ctx_lock; /* For add/remove from ctx_list. */
struct list_head ctx_list; /* List of contexts belonging to client. */
+#ifdef CONFIG_PROC_FS
+ /**
+ * @objects_lock: lock protecting @objects_list
+ */
+ spinlock_t objects_lock;
+
+ /**
+ * @objects_list: list of objects created by this client
+ *
+ * Protected by @objects_lock.
+ */
+ struct list_head objects_list;
+#endif
+
/**
* @past_runtime: Accumulation of pphwsp runtimes from closed contexts.
*/
@@ -49,4 +66,19 @@ struct i915_drm_client *i915_drm_client_alloc(void);
void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file);
+#ifdef CONFIG_PROC_FS
+void i915_drm_client_add_object(struct i915_drm_client *client,
+ struct drm_i915_gem_object *obj);
+bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj);
+#else
+static inline void i915_drm_client_add_object(struct i915_drm_client *client,
+ struct drm_i915_gem_object *obj)
+{
+}
+
+static inline bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj)
+{
+}
+#endif
+
#endif /* !__I915_DRM_CLIENT_H__ */
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [Intel-gfx] [PATCH 1/5] drm/i915: Add ability for tracking buffer objects per client
2023-07-27 10:13 ` [Intel-gfx] [PATCH 1/5] drm/i915: Add ability for tracking buffer objects per client Tvrtko Ursulin
@ 2023-08-03 5:30 ` Iddamsetty, Aravind
0 siblings, 0 replies; 19+ messages in thread
From: Iddamsetty, Aravind @ 2023-08-03 5:30 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx, dri-devel
On 27-07-2023 15:43, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> In order to show per client memory usage lets add some infrastructure
> which enables tracking buffer objects owned by clients.
>
> We add a per client list protected by a new per client lock and to support
> delayed destruction (post client exit) we make tracked objects hold
> references to the owning client.
>
> Also, object memory region teardown is moved to the existing RCU free
> callback to allow safe dereference from the fdinfo RCU read section.
This is same as the earlier series, which I had reviewed but forgot to
give r-b. sorry for the delay.
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
Thanks,
Aravind.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_object.c | 13 +++++--
> .../gpu/drm/i915/gem/i915_gem_object_types.h | 12 +++++++
> drivers/gpu/drm/i915/i915_drm_client.c | 36 +++++++++++++++++++
> drivers/gpu/drm/i915/i915_drm_client.h | 32 +++++++++++++++++
> 4 files changed, 90 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> index 97ac6fb37958..3dc4fbb67d2b 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> @@ -105,6 +105,10 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
>
> INIT_LIST_HEAD(&obj->mm.link);
>
> +#ifdef CONFIG_PROC_FS
> + INIT_LIST_HEAD(&obj->client_link);
> +#endif
> +
> INIT_LIST_HEAD(&obj->lut_list);
> spin_lock_init(&obj->lut_lock);
>
> @@ -292,6 +296,10 @@ void __i915_gem_free_object_rcu(struct rcu_head *head)
> container_of(head, typeof(*obj), rcu);
> struct drm_i915_private *i915 = to_i915(obj->base.dev);
>
> + /* We need to keep this alive for RCU read access from fdinfo. */
> + if (obj->mm.n_placements > 1)
> + kfree(obj->mm.placements);
> +
> i915_gem_object_free(obj);
>
> GEM_BUG_ON(!atomic_read(&i915->mm.free_count));
> @@ -388,9 +396,6 @@ void __i915_gem_free_object(struct drm_i915_gem_object *obj)
> if (obj->ops->release)
> obj->ops->release(obj);
>
> - if (obj->mm.n_placements > 1)
> - kfree(obj->mm.placements);
> -
> if (obj->shares_resv_from)
> i915_vm_resv_put(obj->shares_resv_from);
>
> @@ -441,6 +446,8 @@ static void i915_gem_free_object(struct drm_gem_object *gem_obj)
>
> GEM_BUG_ON(i915_gem_object_is_framebuffer(obj));
>
> + i915_drm_client_remove_object(obj);
> +
> /*
> * Before we free the object, make sure any pure RCU-only
> * read-side critical sections are complete, e.g.
> 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..8de2b91b3edf 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> @@ -300,6 +300,18 @@ struct drm_i915_gem_object {
> */
> struct i915_address_space *shares_resv_from;
>
> +#ifdef CONFIG_PROC_FS
> + /**
> + * @client: @i915_drm_client which created the object
> + */
> + struct i915_drm_client *client;
> +
> + /**
> + * @client_link: Link into @i915_drm_client.objects_list
> + */
> + struct list_head client_link;
> +#endif
> +
> union {
> struct rcu_head rcu;
> struct llist_node freed;
> diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
> index 2a44b3876cb5..2e5e69edc0f9 100644
> --- a/drivers/gpu/drm/i915/i915_drm_client.c
> +++ b/drivers/gpu/drm/i915/i915_drm_client.c
> @@ -28,6 +28,10 @@ struct i915_drm_client *i915_drm_client_alloc(void)
> kref_init(&client->kref);
> spin_lock_init(&client->ctx_lock);
> INIT_LIST_HEAD(&client->ctx_list);
> +#ifdef CONFIG_PROC_FS
> + spin_lock_init(&client->objects_lock);
> + INIT_LIST_HEAD(&client->objects_list);
> +#endif
>
> return client;
> }
> @@ -108,4 +112,36 @@ void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file)
> for (i = 0; i < ARRAY_SIZE(uabi_class_names); i++)
> show_client_class(p, i915, file_priv->client, i);
> }
> +
> +void i915_drm_client_add_object(struct i915_drm_client *client,
> + struct drm_i915_gem_object *obj)
> +{
> + unsigned long flags;
> +
> + GEM_WARN_ON(obj->client);
> + GEM_WARN_ON(!list_empty(&obj->client_link));
> +
> + spin_lock_irqsave(&client->objects_lock, flags);
> + obj->client = i915_drm_client_get(client);
> + list_add_tail_rcu(&obj->client_link, &client->objects_list);
> + spin_unlock_irqrestore(&client->objects_lock, flags);
> +}
> +
> +bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj)
> +{
> + struct i915_drm_client *client = fetch_and_zero(&obj->client);
> + unsigned long flags;
> +
> + /* Object may not be associated with a client. */
> + if (!client)
> + return false;
> +
> + spin_lock_irqsave(&client->objects_lock, flags);
> + list_del_rcu(&obj->client_link);
> + spin_unlock_irqrestore(&client->objects_lock, flags);
> +
> + i915_drm_client_put(client);
> +
> + return true;
> +}
> #endif
> diff --git a/drivers/gpu/drm/i915/i915_drm_client.h b/drivers/gpu/drm/i915/i915_drm_client.h
> index 67816c912bca..5f58fdf7dcb8 100644
> --- a/drivers/gpu/drm/i915/i915_drm_client.h
> +++ b/drivers/gpu/drm/i915/i915_drm_client.h
> @@ -12,6 +12,9 @@
>
> #include <uapi/drm/i915_drm.h>
>
> +#include "i915_file_private.h"
> +#include "gem/i915_gem_object_types.h"
> +
> #define I915_LAST_UABI_ENGINE_CLASS I915_ENGINE_CLASS_COMPUTE
>
> struct drm_file;
> @@ -25,6 +28,20 @@ struct i915_drm_client {
> spinlock_t ctx_lock; /* For add/remove from ctx_list. */
> struct list_head ctx_list; /* List of contexts belonging to client. */
>
> +#ifdef CONFIG_PROC_FS
> + /**
> + * @objects_lock: lock protecting @objects_list
> + */
> + spinlock_t objects_lock;
> +
> + /**
> + * @objects_list: list of objects created by this client
> + *
> + * Protected by @objects_lock.
> + */
> + struct list_head objects_list;
> +#endif
> +
> /**
> * @past_runtime: Accumulation of pphwsp runtimes from closed contexts.
> */
> @@ -49,4 +66,19 @@ struct i915_drm_client *i915_drm_client_alloc(void);
>
> void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file);
>
> +#ifdef CONFIG_PROC_FS
> +void i915_drm_client_add_object(struct i915_drm_client *client,
> + struct drm_i915_gem_object *obj);
> +bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj);
> +#else
> +static inline void i915_drm_client_add_object(struct i915_drm_client *client,
> + struct drm_i915_gem_object *obj)
> +{
> +}
> +
> +static inline bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj)
> +{
> +}
> +#endif
> +
> #endif /* !__I915_DRM_CLIENT_H__ */
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
2023-07-27 10:13 ` [Intel-gfx] [PATCH 1/5] drm/i915: Add ability for tracking buffer objects per client Tvrtko Ursulin
@ 2023-07-27 10:13 ` Tvrtko Ursulin
2023-07-27 10:13 ` [Intel-gfx] [PATCH 3/5] drm/i915: Track page table backing store usage Tvrtko Ursulin
` (7 subsequent siblings)
9 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-07-27 10:13 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
To enable accounting of indirect client memory usage (such as page tables)
in the following patch, lets start recording the creator of each PPGTT.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 ++++++++---
drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 3 +++
drivers/gpu/drm/i915/gem/selftests/mock_context.c | 4 ++--
drivers/gpu/drm/i915/gt/intel_gtt.h | 1 +
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 9a9ff84c90d7..35cf6608180e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -279,7 +279,8 @@ static int proto_context_set_protected(struct drm_i915_private *i915,
}
static struct i915_gem_proto_context *
-proto_context_create(struct drm_i915_private *i915, unsigned int flags)
+proto_context_create(struct drm_i915_file_private *fpriv,
+ struct drm_i915_private *i915, unsigned int flags)
{
struct i915_gem_proto_context *pc, *err;
@@ -287,6 +288,7 @@ proto_context_create(struct drm_i915_private *i915, unsigned int flags)
if (!pc)
return ERR_PTR(-ENOMEM);
+ pc->fpriv = fpriv;
pc->num_user_engines = -1;
pc->user_engines = NULL;
pc->user_flags = BIT(UCONTEXT_BANNABLE) |
@@ -1621,6 +1623,7 @@ i915_gem_create_context(struct drm_i915_private *i915,
err = PTR_ERR(ppgtt);
goto err_ctx;
}
+ ppgtt->vm.fpriv = pc->fpriv;
vm = &ppgtt->vm;
}
if (vm)
@@ -1740,7 +1743,7 @@ int i915_gem_context_open(struct drm_i915_private *i915,
/* 0 reserved for invalid/unassigned ppgtt */
xa_init_flags(&file_priv->vm_xa, XA_FLAGS_ALLOC1);
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(file_priv, i915, 0);
if (IS_ERR(pc)) {
err = PTR_ERR(pc);
goto err;
@@ -1822,6 +1825,7 @@ int i915_gem_vm_create_ioctl(struct drm_device *dev, void *data,
GEM_BUG_ON(id == 0); /* reserved for invalid/unassigned ppgtt */
args->vm_id = id;
+ ppgtt->vm.fpriv = file_priv;
return 0;
err_put:
@@ -2284,7 +2288,8 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
return -EIO;
}
- ext_data.pc = proto_context_create(i915, args->flags);
+ ext_data.pc = proto_context_create(file->driver_priv, i915,
+ args->flags);
if (IS_ERR(ext_data.pc))
return PTR_ERR(ext_data.pc);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
index cb78214a7dcd..c573c067779f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
@@ -188,6 +188,9 @@ struct i915_gem_proto_engine {
* CONTEXT_CREATE_SET_PARAM during GEM_CONTEXT_CREATE.
*/
struct i915_gem_proto_context {
+ /** @fpriv: Client which creates the context */
+ struct drm_i915_file_private *fpriv;
+
/** @vm: See &i915_gem_context.vm */
struct i915_address_space *vm;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
index 8ac6726ec16b..125584ada282 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
@@ -83,7 +83,7 @@ live_context(struct drm_i915_private *i915, struct file *file)
int err;
u32 id;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(fpriv, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
@@ -152,7 +152,7 @@ kernel_context(struct drm_i915_private *i915,
struct i915_gem_context *ctx;
struct i915_gem_proto_context *pc;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(NULL, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h
index 4d6296cdbcfd..7192a534a654 100644
--- a/drivers/gpu/drm/i915/gt/intel_gtt.h
+++ b/drivers/gpu/drm/i915/gt/intel_gtt.h
@@ -248,6 +248,7 @@ struct i915_address_space {
struct drm_mm mm;
struct intel_gt *gt;
struct drm_i915_private *i915;
+ struct drm_i915_file_private *fpriv;
struct device *dma;
u64 total; /* size addr space maps (ex. 2GB for ggtt) */
u64 reserved; /* size addr space reserved */
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread* [Intel-gfx] [PATCH 3/5] drm/i915: Track page table backing store usage
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
2023-07-27 10:13 ` [Intel-gfx] [PATCH 1/5] drm/i915: Add ability for tracking buffer objects per client Tvrtko Ursulin
2023-07-27 10:13 ` [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM Tvrtko Ursulin
@ 2023-07-27 10:13 ` Tvrtko Ursulin
2023-07-27 10:13 ` [Intel-gfx] [PATCH 4/5] drm/i915: Account ring buffer and context state storage Tvrtko Ursulin
` (6 subsequent siblings)
9 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-07-27 10:13 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Account page table backing store against the owning client memory usage
stats.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
---
drivers/gpu/drm/i915/gt/intel_gtt.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.c b/drivers/gpu/drm/i915/gt/intel_gtt.c
index 731d9f2bbc56..065099362a98 100644
--- a/drivers/gpu/drm/i915/gt/intel_gtt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gtt.c
@@ -58,6 +58,9 @@ struct drm_i915_gem_object *alloc_pt_lmem(struct i915_address_space *vm, int sz)
if (!IS_ERR(obj)) {
obj->base.resv = i915_vm_resv_get(vm);
obj->shares_resv_from = vm;
+
+ if (vm->fpriv)
+ i915_drm_client_add_object(vm->fpriv->client, obj);
}
return obj;
@@ -79,6 +82,9 @@ struct drm_i915_gem_object *alloc_pt_dma(struct i915_address_space *vm, int sz)
if (!IS_ERR(obj)) {
obj->base.resv = i915_vm_resv_get(vm);
obj->shares_resv_from = vm;
+
+ if (vm->fpriv)
+ i915_drm_client_add_object(vm->fpriv->client, obj);
}
return obj;
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread* [Intel-gfx] [PATCH 4/5] drm/i915: Account ring buffer and context state storage
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (2 preceding siblings ...)
2023-07-27 10:13 ` [Intel-gfx] [PATCH 3/5] drm/i915: Track page table backing store usage Tvrtko Ursulin
@ 2023-07-27 10:13 ` Tvrtko Ursulin
2023-07-27 10:13 ` [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing Tvrtko Ursulin
` (5 subsequent siblings)
9 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-07-27 10:13 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Account ring buffers and logical context space against the owning client
memory usage stats.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
---
drivers/gpu/drm/i915/gt/intel_context.c | 14 ++++++++++++++
drivers/gpu/drm/i915/i915_drm_client.c | 10 ++++++++++
drivers/gpu/drm/i915/i915_drm_client.h | 9 +++++++++
3 files changed, 33 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
index a53b26178f0a..a2f1245741bb 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -6,6 +6,7 @@
#include "gem/i915_gem_context.h"
#include "gem/i915_gem_pm.h"
+#include "i915_drm_client.h"
#include "i915_drv.h"
#include "i915_trace.h"
@@ -50,6 +51,7 @@ intel_context_create(struct intel_engine_cs *engine)
int intel_context_alloc_state(struct intel_context *ce)
{
+ struct i915_gem_context *ctx;
int err = 0;
if (mutex_lock_interruptible(&ce->pin_mutex))
@@ -66,6 +68,18 @@ int intel_context_alloc_state(struct intel_context *ce)
goto unlock;
set_bit(CONTEXT_ALLOC_BIT, &ce->flags);
+
+ rcu_read_lock();
+ ctx = rcu_dereference(ce->gem_context);
+ if (ctx && !kref_get_unless_zero(&ctx->ref))
+ ctx = NULL;
+ rcu_read_unlock();
+ if (ctx) {
+ if (ctx->client)
+ i915_drm_client_add_context_objects(ctx->client,
+ ce);
+ i915_gem_context_put(ctx);
+ }
}
unlock:
diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
index 2e5e69edc0f9..a61356012df8 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.c
+++ b/drivers/gpu/drm/i915/i915_drm_client.c
@@ -144,4 +144,14 @@ bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj)
return true;
}
+
+void i915_drm_client_add_context_objects(struct i915_drm_client *client,
+ struct intel_context *ce)
+{
+ if (ce->state)
+ i915_drm_client_add_object(client, ce->state->obj);
+
+ if (ce->ring != ce->engine->legacy.ring && ce->ring->vma)
+ i915_drm_client_add_object(client, ce->ring->vma->obj);
+}
#endif
diff --git a/drivers/gpu/drm/i915/i915_drm_client.h b/drivers/gpu/drm/i915/i915_drm_client.h
index 5f58fdf7dcb8..69cedfcd3d69 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.h
+++ b/drivers/gpu/drm/i915/i915_drm_client.h
@@ -14,6 +14,7 @@
#include "i915_file_private.h"
#include "gem/i915_gem_object_types.h"
+#include "gt/intel_context_types.h"
#define I915_LAST_UABI_ENGINE_CLASS I915_ENGINE_CLASS_COMPUTE
@@ -70,6 +71,8 @@ void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file);
void i915_drm_client_add_object(struct i915_drm_client *client,
struct drm_i915_gem_object *obj);
bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj);
+void i915_drm_client_add_context_objects(struct i915_drm_client *client,
+ struct intel_context *ce);
#else
static inline void i915_drm_client_add_object(struct i915_drm_client *client,
struct drm_i915_gem_object *obj)
@@ -79,6 +82,12 @@ static inline void i915_drm_client_add_object(struct i915_drm_client *client,
static inline bool i915_drm_client_remove_object(struct drm_i915_gem_object *obj)
{
}
+
+static inline void
+i915_drm_client_add_context_objects(struct i915_drm_client *client,
+ struct intel_context *ce)
+{
+}
#endif
#endif /* !__I915_DRM_CLIENT_H__ */
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread* [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (3 preceding siblings ...)
2023-07-27 10:13 ` [Intel-gfx] [PATCH 4/5] drm/i915: Account ring buffer and context state storage Tvrtko Ursulin
@ 2023-07-27 10:13 ` Tvrtko Ursulin
2023-08-03 5:15 ` Iddamsetty, Aravind
2023-07-27 11:17 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for fdinfo memory stats (rev5) Patchwork
` (4 subsequent siblings)
9 siblings, 1 reply; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-07-27 10:13 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Use the newly added drm_print_memory_stats helper to show memory
utilisation of our objects in drm/driver specific fdinfo output.
To collect the stats we walk the per memory regions object lists
and accumulate object size into the respective drm_memory_stats
categories.
Objects with multiple possible placements are reported in multiple
regions for total and shared sizes, while other categories are
counted only for the currently active region.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
---
drivers/gpu/drm/i915/i915_drm_client.c | 85 ++++++++++++++++++++++++++
1 file changed, 85 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
index a61356012df8..9e7a6075ee25 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.c
+++ b/drivers/gpu/drm/i915/i915_drm_client.c
@@ -45,6 +45,89 @@ void __i915_drm_client_free(struct kref *kref)
}
#ifdef CONFIG_PROC_FS
+static void
+obj_meminfo(struct drm_i915_gem_object *obj,
+ struct drm_memory_stats stats[INTEL_REGION_UNKNOWN])
+{
+ struct intel_memory_region *mr;
+ u64 sz = obj->base.size;
+ enum intel_region_id id;
+ unsigned int i;
+
+ /* Attribute size and shared to all possible memory regions. */
+ for (i = 0; i < obj->mm.n_placements; i++) {
+ mr = obj->mm.placements[i];
+ id = mr->id;
+
+ if (obj->base.handle_count > 1)
+ stats[id].shared += sz;
+ else
+ stats[id].private += sz;
+ }
+
+ /* Attribute other categories to only the current region. */
+ mr = obj->mm.region;
+ if (mr)
+ id = mr->id;
+ else
+ id = INTEL_REGION_SMEM;
+
+ if (!obj->mm.n_placements) {
+ if (obj->base.handle_count > 1)
+ stats[id].shared += sz;
+ else
+ stats[id].private += sz;
+ }
+
+ if (i915_gem_object_has_pages(obj)) {
+ stats[id].resident += sz;
+
+ if (!dma_resv_test_signaled(obj->base.resv,
+ dma_resv_usage_rw(true)))
+ stats[id].active += sz;
+ else if (i915_gem_object_is_shrinkable(obj) &&
+ obj->mm.madv == I915_MADV_DONTNEED)
+ stats[id].purgeable += sz;
+ }
+}
+
+static void show_meminfo(struct drm_printer *p, struct drm_file *file)
+{
+ struct drm_memory_stats stats[INTEL_REGION_UNKNOWN] = {};
+ struct drm_i915_file_private *fpriv = file->driver_priv;
+ struct i915_drm_client *client = fpriv->client;
+ struct drm_i915_private *i915 = fpriv->i915;
+ struct drm_i915_gem_object *obj;
+ struct intel_memory_region *mr;
+ struct list_head *pos;
+ unsigned int id;
+
+ /* Public objects. */
+ spin_lock(&file->table_lock);
+ idr_for_each_entry(&file->object_idr, obj, id)
+ obj_meminfo(obj, stats);
+ spin_unlock(&file->table_lock);
+
+ /* Internal objects. */
+ rcu_read_lock();
+ list_for_each_rcu(pos, &client->objects_list) {
+ obj = i915_gem_object_get_rcu(list_entry(pos, typeof(*obj),
+ client_link));
+ if (!obj)
+ continue;
+ obj_meminfo(obj, stats);
+ i915_gem_object_put(obj);
+ }
+ rcu_read_unlock();
+
+ for_each_memory_region(mr, i915, id)
+ drm_print_memory_stats(p,
+ &stats[id],
+ DRM_GEM_OBJECT_RESIDENT |
+ DRM_GEM_OBJECT_PURGEABLE,
+ mr->name);
+}
+
static const char * const uabi_class_names[] = {
[I915_ENGINE_CLASS_RENDER] = "render",
[I915_ENGINE_CLASS_COPY] = "copy",
@@ -106,6 +189,8 @@ void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file)
* ******************************************************************
*/
+ show_meminfo(p, file);
+
if (GRAPHICS_VER(i915) < 8)
return;
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing
2023-07-27 10:13 ` [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing Tvrtko Ursulin
@ 2023-08-03 5:15 ` Iddamsetty, Aravind
2023-08-03 8:49 ` Tvrtko Ursulin
0 siblings, 1 reply; 19+ messages in thread
From: Iddamsetty, Aravind @ 2023-08-03 5:15 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx, dri-devel
On 27-07-2023 15:43, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Use the newly added drm_print_memory_stats helper to show memory
> utilisation of our objects in drm/driver specific fdinfo output.
>
> To collect the stats we walk the per memory regions object lists
> and accumulate object size into the respective drm_memory_stats
> categories.
>
> Objects with multiple possible placements are reported in multiple
> regions for total and shared sizes, while other categories are
> counted only for the currently active region.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
> Cc: Rob Clark <robdclark@gmail.com>> ---
> drivers/gpu/drm/i915/i915_drm_client.c | 85 ++++++++++++++++++++++++++
> 1 file changed, 85 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
> index a61356012df8..9e7a6075ee25 100644
> --- a/drivers/gpu/drm/i915/i915_drm_client.c
> +++ b/drivers/gpu/drm/i915/i915_drm_client.c
> @@ -45,6 +45,89 @@ void __i915_drm_client_free(struct kref *kref)
> }
>
> #ifdef CONFIG_PROC_FS
> +static void
> +obj_meminfo(struct drm_i915_gem_object *obj,
> + struct drm_memory_stats stats[INTEL_REGION_UNKNOWN])
> +{
> + struct intel_memory_region *mr;
> + u64 sz = obj->base.size;
> + enum intel_region_id id;
> + unsigned int i;
> +
> + /* Attribute size and shared to all possible memory regions. */
> + for (i = 0; i < obj->mm.n_placements; i++) {
> + mr = obj->mm.placements[i];
> + id = mr->id;
> +
> + if (obj->base.handle_count > 1)
> + stats[id].shared += sz;
> + else
> + stats[id].private += sz;
> + }
> +
> + /* Attribute other categories to only the current region. */
> + mr = obj->mm.region;
> + if (mr)
> + id = mr->id;
> + else
> + id = INTEL_REGION_SMEM;
> +
> + if (!obj->mm.n_placements) {
I guess we do not expect to have n_placements set to public objects, is
that right?
Thanks,
Aravind.
> + if (obj->base.handle_count > 1)
> + stats[id].shared += sz;
> + else
> + stats[id].private += sz;
> + }
> +
> + if (i915_gem_object_has_pages(obj)) {
> + stats[id].resident += sz;
> +
> + if (!dma_resv_test_signaled(obj->base.resv,
> + dma_resv_usage_rw(true)))
> + stats[id].active += sz;
> + else if (i915_gem_object_is_shrinkable(obj) &&
> + obj->mm.madv == I915_MADV_DONTNEED)
> + stats[id].purgeable += sz;
> + }
> +}
> +
> +static void show_meminfo(struct drm_printer *p, struct drm_file *file)
> +{
> + struct drm_memory_stats stats[INTEL_REGION_UNKNOWN] = {};
> + struct drm_i915_file_private *fpriv = file->driver_priv;
> + struct i915_drm_client *client = fpriv->client;
> + struct drm_i915_private *i915 = fpriv->i915;
> + struct drm_i915_gem_object *obj;
> + struct intel_memory_region *mr;
> + struct list_head *pos;
> + unsigned int id;
> +
> + /* Public objects. */
> + spin_lock(&file->table_lock);
> + idr_for_each_entry(&file->object_idr, obj, id)
> + obj_meminfo(obj, stats);
> + spin_unlock(&file->table_lock);
> +
> + /* Internal objects. */
> + rcu_read_lock();
> + list_for_each_rcu(pos, &client->objects_list) {
> + obj = i915_gem_object_get_rcu(list_entry(pos, typeof(*obj),
> + client_link));
> + if (!obj)
> + continue;
> + obj_meminfo(obj, stats);
> + i915_gem_object_put(obj);
> + }
> + rcu_read_unlock();
> +
> + for_each_memory_region(mr, i915, id)
> + drm_print_memory_stats(p,
> + &stats[id],
> + DRM_GEM_OBJECT_RESIDENT |
> + DRM_GEM_OBJECT_PURGEABLE,
> + mr->name);
> +}
> +
> static const char * const uabi_class_names[] = {
> [I915_ENGINE_CLASS_RENDER] = "render",
> [I915_ENGINE_CLASS_COPY] = "copy",
> @@ -106,6 +189,8 @@ void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file)
> * ******************************************************************
> */
>
> + show_meminfo(p, file);
> +
> if (GRAPHICS_VER(i915) < 8)
> return;
>
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing
2023-08-03 5:15 ` Iddamsetty, Aravind
@ 2023-08-03 8:49 ` Tvrtko Ursulin
2023-08-09 4:33 ` Iddamsetty, Aravind
0 siblings, 1 reply; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-08-03 8:49 UTC (permalink / raw)
To: Iddamsetty, Aravind, Intel-gfx, dri-devel
On 03/08/2023 06:15, Iddamsetty, Aravind wrote:
> On 27-07-2023 15:43, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> Use the newly added drm_print_memory_stats helper to show memory
>> utilisation of our objects in drm/driver specific fdinfo output.
>>
>> To collect the stats we walk the per memory regions object lists
>> and accumulate object size into the respective drm_memory_stats
>> categories.
>>
>> Objects with multiple possible placements are reported in multiple
>> regions for total and shared sizes, while other categories are
>> counted only for the currently active region.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
>> Cc: Rob Clark <robdclark@gmail.com>> ---
>> drivers/gpu/drm/i915/i915_drm_client.c | 85 ++++++++++++++++++++++++++
>> 1 file changed, 85 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
>> index a61356012df8..9e7a6075ee25 100644
>> --- a/drivers/gpu/drm/i915/i915_drm_client.c
>> +++ b/drivers/gpu/drm/i915/i915_drm_client.c
>> @@ -45,6 +45,89 @@ void __i915_drm_client_free(struct kref *kref)
>> }
>>
>> #ifdef CONFIG_PROC_FS
>> +static void
>> +obj_meminfo(struct drm_i915_gem_object *obj,
>> + struct drm_memory_stats stats[INTEL_REGION_UNKNOWN])
>> +{
>> + struct intel_memory_region *mr;
>> + u64 sz = obj->base.size;
>> + enum intel_region_id id;
>> + unsigned int i;
>> +
>> + /* Attribute size and shared to all possible memory regions. */
>> + for (i = 0; i < obj->mm.n_placements; i++) {
>> + mr = obj->mm.placements[i];
>> + id = mr->id;
>> +
>> + if (obj->base.handle_count > 1)
>> + stats[id].shared += sz;
>> + else
>> + stats[id].private += sz;
>> + }
>> +
>> + /* Attribute other categories to only the current region. */
>> + mr = obj->mm.region;
>> + if (mr)
>> + id = mr->id;
>> + else
>> + id = INTEL_REGION_SMEM;
>> +
>> + if (!obj->mm.n_placements) {
>
> I guess we do not expect to have n_placements set to public objects, is
> that right?
I think they are the only ones which can have placements. It is via
I915_GEM_CREATE_EXT_MEMORY_REGIONS userspace is able to create them.
My main conundrum in this patch is a few lines above, the loop which
adds shared and private.
Question is, if an object can be either smem or lmem, how do we want to
report it? This patch adds the size for all possible regions and
resident and active only to the currently active. But perhaps that is
wrong. Maybe I should change it is only against the active region and
multiple regions are just ignored. Then if object is migrated do access
patterns or memory pressure, the total size would migrate too.
I think I was trying to achieve something here (have more visibility on
what kind of backing store clients are allocating) which maybe does not
work to well with the current categories.
Namely if userspace allocates say one 1MiB object with placement in
either smem or lmem, and it is currently resident in lmem, I wanted it
to show as:
total-smem: 1 MiB
resident-smem: 0
total-lmem: 1 MiB
resident-lmem: 1 MiB
To constantly show how in theory client could be using memory from
either region. Maybe that is misleading and should instead be:
total-smem: 0
resident-smem: 0
total-lmem: 1 MiB
resident-lmem: 1 MiB
?
And then if/when the same object gets migrated to smem it changes to
(lets assume it is also not resident any more but got swapped out):
total-smem: 1 MiB
resident-smem: 0
total-lmem: 0
resident-lmem: 0
Regards,
Tvrtko
>> + if (obj->base.handle_count > 1)
>> + stats[id].shared += sz;
>> + else
>> + stats[id].private += sz;
>> + }
>> +
>> + if (i915_gem_object_has_pages(obj)) {
>> + stats[id].resident += sz;
>> +
>> + if (!dma_resv_test_signaled(obj->base.resv,
>> + dma_resv_usage_rw(true)))
>> + stats[id].active += sz;
>> + else if (i915_gem_object_is_shrinkable(obj) &&
>> + obj->mm.madv == I915_MADV_DONTNEED)
>> + stats[id].purgeable += sz;
>> + }
>> +}
>> +
>> +static void show_meminfo(struct drm_printer *p, struct drm_file *file)
>> +{
>> + struct drm_memory_stats stats[INTEL_REGION_UNKNOWN] = {};
>> + struct drm_i915_file_private *fpriv = file->driver_priv;
>> + struct i915_drm_client *client = fpriv->client;
>> + struct drm_i915_private *i915 = fpriv->i915;
>> + struct drm_i915_gem_object *obj;
>> + struct intel_memory_region *mr;
>> + struct list_head *pos;
>> + unsigned int id;
>> +
>> + /* Public objects. */
>> + spin_lock(&file->table_lock);
>> + idr_for_each_entry(&file->object_idr, obj, id)
>> + obj_meminfo(obj, stats);
>> + spin_unlock(&file->table_lock);
>> +
>> + /* Internal objects. */
>> + rcu_read_lock();
>> + list_for_each_rcu(pos, &client->objects_list) {
>> + obj = i915_gem_object_get_rcu(list_entry(pos, typeof(*obj),
>> + client_link));
>> + if (!obj)
>> + continue;
>> + obj_meminfo(obj, stats);
>> + i915_gem_object_put(obj);
>> + }
>> + rcu_read_unlock();
>> +
>> + for_each_memory_region(mr, i915, id)
>> + drm_print_memory_stats(p,
>> + &stats[id],
>> + DRM_GEM_OBJECT_RESIDENT |
>> + DRM_GEM_OBJECT_PURGEABLE,
>> + mr->name);
>> +}
>> +
>> static const char * const uabi_class_names[] = {
>> [I915_ENGINE_CLASS_RENDER] = "render",
>> [I915_ENGINE_CLASS_COPY] = "copy",
>> @@ -106,6 +189,8 @@ void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file)
>> * ******************************************************************
>> */
>>
>> + show_meminfo(p, file);
>> +
>> if (GRAPHICS_VER(i915) < 8)
>> return;
>>
>
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing
2023-08-03 8:49 ` Tvrtko Ursulin
@ 2023-08-09 4:33 ` Iddamsetty, Aravind
0 siblings, 0 replies; 19+ messages in thread
From: Iddamsetty, Aravind @ 2023-08-09 4:33 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx, dri-devel
On 03-08-2023 14:19, Tvrtko Ursulin wrote:
>
> On 03/08/2023 06:15, Iddamsetty, Aravind wrote:
>> On 27-07-2023 15:43, Tvrtko Ursulin wrote:
>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>
>>> Use the newly added drm_print_memory_stats helper to show memory
>>> utilisation of our objects in drm/driver specific fdinfo output.
>>>
>>> To collect the stats we walk the per memory regions object lists
>>> and accumulate object size into the respective drm_memory_stats
>>> categories.
>>>
>>> Objects with multiple possible placements are reported in multiple
>>> regions for total and shared sizes, while other categories are
>>> counted only for the currently active region.
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>> Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
>>> Cc: Rob Clark <robdclark@gmail.com>> ---
>>> drivers/gpu/drm/i915/i915_drm_client.c | 85 ++++++++++++++++++++++++++
>>> 1 file changed, 85 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_drm_client.c
>>> b/drivers/gpu/drm/i915/i915_drm_client.c
>>> index a61356012df8..9e7a6075ee25 100644
>>> --- a/drivers/gpu/drm/i915/i915_drm_client.c
>>> +++ b/drivers/gpu/drm/i915/i915_drm_client.c
>>> @@ -45,6 +45,89 @@ void __i915_drm_client_free(struct kref *kref)
>>> }
>>> #ifdef CONFIG_PROC_FS
>>> +static void
>>> +obj_meminfo(struct drm_i915_gem_object *obj,
>>> + struct drm_memory_stats stats[INTEL_REGION_UNKNOWN])
>>> +{
>>> + struct intel_memory_region *mr;
>>> + u64 sz = obj->base.size;
>>> + enum intel_region_id id;
>>> + unsigned int i;
>>> +
>>> + /* Attribute size and shared to all possible memory regions. */
>>> + for (i = 0; i < obj->mm.n_placements; i++) {
>>> + mr = obj->mm.placements[i];
>>> + id = mr->id;
>>> +
>>> + if (obj->base.handle_count > 1)
>>> + stats[id].shared += sz;
>>> + else
>>> + stats[id].private += sz;
>>> + }
>>> +
>>> + /* Attribute other categories to only the current region. */
>>> + mr = obj->mm.region;
>>> + if (mr)
>>> + id = mr->id;
>>> + else
>>> + id = INTEL_REGION_SMEM;
>>> +
>>> + if (!obj->mm.n_placements) {
>>
>> I guess we do not expect to have n_placements set to public objects, is
>> that right?
>
> I think they are the only ones which can have placements. It is via
> I915_GEM_CREATE_EXT_MEMORY_REGIONS userspace is able to create them.
>
> My main conundrum in this patch is a few lines above, the loop which
> adds shared and private.
>
> Question is, if an object can be either smem or lmem, how do we want to
> report it? This patch adds the size for all possible regions and
> resident and active only to the currently active. But perhaps that is
> wrong. Maybe I should change it is only against the active region and
> multiple regions are just ignored. Then if object is migrated do access
> patterns or memory pressure, the total size would migrate too.
>
> I think I was trying to achieve something here (have more visibility on
> what kind of backing store clients are allocating) which maybe does not
> work to well with the current categories.
>
> Namely if userspace allocates say one 1MiB object with placement in
> either smem or lmem, and it is currently resident in lmem, I wanted it
> to show as:
>
> total-smem: 1 MiB
> resident-smem: 0
> total-lmem: 1 MiB
> resident-lmem: 1 MiB
>
> To constantly show how in theory client could be using memory from
> either region. Maybe that is misleading and should instead be:
>
> total-smem: 0
> resident-smem: 0
> total-lmem: 1 MiB
> resident-lmem: 1 MiB
>
> ?
I think the current implementation will not match with the memregion
info in query ioctl as well. While what you say is true I'm not sure if
there can be a client who is tracking the allocation say for an obj who
has 2 placements LMEM and SMEM, and might assume since I had made a
reservation in SMEM it shall not fail when i try to migrate there later.
Thanks,
Aravind.
>
> And then if/when the same object gets migrated to smem it changes to
> (lets assume it is also not resident any more but got swapped out):
>
> total-smem: 1 MiB
> resident-smem: 0
> total-lmem: 0
> resident-lmem: 0
>
> Regards,
>
> Tvrtko
>
>>> + if (obj->base.handle_count > 1)
>>> + stats[id].shared += sz;
>>> + else
>>> + stats[id].private += sz;
>>> + }
>>> +
>>> + if (i915_gem_object_has_pages(obj)) {
>>> + stats[id].resident += sz;
>>> +
>>> + if (!dma_resv_test_signaled(obj->base.resv,
>>> + dma_resv_usage_rw(true)))
>>> + stats[id].active += sz;
>>> + else if (i915_gem_object_is_shrinkable(obj) &&
>>> + obj->mm.madv == I915_MADV_DONTNEED)
>>> + stats[id].purgeable += sz;
>>> + }
>>> +}
>>> +
>>> +static void show_meminfo(struct drm_printer *p, struct drm_file *file)
>>> +{
>>> + struct drm_memory_stats stats[INTEL_REGION_UNKNOWN] = {};
>>> + struct drm_i915_file_private *fpriv = file->driver_priv;
>>> + struct i915_drm_client *client = fpriv->client;
>>> + struct drm_i915_private *i915 = fpriv->i915;
>>> + struct drm_i915_gem_object *obj;
>>> + struct intel_memory_region *mr;
>>> + struct list_head *pos;
>>> + unsigned int id;
>>> +
>>> + /* Public objects. */
>>> + spin_lock(&file->table_lock);
>>> + idr_for_each_entry(&file->object_idr, obj, id)
>>> + obj_meminfo(obj, stats);
>>> + spin_unlock(&file->table_lock);
>>> +
>>> + /* Internal objects. */
>>> + rcu_read_lock();
>>> + list_for_each_rcu(pos, &client->objects_list) {
>>> + obj = i915_gem_object_get_rcu(list_entry(pos, typeof(*obj),
>>> + client_link));
>>> + if (!obj)
>>> + continue;
>>> + obj_meminfo(obj, stats);
>>> + i915_gem_object_put(obj);
>>> + }
>>> + rcu_read_unlock();
>>> +
>>> + for_each_memory_region(mr, i915, id)
>>> + drm_print_memory_stats(p,
>>> + &stats[id],
>>> + DRM_GEM_OBJECT_RESIDENT |
>>> + DRM_GEM_OBJECT_PURGEABLE,
>>> + mr->name);
>>> +}
>>> +
>>> static const char * const uabi_class_names[] = {
>>> [I915_ENGINE_CLASS_RENDER] = "render",
>>> [I915_ENGINE_CLASS_COPY] = "copy",
>>> @@ -106,6 +189,8 @@ void i915_drm_client_fdinfo(struct drm_printer
>>> *p, struct drm_file *file)
>>> *
>>> ******************************************************************
>>> */
>>> + show_meminfo(p, file);
>>> +
>>> if (GRAPHICS_VER(i915) < 8)
>>> return;
>>>
>>
>>
>>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for fdinfo memory stats (rev5)
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (4 preceding siblings ...)
2023-07-27 10:13 ` [Intel-gfx] [PATCH 5/5] drm/i915: Implement fdinfo memory stats printing Tvrtko Ursulin
@ 2023-07-27 11:17 ` Patchwork
2023-07-27 11:40 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
` (3 subsequent siblings)
9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-27 11:17 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
== Series Details ==
Series: fdinfo memory stats (rev5)
URL : https://patchwork.freedesktop.org/series/119082/
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] 19+ messages in thread* [Intel-gfx] ✗ Fi.CI.BAT: failure for fdinfo memory stats (rev5)
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (5 preceding siblings ...)
2023-07-27 11:17 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for fdinfo memory stats (rev5) Patchwork
@ 2023-07-27 11:40 ` Patchwork
2023-07-27 12:58 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for fdinfo memory stats (rev6) Patchwork
` (2 subsequent siblings)
9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-27 11:40 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 12825 bytes --]
== Series Details ==
Series: fdinfo memory stats (rev5)
URL : https://patchwork.freedesktop.org/series/119082/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_13428 -> Patchwork_119082v5
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_119082v5 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_119082v5, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/index.html
Participating hosts (42 -> 42)
------------------------------
Additional (1): fi-kbl-soraka
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_119082v5:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_fence@basic-await:
- fi-kbl-soraka: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-soraka/igt@gem_exec_fence@basic-await.html
Known issues
------------
Here are the changes found in Patchwork_119082v5 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-skl-guc: [PASS][4] -> [FAIL][5] ([i915#7940])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/fi-skl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-skl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@basic-rte:
- fi-kbl-7567u: [PASS][6] -> [FAIL][7] ([i915#7940])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/fi-kbl-7567u/igt@i915_pm_rpm@basic-rte.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-7567u/igt@i915_pm_rpm@basic-rte.html
* igt@i915_pm_rpm@module-reload:
- fi-tgl-1115g4: [PASS][8] -> [FAIL][9] ([i915#7940])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][10] ([i915#5334] / [i915#7872])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_mocs:
- bat-mtlp-6: [PASS][11] -> [DMESG-FAIL][12] ([i915#7059])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html
* igt@i915_selftest@live@gt_pm:
- bat-rpls-2: [PASS][13] -> [DMESG-FAIL][14] ([i915#4258] / [i915#7913])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][15] ([i915#1886] / [i915#7913])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@mman:
- bat-rpls-2: [PASS][16] -> [TIMEOUT][17] ([i915#6794] / [i915#7392])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-rpls-2/igt@i915_selftest@live@mman.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-rpls-2/igt@i915_selftest@live@mman.html
* igt@i915_selftest@live@requests:
- bat-mtlp-8: [PASS][18] -> [DMESG-FAIL][19] ([i915#8497])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-mtlp-8/igt@i915_selftest@live@requests.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-8/igt@i915_selftest@live@requests.html
* igt@i915_selftest@live@slpc:
- bat-mtlp-6: NOTRUN -> [DMESG-WARN][20] ([i915#6367])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-6/igt@i915_selftest@live@slpc.html
- bat-mtlp-8: [PASS][21] -> [DMESG-WARN][22] ([i915#6367])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-mtlp-8/igt@i915_selftest@live@slpc.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-8/igt@i915_selftest@live@slpc.html
* igt@i915_suspend@basic-s2idle-without-i915:
- bat-rpls-2: [PASS][23] -> [WARN][24] ([i915#8747])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-mtlp-6: NOTRUN -> [SKIP][25] ([i915#6645])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-6/igt@i915_suspend@basic-s3-without-i915.html
- bat-rpls-2: [PASS][26] -> [ABORT][27] ([i915#6687] / [i915#7978] / [i915#8668])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-rpls-2/igt@i915_suspend@basic-s3-without-i915.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-rpls-2/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-mtlp-6: NOTRUN -> [SKIP][28] ([i915#7828])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-6/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-jsl-3: NOTRUN -> [SKIP][29] ([i915#7828])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-jsl-3/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-kbl-soraka: NOTRUN -> [SKIP][30] ([fdo#109271]) +15 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-soraka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- bat-mtlp-6: NOTRUN -> [SKIP][31] ([i915#1845] / [i915#4078])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-6/igt@kms_pipe_crc_basic@suspend-read-crc.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s0@smem:
- bat-jsl-3: [ABORT][32] ([i915#5122]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-jsl-3/igt@gem_exec_suspend@basic-s0@smem.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-jsl-3/igt@gem_exec_suspend@basic-s0@smem.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-kbl-7567u: [FAIL][34] ([i915#7940]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/fi-kbl-7567u/igt@i915_pm_rpm@basic-pci-d3-state.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-7567u/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@module-reload:
- fi-rkl-11600: [FAIL][36] ([i915#7940]) -> [PASS][37]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/fi-rkl-11600/igt@i915_pm_rpm@module-reload.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-rkl-11600/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@requests:
- bat-mtlp-6: [ABORT][38] ([i915#7982]) -> [PASS][39]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-mtlp-6/igt@i915_selftest@live@requests.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-mtlp-6/igt@i915_selftest@live@requests.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-jsl-3: [FAIL][40] ([fdo#103375]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-jsl-3/igt@i915_suspend@basic-s3-without-i915.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-jsl-3/igt@i915_suspend@basic-s3-without-i915.html
#### Warnings ####
* igt@i915_module_load@load:
- bat-adlp-11: [DMESG-WARN][42] ([i915#4423]) -> [ABORT][43] ([i915#4423])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-adlp-11/igt@i915_module_load@load.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-adlp-11/igt@i915_module_load@load.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-kbl-guc: [FAIL][44] ([i915#7940]) -> [SKIP][45] ([fdo#109271])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@kms_psr@sprite_plane_onoff:
- bat-rplp-1: [SKIP][46] ([i915#1072]) -> [ABORT][47] ([i915#8442] / [i915#8668] / [i915#8712])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13428/bat-rplp-1/igt@kms_psr@sprite_plane_onoff.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/bat-rplp-1/igt@kms_psr@sprite_plane_onoff.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794
[i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
[i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
[i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
[i915#7982]: https://gitlab.freedesktop.org/drm/intel/issues/7982
[i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442
[i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#8712]: https://gitlab.freedesktop.org/drm/intel/issues/8712
[i915#8747]: https://gitlab.freedesktop.org/drm/intel/issues/8747
Build changes
-------------
* Linux: CI_DRM_13428 -> Patchwork_119082v5
CI-20190529: 20190529
CI_DRM_13428: 1036a46bae0dbc18cb230ae683ab7b7738314846 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7405: 6745761cb6050514a12aac973d02aeccdff06255 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_119082v5: 1036a46bae0dbc18cb230ae683ab7b7738314846 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
6277fe003e01 drm/i915: Implement fdinfo memory stats printing
2198a1f36488 drm/i915: Account ring buffer and context state storage
162bb7c725e6 drm/i915: Track page table backing store usage
a58e834b0267 drm/i915: Record which client owns a VM
ac9597776cca drm/i915: Add ability for tracking buffer objects per client
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v5/index.html
[-- Attachment #2: Type: text/html, Size: 15031 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for fdinfo memory stats (rev6)
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (6 preceding siblings ...)
2023-07-27 11:40 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
@ 2023-07-27 12:58 ` Patchwork
2023-07-27 13:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-07-27 15:30 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-27 12:58 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
== Series Details ==
Series: fdinfo memory stats (rev6)
URL : https://patchwork.freedesktop.org/series/119082/
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] 19+ messages in thread* [Intel-gfx] ✓ Fi.CI.BAT: success for fdinfo memory stats (rev6)
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (7 preceding siblings ...)
2023-07-27 12:58 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for fdinfo memory stats (rev6) Patchwork
@ 2023-07-27 13:16 ` Patchwork
2023-07-27 15:30 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-27 13:16 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 9800 bytes --]
== Series Details ==
Series: fdinfo memory stats (rev6)
URL : https://patchwork.freedesktop.org/series/119082/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13429 -> Patchwork_119082v6
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/index.html
Participating hosts (42 -> 42)
------------------------------
Additional (1): fi-kbl-soraka
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_119082v6 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-tgl-1115g4: [PASS][3] -> [FAIL][4] ([i915#7940]) +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-tgl-1115g4/igt@i915_pm_rpm@basic-pci-d3-state.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-tgl-1115g4/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@basic-rte:
- fi-cfl-8109u: [PASS][5] -> [FAIL][6] ([i915#7940])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-cfl-8109u/igt@i915_pm_rpm@basic-rte.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-cfl-8109u/igt@i915_pm_rpm@basic-rte.html
- fi-cfl-8700k: [PASS][7] -> [FAIL][8] ([i915#7940])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-cfl-8700k/igt@i915_pm_rpm@basic-rte.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-cfl-8700k/igt@i915_pm_rpm@basic-rte.html
* igt@i915_pm_rpm@module-reload:
- fi-rkl-11600: [PASS][9] -> [FAIL][10] ([i915#7940])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-rkl-11600/igt@i915_pm_rpm@module-reload.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-rkl-11600/igt@i915_pm_rpm@module-reload.html
- fi-kbl-7567u: [PASS][11] -> [FAIL][12] ([i915#7940])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
- fi-skl-guc: [PASS][13] -> [FAIL][14] ([i915#7940])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-skl-guc/igt@i915_pm_rpm@module-reload.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-skl-guc/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [PASS][15] -> [DMESG-FAIL][16] ([i915#5334])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][17] ([i915#5334] / [i915#7872])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_mocs:
- bat-mtlp-6: [PASS][18] -> [DMESG-FAIL][19] ([i915#7059])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html
* igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][20] ([i915#1886] / [i915#7913])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@guc:
- bat-rpls-1: [PASS][21] -> [DMESG-WARN][22] ([i915#7852])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/bat-rpls-1/igt@i915_selftest@live@guc.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rpls-1/igt@i915_selftest@live@guc.html
* igt@i915_selftest@live@slpc:
- bat-rpls-2: NOTRUN -> [DMESG-WARN][23] ([i915#6367])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rpls-2/igt@i915_selftest@live@slpc.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- fi-cfl-8700k: NOTRUN -> [SKIP][24] ([fdo#109271])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-cfl-8700k/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-kbl-soraka: NOTRUN -> [SKIP][25] ([fdo#109271]) +15 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-kbl-soraka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_psr@primary_mmap_gtt:
- bat-rplp-1: NOTRUN -> [SKIP][26] ([i915#1072]) +1 similar issue
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-rplp-1: NOTRUN -> [ABORT][27] ([i915#8260] / [i915#8668])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rplp-1/igt@kms_setmode@basic-clone-single-crtc.html
#### Possible fixes ####
* igt@i915_pm_rpm@basic-rte:
- fi-cfl-guc: [FAIL][28] ([i915#7940]) -> [PASS][29]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-cfl-guc/igt@i915_pm_rpm@basic-rte.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-cfl-guc/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@mman:
- bat-rpls-2: [TIMEOUT][30] ([i915#6794] / [i915#7392]) -> [PASS][31]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/bat-rpls-2/igt@i915_selftest@live@mman.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rpls-2/igt@i915_selftest@live@mman.html
* igt@i915_suspend@basic-s2idle-without-i915:
- bat-rpls-2: [WARN][32] ([i915#8747]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html
- fi-cfl-8700k: [ABORT][34] ([i915#8213] / [i915#8299]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/fi-cfl-8700k/igt@i915_suspend@basic-s2idle-without-i915.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/fi-cfl-8700k/igt@i915_suspend@basic-s2idle-without-i915.html
#### Warnings ####
* igt@kms_psr@cursor_plane_move:
- bat-rplp-1: [ABORT][36] ([i915#8434]) -> [SKIP][37] ([i915#1072])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/bat-rplp-1/igt@kms_psr@cursor_plane_move.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/bat-rplp-1/igt@kms_psr@cursor_plane_move.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#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794
[i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
[i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
[i915#7852]: https://gitlab.freedesktop.org/drm/intel/issues/7852
[i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8260]: https://gitlab.freedesktop.org/drm/intel/issues/8260
[i915#8299]: https://gitlab.freedesktop.org/drm/intel/issues/8299
[i915#8434]: https://gitlab.freedesktop.org/drm/intel/issues/8434
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#8747]: https://gitlab.freedesktop.org/drm/intel/issues/8747
Build changes
-------------
* Linux: CI_DRM_13429 -> Patchwork_119082v6
CI-20190529: 20190529
CI_DRM_13429: 33df967bea080e1c7e5248bc1d16b88fa29f817a @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7405: 6745761cb6050514a12aac973d02aeccdff06255 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_119082v6: 33df967bea080e1c7e5248bc1d16b88fa29f817a @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
e82e46351b99 drm/i915: Implement fdinfo memory stats printing
a2d4abe03196 drm/i915: Account ring buffer and context state storage
71f3fcb2e670 drm/i915: Track page table backing store usage
894b900f3e24 drm/i915: Record which client owns a VM
57daabaa2f10 drm/i915: Add ability for tracking buffer objects per client
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/index.html
[-- Attachment #2: Type: text/html, Size: 11701 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread* [Intel-gfx] ✓ Fi.CI.IGT: success for fdinfo memory stats (rev6)
2023-07-27 10:13 [Intel-gfx] [PATCH v6 0/5] fdinfo memory stats Tvrtko Ursulin
` (8 preceding siblings ...)
2023-07-27 13:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-07-27 15:30 ` Patchwork
9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-07-27 15:30 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 48351 bytes --]
== Series Details ==
Series: fdinfo memory stats (rev6)
URL : https://patchwork.freedesktop.org/series/119082/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13429_full -> Patchwork_119082v6_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in Patchwork_119082v6_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@drm_fdinfo@busy-hang@rcs0:
- shard-mtlp: NOTRUN -> [SKIP][1] ([i915#8414]) +11 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@drm_fdinfo@busy-hang@rcs0.html
* igt@drm_fdinfo@isolation@bcs0:
- shard-dg2: NOTRUN -> [SKIP][2] ([i915#8414]) +9 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@drm_fdinfo@isolation@bcs0.html
* igt@feature_discovery@chamelium:
- shard-dg2: NOTRUN -> [SKIP][3] ([i915#4854])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@feature_discovery@chamelium.html
* igt@gem_ccs@ctrl-surf-copy:
- shard-mtlp: NOTRUN -> [SKIP][4] ([i915#5325])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_ctx_exec@basic-nohangcheck:
- shard-tglu: [PASS][5] -> [FAIL][6] ([i915#6268])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-tglu-9/igt@gem_ctx_exec@basic-nohangcheck.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-tglu-9/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_ctx_persistence@engines-queued:
- shard-snb: NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1099]) +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-snb6/igt@gem_ctx_persistence@engines-queued.html
* igt@gem_ctx_persistence@heartbeat-hostile:
- shard-mtlp: NOTRUN -> [SKIP][8] ([i915#8555])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_ctx_persistence@heartbeat-hostile.html
* igt@gem_eio@hibernate:
- shard-dg2: NOTRUN -> [ABORT][9] ([i915#7975] / [i915#8213])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_eio@hibernate.html
* igt@gem_eio@kms:
- shard-apl: [PASS][10] -> [FAIL][11] ([i915#8764])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-apl2/igt@gem_eio@kms.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-apl7/igt@gem_eio@kms.html
* igt@gem_exec_balancer@hog:
- shard-dg2: NOTRUN -> [SKIP][12] ([i915#4812])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_exec_balancer@hog.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-mtlp: NOTRUN -> [SKIP][13] ([i915#4036])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-7/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_balancer@noheartbeat:
- shard-dg2: NOTRUN -> [SKIP][14] ([i915#8555]) +1 similar issue
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_exec_balancer@noheartbeat.html
* igt@gem_exec_endless@dispatch@vecs0:
- shard-tglu: [PASS][15] -> [TIMEOUT][16] ([i915#3778])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-tglu-2/igt@gem_exec_endless@dispatch@vecs0.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-tglu-2/igt@gem_exec_endless@dispatch@vecs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglu: [PASS][17] -> [FAIL][18] ([i915#2842])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-tglu-10/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-rkl: [PASS][19] -> [FAIL][20] ([i915#2842]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-rkl-6/igt@gem_exec_fair@basic-throttle@rcs0.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-2/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_exec_fence@submit67:
- shard-mtlp: NOTRUN -> [SKIP][21] ([i915#4812])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_exec_fence@submit67.html
* igt@gem_exec_reloc@basic-cpu-read:
- shard-dg1: NOTRUN -> [SKIP][22] ([i915#3281])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@gem_exec_reloc@basic-cpu-read.html
* igt@gem_exec_reloc@basic-range:
- shard-mtlp: NOTRUN -> [SKIP][23] ([i915#3281]) +2 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_exec_reloc@basic-range.html
* igt@gem_exec_reloc@basic-write-wc:
- shard-dg2: NOTRUN -> [SKIP][24] ([i915#3281]) +2 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_exec_reloc@basic-write-wc.html
* igt@gem_exec_suspend@basic-s3@lmem0:
- shard-dg2: [PASS][25] -> [FAIL][26] ([fdo#103375]) +2 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-8/igt@gem_exec_suspend@basic-s3@lmem0.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-5/igt@gem_exec_suspend@basic-s3@lmem0.html
* igt@gem_exec_suspend@basic-s4-devices@lmem0:
- shard-dg1: [PASS][27] -> [ABORT][28] ([i915#7975] / [i915#8213])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-15/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-14/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
* igt@gem_lmem_swapping@verify:
- shard-mtlp: NOTRUN -> [SKIP][29] ([i915#4613])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_lmem_swapping@verify.html
* igt@gem_mmap_gtt@fault-concurrent-x:
- shard-dg1: NOTRUN -> [SKIP][30] ([i915#4077])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@gem_mmap_gtt@fault-concurrent-x.html
* igt@gem_mmap_gtt@medium-copy-xy:
- shard-mtlp: NOTRUN -> [SKIP][31] ([i915#4077]) +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_mmap_gtt@medium-copy-xy.html
* igt@gem_mmap_wc@copy:
- shard-dg2: NOTRUN -> [SKIP][32] ([i915#4083]) +2 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_mmap_wc@copy.html
* igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
- shard-mtlp: NOTRUN -> [SKIP][33] ([i915#4270])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html
* igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
- shard-mtlp: NOTRUN -> [SKIP][34] ([i915#8428])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html
* igt@gem_softpin@evict-snoop:
- shard-dg2: NOTRUN -> [SKIP][35] ([i915#4885])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_softpin@evict-snoop.html
* igt@gem_tiled_wb:
- shard-dg2: NOTRUN -> [SKIP][36] ([i915#4077]) +1 similar issue
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gem_tiled_wb.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-mtlp: NOTRUN -> [SKIP][37] ([i915#3282])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-8/igt@gem_userptr_blits@forbidden-operations.html
* igt@gen7_exec_parse@basic-allowed:
- shard-dg2: NOTRUN -> [SKIP][38] ([fdo#109289])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@gen7_exec_parse@basic-allowed.html
* igt@gen9_exec_parse@allowed-all:
- shard-apl: [PASS][39] -> [ABORT][40] ([i915#5566]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-apl2/igt@gen9_exec_parse@allowed-all.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-apl7/igt@gen9_exec_parse@allowed-all.html
* igt@gen9_exec_parse@allowed-single:
- shard-mtlp: NOTRUN -> [SKIP][41] ([i915#2856])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gen9_exec_parse@allowed-single.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-mtlp: [PASS][42] -> [ABORT][43] ([i915#8489] / [i915#8668])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-5/igt@i915_module_load@reload-with-fault-injection.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-5/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_backlight@bad-brightness:
- shard-dg2: NOTRUN -> [SKIP][44] ([i915#5354] / [i915#7561])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@i915_pm_backlight@bad-brightness.html
* igt@i915_pm_dc@dc6-dpms:
- shard-tglu: [PASS][45] -> [FAIL][46] ([i915#3989] / [i915#454])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-tglu-2/igt@i915_pm_dc@dc6-dpms.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-tglu-3/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_rc6_residency@rc6-accuracy:
- shard-dg2: [PASS][47] -> [FAIL][48] ([i915#8230])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-8/igt@i915_pm_rc6_residency@rc6-accuracy.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-5/igt@i915_pm_rc6_residency@rc6-accuracy.html
* igt@i915_pm_rc6_residency@rc6-idle@vecs0:
- shard-dg1: [PASS][49] -> [FAIL][50] ([i915#3591])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html
* igt@i915_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg1: [PASS][51] -> [SKIP][52] ([i915#1397])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-19/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
* igt@i915_pm_rpm@dpms-non-lpsp:
- shard-dg2: [PASS][53] -> [SKIP][54] ([i915#1397]) +1 similar issue
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-5/igt@i915_pm_rpm@dpms-non-lpsp.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-10/igt@i915_pm_rpm@dpms-non-lpsp.html
* igt@i915_pm_rpm@gem-execbuf-stress-pc8:
- shard-dg2: NOTRUN -> [SKIP][55] ([fdo#109506])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
* igt@i915_pm_rpm@gem-execbuf-stress@smem0:
- shard-dg1: [PASS][56] -> [FAIL][57] ([i915#7940]) +2 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-19/igt@i915_pm_rpm@gem-execbuf-stress@smem0.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@i915_pm_rpm@gem-execbuf-stress@smem0.html
- shard-tglu: [PASS][58] -> [FAIL][59] ([i915#7940])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-tglu-5/igt@i915_pm_rpm@gem-execbuf-stress@smem0.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-tglu-8/igt@i915_pm_rpm@gem-execbuf-stress@smem0.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-rkl: [PASS][60] -> [SKIP][61] ([i915#1397]) +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-rkl-4/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@i915_pm_rps@min-max-config-idle:
- shard-mtlp: NOTRUN -> [SKIP][62] ([i915#6621])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@i915_pm_rps@min-max-config-idle.html
* igt@i915_pm_rps@reset:
- shard-snb: NOTRUN -> [INCOMPLETE][63] ([i915#7790])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-snb7/igt@i915_pm_rps@reset.html
* igt@i915_selftest@live@gt_heartbeat:
- shard-glk: [PASS][64] -> [DMESG-FAIL][65] ([i915#5334])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-glk9/igt@i915_selftest@live@gt_heartbeat.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-glk3/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_suspend@debugfs-reader:
- shard-snb: NOTRUN -> [DMESG-WARN][66] ([i915#8841])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-snb6/igt@i915_suspend@debugfs-reader.html
* igt@kms_async_flips@crc@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [FAIL][67] ([i915#8247]) +3 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-7/igt@kms_async_flips@crc@pipe-a-hdmi-a-3.html
* igt@kms_async_flips@crc@pipe-b-hdmi-a-1:
- shard-rkl: NOTRUN -> [FAIL][68] ([i915#8247]) +1 similar issue
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-7/igt@kms_async_flips@crc@pipe-b-hdmi-a-1.html
* igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-mtlp: NOTRUN -> [SKIP][69] ([i915#1769])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_atomic_transition@plane-all-modeset-transition.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-mtlp: [PASS][70] -> [FAIL][71] ([i915#3743]) +1 similar issue
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-mtlp: [PASS][72] -> [FAIL][73] ([i915#5138]) +2 similar issues
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][74] ([i915#3638])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-32bpp-rotate-270:
- shard-mtlp: NOTRUN -> [SKIP][75] ([fdo#111614])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-dg2: NOTRUN -> [SKIP][76] ([i915#5190]) +1 similar issue
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0:
- shard-mtlp: NOTRUN -> [SKIP][77] ([fdo#111615]) +1 similar issue
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-dg2: NOTRUN -> [SKIP][78] ([i915#4538] / [i915#5190])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_joiner@2x-modeset:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#2705])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_big_joiner@2x-modeset.html
* igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
- shard-dg2: NOTRUN -> [SKIP][80] ([i915#5354]) +9 similar issues
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-dg1: NOTRUN -> [SKIP][81] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs:
- shard-dg2: NOTRUN -> [SKIP][82] ([i915#3689] / [i915#5354]) +1 similar issue
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs.html
* igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_rc_ccs_cc:
- shard-mtlp: NOTRUN -> [SKIP][83] ([i915#3886] / [i915#6095]) +2 similar issues
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
- shard-dg2: NOTRUN -> [SKIP][84] ([i915#3689] / [i915#3886] / [i915#5354]) +3 similar issues
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-d-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-mtlp: NOTRUN -> [SKIP][85] ([i915#6095]) +8 similar issues
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-7/igt@kms_ccs@pipe-d-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-d-crc-primary-basic-4_tiled_mtl_rc_ccs:
- shard-dg1: NOTRUN -> [SKIP][86] ([i915#5354] / [i915#6095]) +1 similar issue
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_ccs@pipe-d-crc-primary-basic-4_tiled_mtl_rc_ccs.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#4087] / [i915#7213]) +3 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-7/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-mtlp: NOTRUN -> [SKIP][88] ([fdo#111827])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_chamelium_color@ctm-blue-to-red.html
* igt@kms_chamelium_color@degamma:
- shard-dg2: NOTRUN -> [SKIP][89] ([fdo#111827])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_hpd@vga-hpd:
- shard-mtlp: NOTRUN -> [SKIP][90] ([i915#7828])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_chamelium_hpd@vga-hpd.html
* igt@kms_chamelium_hpd@vga-hpd-without-ddc:
- shard-dg2: NOTRUN -> [SKIP][91] ([i915#7828])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html
* igt@kms_color@deep-color:
- shard-dg2: NOTRUN -> [SKIP][92] ([i915#3555]) +3 similar issues
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-3/igt@kms_color@deep-color.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-mtlp: NOTRUN -> [SKIP][93] ([i915#3299])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-dg2: NOTRUN -> [SKIP][94] ([i915#3299])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@lic@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [TIMEOUT][95] ([i915#7173])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-11/igt@kms_content_protection@lic@pipe-a-dp-4.html
* igt@kms_cursor_crc@cursor-offscreen-max-size:
- shard-dg1: NOTRUN -> [SKIP][96] ([i915#3555])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_cursor_crc@cursor-offscreen-max-size.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-mtlp: NOTRUN -> [SKIP][97] ([i915#3546])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [PASS][98] -> [FAIL][99] ([i915#2346])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_dsc@dsc-with-formats:
- shard-mtlp: NOTRUN -> [SKIP][100] ([i915#3840])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_dsc@dsc-with-formats.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-apl: [PASS][101] -> [ABORT][102] ([i915#180])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-apl6/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@2x-flip-vs-fences-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][103] ([i915#8381])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_flip@2x-flip-vs-fences-interruptible.html
* igt@kms_flip@2x-flip-vs-panning-interruptible:
- shard-dg2: NOTRUN -> [SKIP][104] ([fdo#109274])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_flip@2x-flip-vs-panning-interruptible.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][105] ([i915#3637]) +1 similar issue
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a1:
- shard-glk: [PASS][106] -> [FAIL][107] ([i915#79])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a1.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][108] ([i915#2672])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][109] ([i915#8708]) +6 similar issues
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][110] ([i915#8708]) +1 similar issue
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][111] ([i915#3458]) +2 similar issues
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][112] ([i915#8708]) +1 similar issue
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
- shard-mtlp: NOTRUN -> [SKIP][113] ([i915#1825]) +4 similar issues
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html
* igt@kms_hdmi_inject@inject-audio:
- shard-dg1: NOTRUN -> [SKIP][114] ([i915#433])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@static-toggle-dpms:
- shard-dg1: NOTRUN -> [SKIP][115] ([i915#3555] / [i915#8228])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_hdr@static-toggle-suspend:
- shard-dg2: NOTRUN -> [SKIP][116] ([i915#3555] / [i915#8228])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][117] ([i915#5176]) +23 similar issues
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-15/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-4.html
* igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][118] ([i915#5176]) +1 similar issue
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-4/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][119] ([i915#5176]) +3 similar issues
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-8/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-3.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][120] ([i915#5235]) +15 similar issues
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
- shard-snb: NOTRUN -> [SKIP][121] ([fdo#109271]) +179 similar issues
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-snb6/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][122] ([i915#5235]) +3 similar issues
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][123] ([i915#5235]) +11 similar issues
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d-hdmi-a-4.html
* igt@kms_psr@psr2_cursor_render:
- shard-dg2: NOTRUN -> [SKIP][124] ([i915#1072])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@kms_psr@psr2_cursor_render.html
* igt@kms_psr@psr2_primary_mmap_gtt:
- shard-dg1: NOTRUN -> [SKIP][125] ([i915#1072])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@kms_psr@psr2_primary_mmap_gtt.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-mtlp: NOTRUN -> [SKIP][126] ([i915#5289])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-mtlp: NOTRUN -> [SKIP][127] ([i915#8623])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@prime_udl:
- shard-mtlp: NOTRUN -> [SKIP][128] ([fdo#109291])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-7/igt@prime_udl.html
* igt@prime_vgem@basic-fence-read:
- shard-dg1: NOTRUN -> [SKIP][129] ([i915#3708])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@prime_vgem@basic-fence-read.html
* igt@v3d/v3d_get_param@base-params:
- shard-dg1: NOTRUN -> [SKIP][130] ([i915#2575]) +1 similar issue
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@v3d/v3d_get_param@base-params.html
* igt@v3d/v3d_submit_cl@valid-submission:
- shard-mtlp: NOTRUN -> [SKIP][131] ([i915#2575]) +4 similar issues
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@v3d/v3d_submit_cl@valid-submission.html
* igt@v3d/v3d_wait_bo@used-bo-0ns:
- shard-dg2: NOTRUN -> [SKIP][132] ([i915#2575]) +1 similar issue
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@v3d/v3d_wait_bo@used-bo-0ns.html
* igt@vc4/vc4_perfmon@get-values-invalid-perfmon:
- shard-dg2: NOTRUN -> [SKIP][133] ([i915#7711])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-2/igt@vc4/vc4_perfmon@get-values-invalid-perfmon.html
* igt@vc4/vc4_purgeable_bo@free-purged-bo:
- shard-mtlp: NOTRUN -> [SKIP][134] ([i915#7711]) +1 similar issue
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@vc4/vc4_purgeable_bo@free-purged-bo.html
* igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged:
- shard-dg1: NOTRUN -> [SKIP][135] ([i915#7711])
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-18/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged.html
#### Possible fixes ####
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-rkl: [FAIL][136] ([i915#2842]) -> [PASS][137] +2 similar issues
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-rkl-1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_exec_whisper@basic-contexts-priority-all:
- shard-mtlp: [ABORT][138] ([i915#8131]) -> [PASS][139]
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-3/igt@gem_exec_whisper@basic-contexts-priority-all.html
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-2/igt@gem_exec_whisper@basic-contexts-priority-all.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg2: [DMESG-WARN][140] ([i915#4936] / [i915#5493]) -> [PASS][141]
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-11/igt@gem_lmem_swapping@smem-oom@lmem0.html
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html
- shard-dg1: [DMESG-WARN][142] ([i915#4936] / [i915#5493]) -> [PASS][143]
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-17/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_mmap_offset@clear@smem0:
- shard-dg1: [FAIL][144] ([i915#7962]) -> [PASS][145]
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-14/igt@gem_mmap_offset@clear@smem0.html
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-13/igt@gem_mmap_offset@clear@smem0.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg2: [DMESG-WARN][146] ([i915#7061] / [i915#8617]) -> [PASS][147]
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-11/igt@i915_module_load@reload-with-fault-injection.html
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-11/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- shard-dg1: [FAIL][148] ([i915#3591]) -> [PASS][149]
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- shard-tglu: [FAIL][150] ([i915#7940]) -> [PASS][151] +1 similar issue
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-tglu-4/igt@i915_pm_rpm@basic-pci-d3-state.html
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-tglu-6/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@cursor-dpms:
- shard-dg1: [FAIL][152] ([i915#7940]) -> [PASS][153]
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-16/igt@i915_pm_rpm@cursor-dpms.html
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-15/igt@i915_pm_rpm@cursor-dpms.html
* igt@i915_pm_rpm@modeset-lpsp-stress:
- shard-dg1: [SKIP][154] ([i915#1397]) -> [PASS][155]
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-13/igt@i915_pm_rpm@modeset-lpsp-stress.html
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-19/igt@i915_pm_rpm@modeset-lpsp-stress.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-dg2: [SKIP][156] ([i915#1397]) -> [PASS][157]
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-7/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-mtlp: [DMESG-FAIL][158] ([i915#1982]) -> [PASS][159]
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-mtlp: [FAIL][160] ([i915#3743]) -> [PASS][161] +2 similar issues
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-7/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move:
- shard-dg2: [FAIL][162] ([i915#6880]) -> [PASS][163] +2 similar issues
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html
* igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
- shard-dg2: [FAIL][164] ([fdo#103375]) -> [PASS][165] +1 similar issue
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-5/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-10/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
* igt@perf_pmu@busy-double-start@vecs1:
- shard-dg2: [FAIL][166] ([i915#4349]) -> [PASS][167] +3 similar issues
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-1/igt@perf_pmu@busy-double-start@vecs1.html
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-6/igt@perf_pmu@busy-double-start@vecs1.html
#### Warnings ####
* igt@gem_exec_whisper@basic-contexts-forked-all:
- shard-mtlp: [TIMEOUT][168] ([i915#8628]) -> [ABORT][169] ([i915#8131])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-4/igt@gem_exec_whisper@basic-contexts-forked-all.html
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-8/igt@gem_exec_whisper@basic-contexts-forked-all.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-0:
- shard-mtlp: [DMESG-WARN][170] ([i915#2017]) -> [DMESG-WARN][171] ([i915#1982] / [i915#2017])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-7/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-4/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-mtlp: [DMESG-FAIL][172] ([i915#1982] / [i915#2017] / [i915#5954]) -> [FAIL][173] ([i915#2346])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-mtlp-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-mtlp-4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_force_connector_basic@force-load-detect:
- shard-rkl: [SKIP][174] ([fdo#109285]) -> [SKIP][175] ([fdo#109285] / [i915#4098])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-rkl-2/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_psr@cursor_plane_move:
- shard-dg1: [SKIP][176] ([i915#1072] / [i915#4078]) -> [SKIP][177] ([i915#1072])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg1-18/igt@kms_psr@cursor_plane_move.html
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg1-19/igt@kms_psr@cursor_plane_move.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2: [INCOMPLETE][178] ([i915#5493]) -> [CRASH][179] ([i915#7331])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13429/shard-dg2-1/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/shard-dg2-6/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
### Piglit changes ###
#### Issues hit ####
* igt@i915_pm_rpm@basic-rte:
- pig-kbl-iris: NOTRUN -> [FAIL][180] ([i915#5603])
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119082v6/pig-kbl-iris/igt@i915_pm_rpm@basic-rte.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[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#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[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#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
[i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5603]: https://gitlab.freedesktop.org/drm/intel/issues/5603
[i915#5954]: https://gitlab.freedesktop.org/drm/intel/issues/5954
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
[i915#7061]: https://gitlab.freedesktop.org/drm/intel/issues/7061
[i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
[i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
[i915#7331]: https://gitlab.freedesktop.org/drm/intel/issues/7331
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7790]: https://gitlab.freedesktop.org/drm/intel/issues/7790
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
[i915#7962]: https://gitlab.freedesktop.org/drm/intel/issues/7962
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8131]: https://gitlab.freedesktop.org/drm/intel/issues/8131
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
[i915#8230]: https://gitlab.freedesktop.org/drm/intel/issues/8230
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
[i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
[i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
[i915#8489]: https://gitlab.freedesktop.org/drm/intel/issues/8489
[i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
[i915#8617]: https://gitlab.freedesktop.org/drm/intel/issues/8617
[i915#8623]: https://gitlab.freedesktop.org/drm/intel/issues/8623
[i915#8628]: https://gitlab.freedesktop.org/drm/intel/issues/8628
[i915#8661]: https://gitlab.freedesktop.org/drm/intel/issues/8661
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
[i915#8764]: https://gitlab.freedesktop.org/drm/intel/issues/8764
[i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
[i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
Build changes
-------------
* Linux: CI_DRM_13429 -> Patchwork_119082v6
CI-20190529: 20190529
CI_DRM_13429: 33df967bea080e1c7e5248bc1d16b88fa29f817a @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7405: 6745761cb6050514a12aac973d02aeccdff06255 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_119082v6: 33df967bea080e1c7e5248bc1d16b88fa29f817a @ 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_119082v6/index.html
[-- Attachment #2: Type: text/html, Size: 56489 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM
2023-09-21 11:48 [Intel-gfx] [PATCH v7 0/5] fdinfo memory stats Tvrtko Ursulin
@ 2023-09-21 11:48 ` Tvrtko Ursulin
0 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-09-21 11:48 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
To enable accounting of indirect client memory usage (such as page tables)
in the following patch, lets start recording the creator of each PPGTT.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 ++++++++---
drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 3 +++
drivers/gpu/drm/i915/gem/selftests/mock_context.c | 4 ++--
drivers/gpu/drm/i915/gt/intel_gtt.h | 1 +
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 9a9ff84c90d7..35cf6608180e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -279,7 +279,8 @@ static int proto_context_set_protected(struct drm_i915_private *i915,
}
static struct i915_gem_proto_context *
-proto_context_create(struct drm_i915_private *i915, unsigned int flags)
+proto_context_create(struct drm_i915_file_private *fpriv,
+ struct drm_i915_private *i915, unsigned int flags)
{
struct i915_gem_proto_context *pc, *err;
@@ -287,6 +288,7 @@ proto_context_create(struct drm_i915_private *i915, unsigned int flags)
if (!pc)
return ERR_PTR(-ENOMEM);
+ pc->fpriv = fpriv;
pc->num_user_engines = -1;
pc->user_engines = NULL;
pc->user_flags = BIT(UCONTEXT_BANNABLE) |
@@ -1621,6 +1623,7 @@ i915_gem_create_context(struct drm_i915_private *i915,
err = PTR_ERR(ppgtt);
goto err_ctx;
}
+ ppgtt->vm.fpriv = pc->fpriv;
vm = &ppgtt->vm;
}
if (vm)
@@ -1740,7 +1743,7 @@ int i915_gem_context_open(struct drm_i915_private *i915,
/* 0 reserved for invalid/unassigned ppgtt */
xa_init_flags(&file_priv->vm_xa, XA_FLAGS_ALLOC1);
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(file_priv, i915, 0);
if (IS_ERR(pc)) {
err = PTR_ERR(pc);
goto err;
@@ -1822,6 +1825,7 @@ int i915_gem_vm_create_ioctl(struct drm_device *dev, void *data,
GEM_BUG_ON(id == 0); /* reserved for invalid/unassigned ppgtt */
args->vm_id = id;
+ ppgtt->vm.fpriv = file_priv;
return 0;
err_put:
@@ -2284,7 +2288,8 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
return -EIO;
}
- ext_data.pc = proto_context_create(i915, args->flags);
+ ext_data.pc = proto_context_create(file->driver_priv, i915,
+ args->flags);
if (IS_ERR(ext_data.pc))
return PTR_ERR(ext_data.pc);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
index cb78214a7dcd..c573c067779f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
@@ -188,6 +188,9 @@ struct i915_gem_proto_engine {
* CONTEXT_CREATE_SET_PARAM during GEM_CONTEXT_CREATE.
*/
struct i915_gem_proto_context {
+ /** @fpriv: Client which creates the context */
+ struct drm_i915_file_private *fpriv;
+
/** @vm: See &i915_gem_context.vm */
struct i915_address_space *vm;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
index 8ac6726ec16b..125584ada282 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
@@ -83,7 +83,7 @@ live_context(struct drm_i915_private *i915, struct file *file)
int err;
u32 id;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(fpriv, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
@@ -152,7 +152,7 @@ kernel_context(struct drm_i915_private *i915,
struct i915_gem_context *ctx;
struct i915_gem_proto_context *pc;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(NULL, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h
index 346ec8ec2edd..8cf62f5134a9 100644
--- a/drivers/gpu/drm/i915/gt/intel_gtt.h
+++ b/drivers/gpu/drm/i915/gt/intel_gtt.h
@@ -248,6 +248,7 @@ struct i915_address_space {
struct drm_mm mm;
struct intel_gt *gt;
struct drm_i915_private *i915;
+ struct drm_i915_file_private *fpriv;
struct device *dma;
u64 total; /* size addr space maps (ex. 2GB for ggtt) */
u64 reserved; /* size addr space reserved */
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM
2023-07-07 13:02 [Intel-gfx] [PATCH v5 0/5] fdinfo memory stats Tvrtko Ursulin
@ 2023-07-07 13:02 ` Tvrtko Ursulin
2023-07-11 9:08 ` Iddamsetty, Aravind
0 siblings, 1 reply; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-07-07 13:02 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
To enable accounting of indirect client memory usage (such as page tables)
in the following patch, lets start recording the creator of each PPGTT.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 ++++++++---
drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 3 +++
drivers/gpu/drm/i915/gem/selftests/mock_context.c | 4 ++--
drivers/gpu/drm/i915/gt/intel_gtt.h | 1 +
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 9a9ff84c90d7..35cf6608180e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -279,7 +279,8 @@ static int proto_context_set_protected(struct drm_i915_private *i915,
}
static struct i915_gem_proto_context *
-proto_context_create(struct drm_i915_private *i915, unsigned int flags)
+proto_context_create(struct drm_i915_file_private *fpriv,
+ struct drm_i915_private *i915, unsigned int flags)
{
struct i915_gem_proto_context *pc, *err;
@@ -287,6 +288,7 @@ proto_context_create(struct drm_i915_private *i915, unsigned int flags)
if (!pc)
return ERR_PTR(-ENOMEM);
+ pc->fpriv = fpriv;
pc->num_user_engines = -1;
pc->user_engines = NULL;
pc->user_flags = BIT(UCONTEXT_BANNABLE) |
@@ -1621,6 +1623,7 @@ i915_gem_create_context(struct drm_i915_private *i915,
err = PTR_ERR(ppgtt);
goto err_ctx;
}
+ ppgtt->vm.fpriv = pc->fpriv;
vm = &ppgtt->vm;
}
if (vm)
@@ -1740,7 +1743,7 @@ int i915_gem_context_open(struct drm_i915_private *i915,
/* 0 reserved for invalid/unassigned ppgtt */
xa_init_flags(&file_priv->vm_xa, XA_FLAGS_ALLOC1);
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(file_priv, i915, 0);
if (IS_ERR(pc)) {
err = PTR_ERR(pc);
goto err;
@@ -1822,6 +1825,7 @@ int i915_gem_vm_create_ioctl(struct drm_device *dev, void *data,
GEM_BUG_ON(id == 0); /* reserved for invalid/unassigned ppgtt */
args->vm_id = id;
+ ppgtt->vm.fpriv = file_priv;
return 0;
err_put:
@@ -2284,7 +2288,8 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
return -EIO;
}
- ext_data.pc = proto_context_create(i915, args->flags);
+ ext_data.pc = proto_context_create(file->driver_priv, i915,
+ args->flags);
if (IS_ERR(ext_data.pc))
return PTR_ERR(ext_data.pc);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
index cb78214a7dcd..c573c067779f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
@@ -188,6 +188,9 @@ struct i915_gem_proto_engine {
* CONTEXT_CREATE_SET_PARAM during GEM_CONTEXT_CREATE.
*/
struct i915_gem_proto_context {
+ /** @fpriv: Client which creates the context */
+ struct drm_i915_file_private *fpriv;
+
/** @vm: See &i915_gem_context.vm */
struct i915_address_space *vm;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
index 8ac6726ec16b..125584ada282 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
@@ -83,7 +83,7 @@ live_context(struct drm_i915_private *i915, struct file *file)
int err;
u32 id;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(fpriv, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
@@ -152,7 +152,7 @@ kernel_context(struct drm_i915_private *i915,
struct i915_gem_context *ctx;
struct i915_gem_proto_context *pc;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(NULL, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h
index 4d6296cdbcfd..7192a534a654 100644
--- a/drivers/gpu/drm/i915/gt/intel_gtt.h
+++ b/drivers/gpu/drm/i915/gt/intel_gtt.h
@@ -248,6 +248,7 @@ struct i915_address_space {
struct drm_mm mm;
struct intel_gt *gt;
struct drm_i915_private *i915;
+ struct drm_i915_file_private *fpriv;
struct device *dma;
u64 total; /* size addr space maps (ex. 2GB for ggtt) */
u64 reserved; /* size addr space reserved */
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM
2023-07-07 13:02 ` [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM Tvrtko Ursulin
@ 2023-07-11 9:08 ` Iddamsetty, Aravind
0 siblings, 0 replies; 19+ messages in thread
From: Iddamsetty, Aravind @ 2023-07-11 9:08 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx, dri-devel
On 07-07-2023 18:32, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> To enable accounting of indirect client memory usage (such as page tables)
> in the following patch, lets start recording the creator of each PPGTT.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 ++++++++---
> drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 3 +++
> drivers/gpu/drm/i915/gem/selftests/mock_context.c | 4 ++--
> drivers/gpu/drm/i915/gt/intel_gtt.h | 1 +
> 4 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index 9a9ff84c90d7..35cf6608180e 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> @@ -279,7 +279,8 @@ static int proto_context_set_protected(struct drm_i915_private *i915,
> }
>
> static struct i915_gem_proto_context *
> -proto_context_create(struct drm_i915_private *i915, unsigned int flags)
> +proto_context_create(struct drm_i915_file_private *fpriv,
> + struct drm_i915_private *i915, unsigned int flags)
> {
> struct i915_gem_proto_context *pc, *err;
>
> @@ -287,6 +288,7 @@ proto_context_create(struct drm_i915_private *i915, unsigned int flags)
> if (!pc)
> return ERR_PTR(-ENOMEM);
>
> + pc->fpriv = fpriv;
> pc->num_user_engines = -1;
> pc->user_engines = NULL;
> pc->user_flags = BIT(UCONTEXT_BANNABLE) |
> @@ -1621,6 +1623,7 @@ i915_gem_create_context(struct drm_i915_private *i915,
> err = PTR_ERR(ppgtt);
> goto err_ctx;
> }
> + ppgtt->vm.fpriv = pc->fpriv;
> vm = &ppgtt->vm;
> }
> if (vm)
> @@ -1740,7 +1743,7 @@ int i915_gem_context_open(struct drm_i915_private *i915,
> /* 0 reserved for invalid/unassigned ppgtt */
> xa_init_flags(&file_priv->vm_xa, XA_FLAGS_ALLOC1);
>
> - pc = proto_context_create(i915, 0);
> + pc = proto_context_create(file_priv, i915, 0);
> if (IS_ERR(pc)) {
> err = PTR_ERR(pc);
> goto err;
> @@ -1822,6 +1825,7 @@ int i915_gem_vm_create_ioctl(struct drm_device *dev, void *data,
>
> GEM_BUG_ON(id == 0); /* reserved for invalid/unassigned ppgtt */
> args->vm_id = id;
> + ppgtt->vm.fpriv = file_priv;
> return 0;
>
> err_put:
> @@ -2284,7 +2288,8 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
> return -EIO;
> }
>
> - ext_data.pc = proto_context_create(i915, args->flags);
> + ext_data.pc = proto_context_create(file->driver_priv, i915,
> + args->flags);
> if (IS_ERR(ext_data.pc))
> return PTR_ERR(ext_data.pc);
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> index cb78214a7dcd..c573c067779f 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> @@ -188,6 +188,9 @@ struct i915_gem_proto_engine {
> * CONTEXT_CREATE_SET_PARAM during GEM_CONTEXT_CREATE.
> */
> struct i915_gem_proto_context {
> + /** @fpriv: Client which creates the context */
> + struct drm_i915_file_private *fpriv;
> +
> /** @vm: See &i915_gem_context.vm */
> struct i915_address_space *vm;
>
> diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
> index 8ac6726ec16b..125584ada282 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
> @@ -83,7 +83,7 @@ live_context(struct drm_i915_private *i915, struct file *file)
> int err;
> u32 id;
>
> - pc = proto_context_create(i915, 0);
> + pc = proto_context_create(fpriv, i915, 0);
> if (IS_ERR(pc))
> return ERR_CAST(pc);
>
> @@ -152,7 +152,7 @@ kernel_context(struct drm_i915_private *i915,
> struct i915_gem_context *ctx;
> struct i915_gem_proto_context *pc;
>
> - pc = proto_context_create(i915, 0);
> + pc = proto_context_create(NULL, i915, 0);
> if (IS_ERR(pc))
> return ERR_CAST(pc);
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h
> index 4d6296cdbcfd..7192a534a654 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gtt.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gtt.h
> @@ -248,6 +248,7 @@ struct i915_address_space {
> struct drm_mm mm;
> struct intel_gt *gt;
> struct drm_i915_private *i915;
> + struct drm_i915_file_private *fpriv;
> struct device *dma;
> u64 total; /* size addr space maps (ex. 2GB for ggtt) */
> u64 reserved; /* size addr space reserved */
Looks good to me.
Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
Thanks,
Aravind.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Intel-gfx] [PATCH 2/5] drm/i915: Record which client owns a VM
2023-06-12 10:46 [Intel-gfx] [PATCH v4 0/5] fdinfo memory stats Tvrtko Ursulin
@ 2023-06-12 10:46 ` Tvrtko Ursulin
0 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-06-12 10:46 UTC (permalink / raw)
To: Intel-gfx, dri-devel
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
To enable accounting of indirect client memory usage (such as page tables)
in the following patch, lets start recording the creator of each PPGTT.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 ++++++++---
drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 3 +++
drivers/gpu/drm/i915/gem/selftests/mock_context.c | 4 ++--
drivers/gpu/drm/i915/gt/intel_gtt.h | 1 +
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 9a9ff84c90d7..35cf6608180e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -279,7 +279,8 @@ static int proto_context_set_protected(struct drm_i915_private *i915,
}
static struct i915_gem_proto_context *
-proto_context_create(struct drm_i915_private *i915, unsigned int flags)
+proto_context_create(struct drm_i915_file_private *fpriv,
+ struct drm_i915_private *i915, unsigned int flags)
{
struct i915_gem_proto_context *pc, *err;
@@ -287,6 +288,7 @@ proto_context_create(struct drm_i915_private *i915, unsigned int flags)
if (!pc)
return ERR_PTR(-ENOMEM);
+ pc->fpriv = fpriv;
pc->num_user_engines = -1;
pc->user_engines = NULL;
pc->user_flags = BIT(UCONTEXT_BANNABLE) |
@@ -1621,6 +1623,7 @@ i915_gem_create_context(struct drm_i915_private *i915,
err = PTR_ERR(ppgtt);
goto err_ctx;
}
+ ppgtt->vm.fpriv = pc->fpriv;
vm = &ppgtt->vm;
}
if (vm)
@@ -1740,7 +1743,7 @@ int i915_gem_context_open(struct drm_i915_private *i915,
/* 0 reserved for invalid/unassigned ppgtt */
xa_init_flags(&file_priv->vm_xa, XA_FLAGS_ALLOC1);
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(file_priv, i915, 0);
if (IS_ERR(pc)) {
err = PTR_ERR(pc);
goto err;
@@ -1822,6 +1825,7 @@ int i915_gem_vm_create_ioctl(struct drm_device *dev, void *data,
GEM_BUG_ON(id == 0); /* reserved for invalid/unassigned ppgtt */
args->vm_id = id;
+ ppgtt->vm.fpriv = file_priv;
return 0;
err_put:
@@ -2284,7 +2288,8 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
return -EIO;
}
- ext_data.pc = proto_context_create(i915, args->flags);
+ ext_data.pc = proto_context_create(file->driver_priv, i915,
+ args->flags);
if (IS_ERR(ext_data.pc))
return PTR_ERR(ext_data.pc);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
index cb78214a7dcd..c573c067779f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
@@ -188,6 +188,9 @@ struct i915_gem_proto_engine {
* CONTEXT_CREATE_SET_PARAM during GEM_CONTEXT_CREATE.
*/
struct i915_gem_proto_context {
+ /** @fpriv: Client which creates the context */
+ struct drm_i915_file_private *fpriv;
+
/** @vm: See &i915_gem_context.vm */
struct i915_address_space *vm;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
index 8ac6726ec16b..125584ada282 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
@@ -83,7 +83,7 @@ live_context(struct drm_i915_private *i915, struct file *file)
int err;
u32 id;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(fpriv, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
@@ -152,7 +152,7 @@ kernel_context(struct drm_i915_private *i915,
struct i915_gem_context *ctx;
struct i915_gem_proto_context *pc;
- pc = proto_context_create(i915, 0);
+ pc = proto_context_create(NULL, i915, 0);
if (IS_ERR(pc))
return ERR_CAST(pc);
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h
index 4d6296cdbcfd..7192a534a654 100644
--- a/drivers/gpu/drm/i915/gt/intel_gtt.h
+++ b/drivers/gpu/drm/i915/gt/intel_gtt.h
@@ -248,6 +248,7 @@ struct i915_address_space {
struct drm_mm mm;
struct intel_gt *gt;
struct drm_i915_private *i915;
+ struct drm_i915_file_private *fpriv;
struct device *dma;
u64 total; /* size addr space maps (ex. 2GB for ggtt) */
u64 reserved; /* size addr space reserved */
--
2.39.2
^ permalink raw reply related [flat|nested] 19+ messages in thread