2024-01-14 15:15:59

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] drm/i915/guc: Remove usage of the deprecated ida_simple_xx() API

ida_alloc() and ida_free() should be preferred to the deprecated
ida_simple_get() and ida_simple_remove().

Note that the upper limit of ida_simple_get() is exclusive, but the one of
ida_alloc_range() is inclusive. So a -1 has been added when needed.

Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index a259f1118c5a..73ce21ddf682 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -2156,11 +2156,10 @@ static int new_guc_id(struct intel_guc *guc, struct intel_context *ce)
order_base_2(ce->parallel.number_children
+ 1));
else
- ret = ida_simple_get(&guc->submission_state.guc_ids,
- NUMBER_MULTI_LRC_GUC_ID(guc),
- guc->submission_state.num_guc_ids,
- GFP_KERNEL | __GFP_RETRY_MAYFAIL |
- __GFP_NOWARN);
+ ret = ida_alloc_range(&guc->submission_state.guc_ids,
+ NUMBER_MULTI_LRC_GUC_ID(guc),
+ guc->submission_state.num_guc_ids - 1,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (unlikely(ret < 0))
return ret;

@@ -2183,8 +2182,8 @@ static void __release_guc_id(struct intel_guc *guc, struct intel_context *ce)
+ 1));
} else {
--guc->submission_state.guc_ids_in_use;
- ida_simple_remove(&guc->submission_state.guc_ids,
- ce->guc_id.id);
+ ida_free(&guc->submission_state.guc_ids,
+ ce->guc_id.id);
}
clr_ctx_id_mapping(guc, ce->guc_id.id);
set_context_guc_id_invalid(ce);
--
2.43.0



2024-01-25 00:06:04

by Matthew Brost

[permalink] [raw]
Subject: Re: [PATCH] drm/i915/guc: Remove usage of the deprecated ida_simple_xx() API

On Sun, Jan 14, 2024 at 04:15:34PM +0100, Christophe JAILLET wrote:
> ida_alloc() and ida_free() should be preferred to the deprecated
> ida_simple_get() and ida_simple_remove().
>
> Note that the upper limit of ida_simple_get() is exclusive, but the one of
> ida_alloc_range() is inclusive. So a -1 has been added when needed.
>
> Signed-off-by: Christophe JAILLET <[email protected]>

Reviewed-by: Matthew Brost <[email protected]>

> ---
> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> index a259f1118c5a..73ce21ddf682 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> @@ -2156,11 +2156,10 @@ static int new_guc_id(struct intel_guc *guc, struct intel_context *ce)
> order_base_2(ce->parallel.number_children
> + 1));
> else
> - ret = ida_simple_get(&guc->submission_state.guc_ids,
> - NUMBER_MULTI_LRC_GUC_ID(guc),
> - guc->submission_state.num_guc_ids,
> - GFP_KERNEL | __GFP_RETRY_MAYFAIL |
> - __GFP_NOWARN);
> + ret = ida_alloc_range(&guc->submission_state.guc_ids,
> + NUMBER_MULTI_LRC_GUC_ID(guc),
> + guc->submission_state.num_guc_ids - 1,
> + GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
> if (unlikely(ret < 0))
> return ret;
>
> @@ -2183,8 +2182,8 @@ static void __release_guc_id(struct intel_guc *guc, struct intel_context *ce)
> + 1));
> } else {
> --guc->submission_state.guc_ids_in_use;
> - ida_simple_remove(&guc->submission_state.guc_ids,
> - ce->guc_id.id);
> + ida_free(&guc->submission_state.guc_ids,
> + ce->guc_id.id);
> }
> clr_ctx_id_mapping(guc, ce->guc_id.id);
> set_context_guc_id_invalid(ce);
> --
> 2.43.0
>

2024-04-14 08:28:00

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH] drm/i915/guc: Remove usage of the deprecated ida_simple_xx() API

Le 25/01/2024 à 01:04, Matthew Brost a écrit :
> On Sun, Jan 14, 2024 at 04:15:34PM +0100, Christophe JAILLET wrote:
>> ida_alloc() and ida_free() should be preferred to the deprecated
>> ida_simple_get() and ida_simple_remove().
>>
>> Note that the upper limit of ida_simple_get() is exclusive, but the one of
>> ida_alloc_range() is inclusive. So a -1 has been added when needed.
>>
>> Signed-off-by: Christophe JAILLET <[email protected]>
>
> Reviewed-by: Matthew Brost <[email protected]>

Hi,

polite reminder ;-)

CJ

>
>> ---
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 13 ++++++-------
>> 1 file changed, 6 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
>> index a259f1118c5a..73ce21ddf682 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
>> @@ -2156,11 +2156,10 @@ static int new_guc_id(struct intel_guc *guc, struct intel_context *ce)
>> order_base_2(ce->parallel.number_children
>> + 1));
>> else
>> - ret = ida_simple_get(&guc->submission_state.guc_ids,
>> - NUMBER_MULTI_LRC_GUC_ID(guc),
>> - guc->submission_state.num_guc_ids,
>> - GFP_KERNEL | __GFP_RETRY_MAYFAIL |
>> - __GFP_NOWARN);
>> + ret = ida_alloc_range(&guc->submission_state.guc_ids,
>> + NUMBER_MULTI_LRC_GUC_ID(guc),
>> + guc->submission_state.num_guc_ids - 1,
>> + GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
>> if (unlikely(ret < 0))
>> return ret;
>>
>> @@ -2183,8 +2182,8 @@ static void __release_guc_id(struct intel_guc *guc, struct intel_context *ce)
>> + 1));
>> } else {
>> --guc->submission_state.guc_ids_in_use;
>> - ida_simple_remove(&guc->submission_state.guc_ids,
>> - ce->guc_id.id);
>> + ida_free(&guc->submission_state.guc_ids,
>> + ce->guc_id.id);
>> }
>> clr_ctx_id_mapping(guc, ce->guc_id.id);
>> set_context_guc_id_invalid(ce);
>> --
>> 2.43.0
>>
>
>


2024-04-14 23:43:07

by Matthew Brost

[permalink] [raw]
Subject: Re: [PATCH] drm/i915/guc: Remove usage of the deprecated ida_simple_xx() API

On Sun, Apr 14, 2024 at 10:26:35AM +0200, Christophe JAILLET wrote:
> Le 25/01/2024 ? 01:04, Matthew Brost a ?crit?:
> > On Sun, Jan 14, 2024 at 04:15:34PM +0100, Christophe JAILLET wrote:
> > > ida_alloc() and ida_free() should be preferred to the deprecated
> > > ida_simple_get() and ida_simple_remove().
> > >
> > > Note that the upper limit of ida_simple_get() is exclusive, but the one of
> > > ida_alloc_range() is inclusive. So a -1 has been added when needed.
> > >
> > > Signed-off-by: Christophe JAILLET <[email protected]>
> >
> > Reviewed-by: Matthew Brost <[email protected]>
>
> Hi,
>
> polite reminder ;-)
>

Merged. Thanks for the patch.

Matt

> CJ
>
> >
> > > ---
> > > drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 13 ++++++-------
> > > 1 file changed, 6 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> > > index a259f1118c5a..73ce21ddf682 100644
> > > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> > > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> > > @@ -2156,11 +2156,10 @@ static int new_guc_id(struct intel_guc *guc, struct intel_context *ce)
> > > order_base_2(ce->parallel.number_children
> > > + 1));
> > > else
> > > - ret = ida_simple_get(&guc->submission_state.guc_ids,
> > > - NUMBER_MULTI_LRC_GUC_ID(guc),
> > > - guc->submission_state.num_guc_ids,
> > > - GFP_KERNEL | __GFP_RETRY_MAYFAIL |
> > > - __GFP_NOWARN);
> > > + ret = ida_alloc_range(&guc->submission_state.guc_ids,
> > > + NUMBER_MULTI_LRC_GUC_ID(guc),
> > > + guc->submission_state.num_guc_ids - 1,
> > > + GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
> > > if (unlikely(ret < 0))
> > > return ret;
> > > @@ -2183,8 +2182,8 @@ static void __release_guc_id(struct intel_guc *guc, struct intel_context *ce)
> > > + 1));
> > > } else {
> > > --guc->submission_state.guc_ids_in_use;
> > > - ida_simple_remove(&guc->submission_state.guc_ids,
> > > - ce->guc_id.id);
> > > + ida_free(&guc->submission_state.guc_ids,
> > > + ce->guc_id.id);
> > > }
> > > clr_ctx_id_mapping(guc, ce->guc_id.id);
> > > set_context_guc_id_invalid(ce);
> > > --
> > > 2.43.0
> > >
> >
> >
>