Re: [PATCH 4/7] drm/vc4: Use drm_printer for the debugfs and runtime bo stats output.

2019-03-22 Thread Paul Kocialkowski
Hi,

Le mercredi 20 février 2019 à 13:03 -0800, Eric Anholt a écrit :
> Now I can extend the stats without more copy and pasting between the
> two.

Reviewed-by: Paul Kocialkowski 

Cheers,

Paul

> Signed-off-by: Eric Anholt 
> ---
>  drivers/gpu/drm/vc4/vc4_bo.c | 48 +++-
>  1 file changed, 14 insertions(+), 34 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
> index 8c509d560bf0..88ebd681d7eb 100644
> --- a/drivers/gpu/drm/vc4/vc4_bo.c
> +++ b/drivers/gpu/drm/vc4/vc4_bo.c
> @@ -40,7 +40,7 @@ static bool is_user_label(int label)
>   return label >= VC4_BO_TYPE_COUNT;
>  }
>  
> -static void vc4_bo_stats_dump(struct vc4_dev *vc4)
> +static void vc4_bo_stats_print(struct drm_printer *p, struct vc4_dev *vc4)
>  {
>   int i;
>  
> @@ -48,21 +48,21 @@ static void vc4_bo_stats_dump(struct vc4_dev *vc4)
>   if (!vc4->bo_labels[i].num_allocated)
>   continue;
>  
> - DRM_INFO("%30s: %6dkb BOs (%d)\n",
> -  vc4->bo_labels[i].name,
> -  vc4->bo_labels[i].size_allocated / 1024,
> -  vc4->bo_labels[i].num_allocated);
> + drm_printf(p, "%30s: %6dkb BOs (%d)\n",
> +vc4->bo_labels[i].name,
> +vc4->bo_labels[i].size_allocated / 1024,
> +vc4->bo_labels[i].num_allocated);
>   }
>  
>   mutex_lock(>purgeable.lock);
>   if (vc4->purgeable.num)
> - DRM_INFO("%30s: %6zdkb BOs (%d)\n", "userspace BO cache",
> -  vc4->purgeable.size / 1024, vc4->purgeable.num);
> + drm_printf(p, "%30s: %6zdkb BOs (%d)\n", "userspace BO cache",
> +vc4->purgeable.size / 1024, vc4->purgeable.num);
>  
>   if (vc4->purgeable.purged_num)
> - DRM_INFO("%30s: %6zdkb BOs (%d)\n", "total purged BO",
> -  vc4->purgeable.purged_size / 1024,
> -  vc4->purgeable.purged_num);
> + drm_printf(p, "%30s: %6zdkb BOs (%d)\n", "total purged BO",
> +vc4->purgeable.purged_size / 1024,
> +vc4->purgeable.purged_num);
>   mutex_unlock(>purgeable.lock);
>  }
>  
> @@ -71,30 +71,9 @@ static int vc4_bo_stats_debugfs(struct seq_file *m, void 
> *unused)
>   struct drm_info_node *node = (struct drm_info_node *)m->private;
>   struct drm_device *dev = node->minor->dev;
>   struct vc4_dev *vc4 = to_vc4_dev(dev);
> - int i;
> -
> - mutex_lock(>bo_lock);
> - for (i = 0; i < vc4->num_labels; i++) {
> - if (!vc4->bo_labels[i].num_allocated)
> - continue;
> -
> - seq_printf(m, "%30s: %6dkb BOs (%d)\n",
> -vc4->bo_labels[i].name,
> -vc4->bo_labels[i].size_allocated / 1024,
> -vc4->bo_labels[i].num_allocated);
> - }
> - mutex_unlock(>bo_lock);
> + struct drm_printer p = drm_seq_file_printer(m);
>  
> - mutex_lock(>purgeable.lock);
> - if (vc4->purgeable.num)
> - seq_printf(m, "%30s: %6zdkb BOs (%d)\n", "userspace BO cache",
> -vc4->purgeable.size / 1024, vc4->purgeable.num);
> -
> - if (vc4->purgeable.purged_num)
> - seq_printf(m, "%30s: %6zdkb BOs (%d)\n", "total purged BO",
> -vc4->purgeable.purged_size / 1024,
> -vc4->purgeable.purged_num);
> - mutex_unlock(>purgeable.lock);
> + vc4_bo_stats_print(, vc4);
>  
>   return 0;
>  }
> @@ -473,8 +452,9 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, 
> size_t unaligned_size,
>   }
>  
>   if (IS_ERR(cma_obj)) {
> + struct drm_printer p = drm_info_printer(vc4->dev->dev);
>   DRM_ERROR("Failed to allocate from CMA:\n");
> - vc4_bo_stats_dump(vc4);
> + vc4_bo_stats_print(, vc4);
>   return ERR_PTR(-ENOMEM);
>   }
>   bo = to_vc4_bo(_obj->base);
-- 
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[PATCH 4/7] drm/vc4: Use drm_printer for the debugfs and runtime bo stats output.

2019-02-20 Thread Eric Anholt
Now I can extend the stats without more copy and pasting between the
two.

Signed-off-by: Eric Anholt 
---
 drivers/gpu/drm/vc4/vc4_bo.c | 48 +++-
 1 file changed, 14 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
index 8c509d560bf0..88ebd681d7eb 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
@@ -40,7 +40,7 @@ static bool is_user_label(int label)
return label >= VC4_BO_TYPE_COUNT;
 }
 
-static void vc4_bo_stats_dump(struct vc4_dev *vc4)
+static void vc4_bo_stats_print(struct drm_printer *p, struct vc4_dev *vc4)
 {
int i;
 
@@ -48,21 +48,21 @@ static void vc4_bo_stats_dump(struct vc4_dev *vc4)
if (!vc4->bo_labels[i].num_allocated)
continue;
 
-   DRM_INFO("%30s: %6dkb BOs (%d)\n",
-vc4->bo_labels[i].name,
-vc4->bo_labels[i].size_allocated / 1024,
-vc4->bo_labels[i].num_allocated);
+   drm_printf(p, "%30s: %6dkb BOs (%d)\n",
+  vc4->bo_labels[i].name,
+  vc4->bo_labels[i].size_allocated / 1024,
+  vc4->bo_labels[i].num_allocated);
}
 
mutex_lock(>purgeable.lock);
if (vc4->purgeable.num)
-   DRM_INFO("%30s: %6zdkb BOs (%d)\n", "userspace BO cache",
-vc4->purgeable.size / 1024, vc4->purgeable.num);
+   drm_printf(p, "%30s: %6zdkb BOs (%d)\n", "userspace BO cache",
+  vc4->purgeable.size / 1024, vc4->purgeable.num);
 
if (vc4->purgeable.purged_num)
-   DRM_INFO("%30s: %6zdkb BOs (%d)\n", "total purged BO",
-vc4->purgeable.purged_size / 1024,
-vc4->purgeable.purged_num);
+   drm_printf(p, "%30s: %6zdkb BOs (%d)\n", "total purged BO",
+  vc4->purgeable.purged_size / 1024,
+  vc4->purgeable.purged_num);
mutex_unlock(>purgeable.lock);
 }
 
@@ -71,30 +71,9 @@ static int vc4_bo_stats_debugfs(struct seq_file *m, void 
*unused)
struct drm_info_node *node = (struct drm_info_node *)m->private;
struct drm_device *dev = node->minor->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev);
-   int i;
-
-   mutex_lock(>bo_lock);
-   for (i = 0; i < vc4->num_labels; i++) {
-   if (!vc4->bo_labels[i].num_allocated)
-   continue;
-
-   seq_printf(m, "%30s: %6dkb BOs (%d)\n",
-  vc4->bo_labels[i].name,
-  vc4->bo_labels[i].size_allocated / 1024,
-  vc4->bo_labels[i].num_allocated);
-   }
-   mutex_unlock(>bo_lock);
+   struct drm_printer p = drm_seq_file_printer(m);
 
-   mutex_lock(>purgeable.lock);
-   if (vc4->purgeable.num)
-   seq_printf(m, "%30s: %6zdkb BOs (%d)\n", "userspace BO cache",
-  vc4->purgeable.size / 1024, vc4->purgeable.num);
-
-   if (vc4->purgeable.purged_num)
-   seq_printf(m, "%30s: %6zdkb BOs (%d)\n", "total purged BO",
-  vc4->purgeable.purged_size / 1024,
-  vc4->purgeable.purged_num);
-   mutex_unlock(>purgeable.lock);
+   vc4_bo_stats_print(, vc4);
 
return 0;
 }
@@ -473,8 +452,9 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t 
unaligned_size,
}
 
if (IS_ERR(cma_obj)) {
+   struct drm_printer p = drm_info_printer(vc4->dev->dev);
DRM_ERROR("Failed to allocate from CMA:\n");
-   vc4_bo_stats_dump(vc4);
+   vc4_bo_stats_print(, vc4);
return ERR_PTR(-ENOMEM);
}
bo = to_vc4_bo(_obj->base);
-- 
2.20.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel