* [PATCH] drm/vgm: replace idr_init() by idr_init_base()
@ 2020-11-04 11:23 Deepak R Varma
2020-11-05 9:42 ` Daniel Vetter
0 siblings, 1 reply; 5+ messages in thread
From: Deepak R Varma @ 2020-11-04 11:23 UTC (permalink / raw)
To: David Airlie, Daniel Vetter, dri-devel, linux-kernel; +Cc: mh12gx2825
idr_init() uses base 0 which is an invalid identifier. The new function
idr_init_base allows IDR to set the ID lookup from base 1. This avoids
all lookups that otherwise starts from 0 since 0 is always unused.
References: commit 6ce711f27500 ("idr: Make 1-based IDRs more efficient")
Signed-off-by: Deepak R Varma <mh12gx2825@gmail.com>
---
drivers/gpu/drm/vgem/vgem_fence.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c
index 17f32f550dd9..2902dc6e64fa 100644
--- a/drivers/gpu/drm/vgem/vgem_fence.c
+++ b/drivers/gpu/drm/vgem/vgem_fence.c
@@ -233,7 +233,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev,
int vgem_fence_open(struct vgem_file *vfile)
{
mutex_init(&vfile->fence_mutex);
- idr_init(&vfile->fence_idr);
+ idr_init_base(&vfile->fence_idr, 1);
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] drm/vgm: replace idr_init() by idr_init_base() 2020-11-04 11:23 [PATCH] drm/vgm: replace idr_init() by idr_init_base() Deepak R Varma @ 2020-11-05 9:42 ` Daniel Vetter 2020-11-05 10:31 ` Deepak R Varma 0 siblings, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2020-11-05 9:42 UTC (permalink / raw) To: Deepak R Varma; +Cc: David Airlie, Daniel Vetter, dri-devel, linux-kernel On Wed, Nov 04, 2020 at 04:53:38PM +0530, Deepak R Varma wrote: > idr_init() uses base 0 which is an invalid identifier. The new function > idr_init_base allows IDR to set the ID lookup from base 1. This avoids > all lookups that otherwise starts from 0 since 0 is always unused. > > References: commit 6ce711f27500 ("idr: Make 1-based IDRs more efficient") > > Signed-off-by: Deepak R Varma <mh12gx2825@gmail.com> Tiny typo in the commit message summary: s/vgm/vgem/ Also can you pls resbumit this with intel-gfx mailing list on cc (like for i915)? There's a CI bot there which runs a few vgem tests, would be good to confirm nothing has been broken. Otherwise lgtm. Thanks, Daniel > --- > drivers/gpu/drm/vgem/vgem_fence.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c > index 17f32f550dd9..2902dc6e64fa 100644 > --- a/drivers/gpu/drm/vgem/vgem_fence.c > +++ b/drivers/gpu/drm/vgem/vgem_fence.c > @@ -233,7 +233,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev, > int vgem_fence_open(struct vgem_file *vfile) > { > mutex_init(&vfile->fence_mutex); > - idr_init(&vfile->fence_idr); > + idr_init_base(&vfile->fence_idr, 1); > > return 0; > } > -- > 2.25.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/vgm: replace idr_init() by idr_init_base() 2020-11-05 9:42 ` Daniel Vetter @ 2020-11-05 10:31 ` Deepak R Varma 2020-11-05 11:16 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Deepak R Varma @ 2020-11-05 10:31 UTC (permalink / raw) To: David Airlie, dri-devel, linux-kernel; +Cc: daniel, mh12gx2825 On Thu, Nov 05, 2020 at 10:42:15AM +0100, Daniel Vetter wrote: > On Wed, Nov 04, 2020 at 04:53:38PM +0530, Deepak R Varma wrote: > > idr_init() uses base 0 which is an invalid identifier. The new function > > idr_init_base allows IDR to set the ID lookup from base 1. This avoids > > all lookups that otherwise starts from 0 since 0 is always unused. > > > > References: commit 6ce711f27500 ("idr: Make 1-based IDRs more efficient") > > > > Signed-off-by: Deepak R Varma <mh12gx2825@gmail.com> > > Tiny typo in the commit message summary: s/vgm/vgem/ > > Also can you pls resbumit this with intel-gfx mailing list on cc (like for > i915)? There's a CI bot there which runs a few vgem tests, would be good > to confirm nothing has been broken. Hi Daniel, sure. I will correct the summary typo and also feed it to the CI bot. Also, according to Felix Kuehling's comment on a similar patch for drm/amdkfd driver, an ID can be 0. The change I am proposing is more efficient for conditions that do not want to use ID as 0. Otherwise, id = 0 is an acceptable possibility. So, my statement that "Id 0 is an invalid identifier" is not true. Can you please comment if this is accurate and I should reword my log message as well? Thank you. ./drv > > Otherwise lgtm. > > Thanks, Daniel > > > --- > > drivers/gpu/drm/vgem/vgem_fence.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c > > index 17f32f550dd9..2902dc6e64fa 100644 > > --- a/drivers/gpu/drm/vgem/vgem_fence.c > > +++ b/drivers/gpu/drm/vgem/vgem_fence.c > > @@ -233,7 +233,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev, > > int vgem_fence_open(struct vgem_file *vfile) > > { > > mutex_init(&vfile->fence_mutex); > > - idr_init(&vfile->fence_idr); > > + idr_init_base(&vfile->fence_idr, 1); > > > > return 0; > > } > > -- > > 2.25.1 > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/vgm: replace idr_init() by idr_init_base() 2020-11-05 10:31 ` Deepak R Varma @ 2020-11-05 11:16 ` Daniel Vetter 2020-11-05 17:40 ` Deepak R Varma 0 siblings, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2020-11-05 11:16 UTC (permalink / raw) To: Deepak R Varma; +Cc: David Airlie, dri-devel, Linux Kernel Mailing List On Thu, Nov 5, 2020 at 11:31 AM Deepak R Varma <mh12gx2825@gmail.com> wrote: > > On Thu, Nov 05, 2020 at 10:42:15AM +0100, Daniel Vetter wrote: > > On Wed, Nov 04, 2020 at 04:53:38PM +0530, Deepak R Varma wrote: > > > idr_init() uses base 0 which is an invalid identifier. The new function > > > idr_init_base allows IDR to set the ID lookup from base 1. This avoids > > > all lookups that otherwise starts from 0 since 0 is always unused. > > > > > > References: commit 6ce711f27500 ("idr: Make 1-based IDRs more efficient") > > > > > > Signed-off-by: Deepak R Varma <mh12gx2825@gmail.com> > > > > Tiny typo in the commit message summary: s/vgm/vgem/ > > > > Also can you pls resbumit this with intel-gfx mailing list on cc (like for > > i915)? There's a CI bot there which runs a few vgem tests, would be good > > to confirm nothing has been broken. > > Hi Daniel, > sure. I will correct the summary typo and also feed it to the CI bot. > > Also, according to Felix Kuehling's comment on a similar patch for > drm/amdkfd driver, an ID can be 0. The change I am proposing is more > efficient for conditions that do not want to use ID as 0. Otherwise, > id = 0 is an acceptable possibility. So, my statement that "Id 0 is an invalid > identifier" is not true. > > Can you please comment if this is accurate and I should reword my log > message as well? You need to review the vgem code to see whether we're using id 0 as invalid identifier or not. That's part of the work that needs to be done here. Best would be to explain the evidence you've found in the commit message, why id 0 is invalid for this specific code. Since yes in general that's not true, it depends how the idr is used. -Daniel > > Thank you. > ./drv > > > > > Otherwise lgtm. > > > > Thanks, Daniel > > > > > --- > > > drivers/gpu/drm/vgem/vgem_fence.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c > > > index 17f32f550dd9..2902dc6e64fa 100644 > > > --- a/drivers/gpu/drm/vgem/vgem_fence.c > > > +++ b/drivers/gpu/drm/vgem/vgem_fence.c > > > @@ -233,7 +233,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev, > > > int vgem_fence_open(struct vgem_file *vfile) > > > { > > > mutex_init(&vfile->fence_mutex); > > > - idr_init(&vfile->fence_idr); > > > + idr_init_base(&vfile->fence_idr, 1); > > > > > > return 0; > > > } > > > -- > > > 2.25.1 > > > > > > > -- > > Daniel Vetter > > Software Engineer, Intel Corporation > > http://blog.ffwll.ch -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/vgm: replace idr_init() by idr_init_base() 2020-11-05 11:16 ` Daniel Vetter @ 2020-11-05 17:40 ` Deepak R Varma 0 siblings, 0 replies; 5+ messages in thread From: Deepak R Varma @ 2020-11-05 17:40 UTC (permalink / raw) To: Daniel Vetter; +Cc: David Airlie, dri-devel, Linux Kernel Mailing List On Thu, Nov 05, 2020 at 12:16:34PM +0100, Daniel Vetter wrote: > On Thu, Nov 5, 2020 at 11:31 AM Deepak R Varma <mh12gx2825@gmail.com> wrote: > > > > On Thu, Nov 05, 2020 at 10:42:15AM +0100, Daniel Vetter wrote: > > > On Wed, Nov 04, 2020 at 04:53:38PM +0530, Deepak R Varma wrote: > > > > idr_init() uses base 0 which is an invalid identifier. The new function > > > > idr_init_base allows IDR to set the ID lookup from base 1. This avoids > > > > all lookups that otherwise starts from 0 since 0 is always unused. > > > > > > > > References: commit 6ce711f27500 ("idr: Make 1-based IDRs more efficient") > > > > > > > > Signed-off-by: Deepak R Varma <mh12gx2825@gmail.com> > > > > > > Tiny typo in the commit message summary: s/vgm/vgem/ > > > > > > Also can you pls resbumit this with intel-gfx mailing list on cc (like for > > > i915)? There's a CI bot there which runs a few vgem tests, would be good > > > to confirm nothing has been broken. > > > > Hi Daniel, > > sure. I will correct the summary typo and also feed it to the CI bot. > > > > Also, according to Felix Kuehling's comment on a similar patch for > > drm/amdkfd driver, an ID can be 0. The change I am proposing is more > > efficient for conditions that do not want to use ID as 0. Otherwise, > > id = 0 is an acceptable possibility. So, my statement that "Id 0 is an invalid > > identifier" is not true. > > > > Can you please comment if this is accurate and I should reword my log > > message as well? > > You need to review the vgem code to see whether we're using id 0 as > invalid identifier or not. That's part of the work that needs to be > done here. Best would be to explain the evidence you've found in the > commit message, why id 0 is invalid for this specific code. Since yes > in general that's not true, it depends how the idr is used. > -Daniel > You are correct. For the vgem driver, id 0 is not used. The patch should then apply to this driver. Thank you very much Daniel. I have just sent v2 of the patch with your suggestions. ./drv > > > > Thank you. > > ./drv > > > > > > > > Otherwise lgtm. > > > > > > Thanks, Daniel > > > > > > > --- > > > > drivers/gpu/drm/vgem/vgem_fence.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c > > > > index 17f32f550dd9..2902dc6e64fa 100644 > > > > --- a/drivers/gpu/drm/vgem/vgem_fence.c > > > > +++ b/drivers/gpu/drm/vgem/vgem_fence.c > > > > @@ -233,7 +233,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev, > > > > int vgem_fence_open(struct vgem_file *vfile) > > > > { > > > > mutex_init(&vfile->fence_mutex); > > > > - idr_init(&vfile->fence_idr); > > > > + idr_init_base(&vfile->fence_idr, 1); > > > > > > > > return 0; > > > > } > > > > -- > > > > 2.25.1 > > > > > > > > > > -- > > > Daniel Vetter > > > Software Engineer, Intel Corporation > > > http://blog.ffwll.ch > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-11-05 17:40 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-11-04 11:23 [PATCH] drm/vgm: replace idr_init() by idr_init_base() Deepak R Varma 2020-11-05 9:42 ` Daniel Vetter 2020-11-05 10:31 ` Deepak R Varma 2020-11-05 11:16 ` Daniel Vetter 2020-11-05 17:40 ` Deepak R Varma
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox