dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable
@ 2022-07-01 18:52 dakr
  2022-07-01 18:52 ` [PATCH 01/10] drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles dakr
                   ` (10 more replies)
  0 siblings, 11 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

This patch series initializes IDRs with idr_init_base(&idr, 1) rather than
idr_init(&idr) in case for the particular IDR no IDs < 1 are ever requested -
this avoids unnecessary tree walks.

Danilo Krummrich (10):
  drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
  drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
  drm: use idr_init_base() to initialize master->magic_map
  drm: use idr_init_base() to initialize master->lessee_idr
  drm: use idr_init_base() to initialize mode_config.object_idr
  drm: use idr_init_base() to initialize mode_config.tile_idr
  drm/sis: use idr_init_base() to initialize dev_priv->object_idr
  drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
  drm/via: use idr_init_base() to initialize dev_priv->object_idr
  drm/todo: remove task for idr_init_base()

 Documentation/gpu/todo.rst              | 12 ------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c |  2 +-
 drivers/gpu/drm/drm_auth.c              |  4 ++--
 drivers/gpu/drm/drm_mode_config.c       |  4 ++--
 drivers/gpu/drm/sis/sis_drv.c           |  2 +-
 drivers/gpu/drm/v3d/v3d_perfmon.c       |  2 +-
 drivers/gpu/drm/via/via_map.c           |  2 +-
 8 files changed, 9 insertions(+), 21 deletions(-)

-- 
2.36.1


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

* [PATCH 01/10] drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
@ 2022-07-01 18:52 ` dakr
  2022-07-01 18:52 ` [PATCH 02/10] drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles dakr
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
index 7dc92ef36b2b..cc87c3809a8d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
@@ -841,7 +841,7 @@ void amdgpu_ctx_mgr_init(struct amdgpu_ctx_mgr *mgr,
 
 	mgr->adev = adev;
 	mutex_init(&mgr->lock);
-	idr_init(&mgr->ctx_handles);
+	idr_init_base(&mgr->ctx_handles, 1);
 
 	for (i = 0; i < AMDGPU_HW_IP_NUM; ++i)
 		atomic64_set(&mgr->time_spend[i], 0);
-- 
2.36.1


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

* [PATCH 02/10] drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
  2022-07-01 18:52 ` [PATCH 01/10] drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles dakr
@ 2022-07-01 18:52 ` dakr
  2022-07-01 18:52 ` [PATCH 03/10] drm: use idr_init_base() to initialize master->magic_map dakr
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 6de63ea6687e..103927c48d05 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -1148,7 +1148,7 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 	}
 
 	mutex_init(&fpriv->bo_list_lock);
-	idr_init(&fpriv->bo_list_handles);
+	idr_init_base(&fpriv->bo_list_handles, 1);
 
 	amdgpu_ctx_mgr_init(&fpriv->ctx_mgr, adev);
 
-- 
2.36.1


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

* [PATCH 03/10] drm: use idr_init_base() to initialize master->magic_map
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
  2022-07-01 18:52 ` [PATCH 01/10] drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles dakr
  2022-07-01 18:52 ` [PATCH 02/10] drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles dakr
@ 2022-07-01 18:52 ` dakr
  2022-07-01 18:52 ` [PATCH 04/10] drm: use idr_init_base() to initialize master->lessee_idr dakr
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/drm_auth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
index 6e433d465f41..63395bebaa6b 100644
--- a/drivers/gpu/drm/drm_auth.c
+++ b/drivers/gpu/drm/drm_auth.c
@@ -140,7 +140,7 @@ struct drm_master *drm_master_create(struct drm_device *dev)
 
 	kref_init(&master->refcount);
 	drm_master_legacy_init(master);
-	idr_init(&master->magic_map);
+	idr_init_base(&master->magic_map, 1);
 	master->dev = dev;
 
 	/* initialize the tree of output resource lessees */
-- 
2.36.1


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

* [PATCH 04/10] drm: use idr_init_base() to initialize master->lessee_idr
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (2 preceding siblings ...)
  2022-07-01 18:52 ` [PATCH 03/10] drm: use idr_init_base() to initialize master->magic_map dakr
@ 2022-07-01 18:52 ` dakr
  2022-07-01 18:52 ` [PATCH 05/10] drm: use idr_init_base() to initialize mode_config.object_idr dakr
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/drm_auth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
index 63395bebaa6b..cf92a9ae8034 100644
--- a/drivers/gpu/drm/drm_auth.c
+++ b/drivers/gpu/drm/drm_auth.c
@@ -147,7 +147,7 @@ struct drm_master *drm_master_create(struct drm_device *dev)
 	INIT_LIST_HEAD(&master->lessees);
 	INIT_LIST_HEAD(&master->lessee_list);
 	idr_init(&master->leases);
-	idr_init(&master->lessee_idr);
+	idr_init_base(&master->lessee_idr, 1);
 
 	return master;
 }
-- 
2.36.1


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

* [PATCH 05/10] drm: use idr_init_base() to initialize mode_config.object_idr
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (3 preceding siblings ...)
  2022-07-01 18:52 ` [PATCH 04/10] drm: use idr_init_base() to initialize master->lessee_idr dakr
@ 2022-07-01 18:52 ` dakr
  2022-07-01 18:52 ` [PATCH 06/10] drm: use idr_init_base() to initialize mode_config.tile_idr dakr
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/drm_mode_config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index 37b4b9f0e468..e2a295a4ee0b 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -411,7 +411,7 @@ int drmm_mode_config_init(struct drm_device *dev)
 	INIT_LIST_HEAD(&dev->mode_config.property_blob_list);
 	INIT_LIST_HEAD(&dev->mode_config.plane_list);
 	INIT_LIST_HEAD(&dev->mode_config.privobj_list);
-	idr_init(&dev->mode_config.object_idr);
+	idr_init_base(&dev->mode_config.object_idr, 1);
 	idr_init(&dev->mode_config.tile_idr);
 	ida_init(&dev->mode_config.connector_ida);
 	spin_lock_init(&dev->mode_config.connector_list_lock);
-- 
2.36.1


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

* [PATCH 06/10] drm: use idr_init_base() to initialize mode_config.tile_idr
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (4 preceding siblings ...)
  2022-07-01 18:52 ` [PATCH 05/10] drm: use idr_init_base() to initialize mode_config.object_idr dakr
@ 2022-07-01 18:52 ` dakr
  2022-07-01 18:53 ` [PATCH 07/10] drm/sis: use idr_init_base() to initialize dev_priv->object_idr dakr
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:52 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/drm_mode_config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index e2a295a4ee0b..3d1c1ade5a25 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -412,7 +412,7 @@ int drmm_mode_config_init(struct drm_device *dev)
 	INIT_LIST_HEAD(&dev->mode_config.plane_list);
 	INIT_LIST_HEAD(&dev->mode_config.privobj_list);
 	idr_init_base(&dev->mode_config.object_idr, 1);
-	idr_init(&dev->mode_config.tile_idr);
+	idr_init_base(&dev->mode_config.tile_idr, 1);
 	ida_init(&dev->mode_config.connector_ida);
 	spin_lock_init(&dev->mode_config.connector_list_lock);
 
-- 
2.36.1


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

* [PATCH 07/10] drm/sis: use idr_init_base() to initialize dev_priv->object_idr
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (5 preceding siblings ...)
  2022-07-01 18:52 ` [PATCH 06/10] drm: use idr_init_base() to initialize mode_config.tile_idr dakr
@ 2022-07-01 18:53 ` dakr
  2022-07-01 19:02 ` [PATCH 08/10] drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr dakr
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 18:53 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/sis/sis_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
index e35e719cf315..6173020a9bf5 100644
--- a/drivers/gpu/drm/sis/sis_drv.c
+++ b/drivers/gpu/drm/sis/sis_drv.c
@@ -50,7 +50,7 @@ static int sis_driver_load(struct drm_device *dev, unsigned long chipset)
 	if (dev_priv == NULL)
 		return -ENOMEM;
 
-	idr_init(&dev_priv->object_idr);
+	idr_init_base(&dev_priv->object_idr, 1);
 	dev->dev_private = (void *)dev_priv;
 	dev_priv->chipset = chipset;
 
-- 
2.36.1


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

* [PATCH 08/10] drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (6 preceding siblings ...)
  2022-07-01 18:53 ` [PATCH 07/10] drm/sis: use idr_init_base() to initialize dev_priv->object_idr dakr
@ 2022-07-01 19:02 ` dakr
  2022-07-01 19:02   ` [PATCH 09/10] drm/via: use idr_init_base() to initialize dev_priv->object_idr dakr
  2022-07-01 19:02   ` [PATCH 10/10] drm/todo: remove task for idr_init_base() dakr
  2022-07-04 13:09 ` [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable Christian König
                   ` (2 subsequent siblings)
  10 siblings, 2 replies; 16+ messages in thread
From: dakr @ 2022-07-01 19:02 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/v3d/v3d_perfmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/v3d/v3d_perfmon.c b/drivers/gpu/drm/v3d/v3d_perfmon.c
index f6a88abccc7d..48aaaa972c49 100644
--- a/drivers/gpu/drm/v3d/v3d_perfmon.c
+++ b/drivers/gpu/drm/v3d/v3d_perfmon.c
@@ -95,7 +95,7 @@ struct v3d_perfmon *v3d_perfmon_find(struct v3d_file_priv *v3d_priv, int id)
 void v3d_perfmon_open_file(struct v3d_file_priv *v3d_priv)
 {
 	mutex_init(&v3d_priv->perfmon.lock);
-	idr_init(&v3d_priv->perfmon.idr);
+	idr_init_base(&v3d_priv->perfmon.idr, 1);
 }
 
 static int v3d_perfmon_idr_del(int id, void *elem, void *data)
-- 
2.36.1


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

* [PATCH 09/10] drm/via: use idr_init_base() to initialize dev_priv->object_idr
  2022-07-01 19:02 ` [PATCH 08/10] drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr dakr
@ 2022-07-01 19:02   ` dakr
  2022-07-01 19:02   ` [PATCH 10/10] drm/todo: remove task for idr_init_base() dakr
  1 sibling, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 19:02 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 drivers/gpu/drm/via/via_map.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c
index a9f6b0c11966..c20bb20c0e09 100644
--- a/drivers/gpu/drm/via/via_map.c
+++ b/drivers/gpu/drm/via/via_map.c
@@ -106,7 +106,7 @@ int via_driver_load(struct drm_device *dev, unsigned long chipset)
 	if (dev_priv == NULL)
 		return -ENOMEM;
 
-	idr_init(&dev_priv->object_idr);
+	idr_init_base(&dev_priv->object_idr, 1);
 	dev->dev_private = (void *)dev_priv;
 
 	dev_priv->chipset = chipset;
-- 
2.36.1


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

* [PATCH 10/10] drm/todo: remove task for idr_init_base()
  2022-07-01 19:02 ` [PATCH 08/10] drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr dakr
  2022-07-01 19:02   ` [PATCH 09/10] drm/via: use idr_init_base() to initialize dev_priv->object_idr dakr
@ 2022-07-01 19:02   ` dakr
  1 sibling, 0 replies; 16+ messages in thread
From: dakr @ 2022-07-01 19:02 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma
  Cc: Danilo Krummrich, linux-kernel, dri-devel

From: Danilo Krummrich <dakr@redhat.com>

All IDRs in the DRM core and drivers which are applicable for using
idr_init_base() over idr_init() should be set up to use a proper base in
order to avoid unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
---
 Documentation/gpu/todo.rst | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index 10bfb50908d1..de226ccc2c54 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -322,18 +322,6 @@ Contact: Daniel Vetter, Noralf Tronnes
 
 Level: Advanced
 
-idr_init_base()
----------------
-
-DRM core&drivers uses a lot of idr (integer lookup directories) for mapping
-userspace IDs to internal objects, and in most places ID=0 means NULL and hence
-is never used. Switching to idr_init_base() for these would make the idr more
-efficient.
-
-Contact: Daniel Vetter
-
-Level: Starter
-
 struct drm_gem_object_funcs
 ---------------------------
 
-- 
2.36.1


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

* Re: [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (7 preceding siblings ...)
  2022-07-01 19:02 ` [PATCH 08/10] drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr dakr
@ 2022-07-04 13:09 ` Christian König
  2022-07-12 14:24 ` Danilo Krummrich
  2022-07-28 14:41 ` Maxime Ripard
  10 siblings, 0 replies; 16+ messages in thread
From: Christian König @ 2022-07-04 13:09 UTC (permalink / raw)
  To: dakr, airlied, daniel, emma; +Cc: linux-kernel, dri-devel

Am 01.07.22 um 20:52 schrieb dakr@redhat.com:
> From: Danilo Krummrich <dakr@redhat.com>
>
> This patch series initializes IDRs with idr_init_base(&idr, 1) rather than
> idr_init(&idr) in case for the particular IDR no IDs < 1 are ever requested -
> this avoids unnecessary tree walks.

Feel free to add Reviewed-by: Christian König <christian.koenig@amd.com> 
for the two amdgpu patches.

And an Acked-by: Christian König <christian.koenig@amd.com> for the rest.

Regards,
Christian.

>
> Danilo Krummrich (10):
>    drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
>    drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
>    drm: use idr_init_base() to initialize master->magic_map
>    drm: use idr_init_base() to initialize master->lessee_idr
>    drm: use idr_init_base() to initialize mode_config.object_idr
>    drm: use idr_init_base() to initialize mode_config.tile_idr
>    drm/sis: use idr_init_base() to initialize dev_priv->object_idr
>    drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
>    drm/via: use idr_init_base() to initialize dev_priv->object_idr
>    drm/todo: remove task for idr_init_base()
>
>   Documentation/gpu/todo.rst              | 12 ------------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c |  2 +-
>   drivers/gpu/drm/drm_auth.c              |  4 ++--
>   drivers/gpu/drm/drm_mode_config.c       |  4 ++--
>   drivers/gpu/drm/sis/sis_drv.c           |  2 +-
>   drivers/gpu/drm/v3d/v3d_perfmon.c       |  2 +-
>   drivers/gpu/drm/via/via_map.c           |  2 +-
>   8 files changed, 9 insertions(+), 21 deletions(-)
>


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

* Re: [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (8 preceding siblings ...)
  2022-07-04 13:09 ` [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable Christian König
@ 2022-07-12 14:24 ` Danilo Krummrich
  2022-07-28 14:41 ` Maxime Ripard
  10 siblings, 0 replies; 16+ messages in thread
From: Danilo Krummrich @ 2022-07-12 14:24 UTC (permalink / raw)
  To: airlied, daniel, christian.koenig, emma, Laurent Pinchart
  Cc: linux-kernel, dri-devel

Hi Laurent,

On 7/1/22 20:52, dakr@redhat.com wrote:
> From: Danilo Krummrich <dakr@redhat.com>
> 
> This patch series initializes IDRs with idr_init_base(&idr, 1) rather than
> idr_init(&idr) in case for the particular IDR no IDs < 1 are ever requested -
> this avoids unnecessary tree walks.
>
Guess this would go through drm-misc too?

- Danilo

> Danilo Krummrich (10):
>    drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
>    drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
>    drm: use idr_init_base() to initialize master->magic_map
>    drm: use idr_init_base() to initialize master->lessee_idr
>    drm: use idr_init_base() to initialize mode_config.object_idr
>    drm: use idr_init_base() to initialize mode_config.tile_idr
>    drm/sis: use idr_init_base() to initialize dev_priv->object_idr
>    drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
>    drm/via: use idr_init_base() to initialize dev_priv->object_idr
>    drm/todo: remove task for idr_init_base()
> 
>   Documentation/gpu/todo.rst              | 12 ------------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c |  2 +-
>   drivers/gpu/drm/drm_auth.c              |  4 ++--
>   drivers/gpu/drm/drm_mode_config.c       |  4 ++--
>   drivers/gpu/drm/sis/sis_drv.c           |  2 +-
>   drivers/gpu/drm/v3d/v3d_perfmon.c       |  2 +-
>   drivers/gpu/drm/via/via_map.c           |  2 +-
>   8 files changed, 9 insertions(+), 21 deletions(-)
> 


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

* Re: [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable
  2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
                   ` (9 preceding siblings ...)
  2022-07-12 14:24 ` Danilo Krummrich
@ 2022-07-28 14:41 ` Maxime Ripard
  2022-07-28 14:44   ` Maxime Ripard
  10 siblings, 1 reply; 16+ messages in thread
From: Maxime Ripard @ 2022-07-28 14:41 UTC (permalink / raw)
  To: emma, daniel, dakr, airlied, christian.koenig
  Cc: Maxime Ripard, dri-devel, linux-kernel

On Fri, 1 Jul 2022 20:52:53 +0200, dakr@redhat.com wrote:
> From: Danilo Krummrich <dakr@redhat.com>
> 
> This patch series initializes IDRs with idr_init_base(&idr, 1) rather than
> idr_init(&idr) in case for the particular IDR no IDs < 1 are ever requested -
> this avoids unnecessary tree walks.
> 
> Danilo Krummrich (10):
>   drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
>   drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
>   drm: use idr_init_base() to initialize master->magic_map
>   drm: use idr_init_base() to initialize master->lessee_idr
>   drm: use idr_init_base() to initialize mode_config.object_idr
>   drm: use idr_init_base() to initialize mode_config.tile_idr
>   drm/sis: use idr_init_base() to initialize dev_priv->object_idr
>   drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
>   drm/via: use idr_init_base() to initialize dev_priv->object_idr
>   drm/todo: remove task for idr_init_base()
> 
> [...]

Applied to drm/drm-misc (drm-misc-next).

Thanks!
Maxime

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

* Re: [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable
  2022-07-28 14:41 ` Maxime Ripard
@ 2022-07-28 14:44   ` Maxime Ripard
  2022-07-28 14:56     ` Danilo Krummrich
  0 siblings, 1 reply; 16+ messages in thread
From: Maxime Ripard @ 2022-07-28 14:44 UTC (permalink / raw)
  To: emma, daniel, dakr, airlied, christian.koenig; +Cc: linux-kernel, dri-devel

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

On Thu, Jul 28, 2022 at 04:41:41PM +0200, Maxime Ripard wrote:
> On Fri, 1 Jul 2022 20:52:53 +0200, dakr@redhat.com wrote:
> > From: Danilo Krummrich <dakr@redhat.com>
> > 
> > This patch series initializes IDRs with idr_init_base(&idr, 1) rather than
> > idr_init(&idr) in case for the particular IDR no IDs < 1 are ever requested -
> > this avoids unnecessary tree walks.
> > 
> > Danilo Krummrich (10):
> >   drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
> >   drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
> >   drm: use idr_init_base() to initialize master->magic_map
> >   drm: use idr_init_base() to initialize master->lessee_idr
> >   drm: use idr_init_base() to initialize mode_config.object_idr
> >   drm: use idr_init_base() to initialize mode_config.tile_idr
> >   drm/sis: use idr_init_base() to initialize dev_priv->object_idr
> >   drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
> >   drm/via: use idr_init_base() to initialize dev_priv->object_idr
> >   drm/todo: remove task for idr_init_base()
> > 
> > [...]
> 
> Applied to drm/drm-misc (drm-misc-next).

The via driver had changed a bit and the patch 9 didn't apply at all.
I've moved the change to where it looked like it belonged, but you might
want to double check.

Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

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

* Re: [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable
  2022-07-28 14:44   ` Maxime Ripard
@ 2022-07-28 14:56     ` Danilo Krummrich
  0 siblings, 0 replies; 16+ messages in thread
From: Danilo Krummrich @ 2022-07-28 14:56 UTC (permalink / raw)
  To: Maxime Ripard, emma, daniel, airlied, christian.koenig
  Cc: linux-kernel, dri-devel

On 7/28/22 16:44, Maxime Ripard wrote:
> On Thu, Jul 28, 2022 at 04:41:41PM +0200, Maxime Ripard wrote:
>> On Fri, 1 Jul 2022 20:52:53 +0200, dakr@redhat.com wrote:
>>> From: Danilo Krummrich <dakr@redhat.com>
>>>
>>> This patch series initializes IDRs with idr_init_base(&idr, 1) rather than
>>> idr_init(&idr) in case for the particular IDR no IDs < 1 are ever requested -
>>> this avoids unnecessary tree walks.
>>>
>>> Danilo Krummrich (10):
>>>    drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles
>>>    drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles
>>>    drm: use idr_init_base() to initialize master->magic_map
>>>    drm: use idr_init_base() to initialize master->lessee_idr
>>>    drm: use idr_init_base() to initialize mode_config.object_idr
>>>    drm: use idr_init_base() to initialize mode_config.tile_idr
>>>    drm/sis: use idr_init_base() to initialize dev_priv->object_idr
>>>    drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
>>>    drm/via: use idr_init_base() to initialize dev_priv->object_idr
>>>    drm/todo: remove task for idr_init_base()
>>>
>>> [...]
>>
>> Applied to drm/drm-misc (drm-misc-next).

Thanks.

> 
> The via driver had changed a bit and the patch 9 didn't apply at all.
> I've moved the change to where it looked like it belonged, but you might
> want to double check.

LGTM.

- Danilo
> 
> Maxime


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

end of thread, other threads:[~2022-07-28 14:56 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-01 18:52 [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable dakr
2022-07-01 18:52 ` [PATCH 01/10] drm/amdgpu: use idr_init_base() to initialize mgr->ctx_handles dakr
2022-07-01 18:52 ` [PATCH 02/10] drm/amdgpu: use idr_init_base() to initialize fpriv->bo_list_handles dakr
2022-07-01 18:52 ` [PATCH 03/10] drm: use idr_init_base() to initialize master->magic_map dakr
2022-07-01 18:52 ` [PATCH 04/10] drm: use idr_init_base() to initialize master->lessee_idr dakr
2022-07-01 18:52 ` [PATCH 05/10] drm: use idr_init_base() to initialize mode_config.object_idr dakr
2022-07-01 18:52 ` [PATCH 06/10] drm: use idr_init_base() to initialize mode_config.tile_idr dakr
2022-07-01 18:53 ` [PATCH 07/10] drm/sis: use idr_init_base() to initialize dev_priv->object_idr dakr
2022-07-01 19:02 ` [PATCH 08/10] drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr dakr
2022-07-01 19:02   ` [PATCH 09/10] drm/via: use idr_init_base() to initialize dev_priv->object_idr dakr
2022-07-01 19:02   ` [PATCH 10/10] drm/todo: remove task for idr_init_base() dakr
2022-07-04 13:09 ` [PATCH 00/10] drm: use idr_init_base() over idr_init() if applicable Christian König
2022-07-12 14:24 ` Danilo Krummrich
2022-07-28 14:41 ` Maxime Ripard
2022-07-28 14:44   ` Maxime Ripard
2022-07-28 14:56     ` Danilo Krummrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).