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_max() is inclusive. So a -1 has been added when needed.
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/gpu/drm/xe/xe_guc_submit.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 21ac68e3246f..11ffacd1dd58 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -311,7 +311,7 @@ static void __release_guc_id(struct xe_guc *guc, struct xe_exec_queue *q, u32 xa
q->guc->id - GUC_ID_START_MLRC,
order_base_2(q->width));
else
- ida_simple_remove(&guc->submission_state.guc_ids, q->guc->id);
+ ida_free(&guc->submission_state.guc_ids, q->guc->id);
}
static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
@@ -335,8 +335,8 @@ static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
ret = bitmap_find_free_region(bitmap, GUC_ID_NUMBER_MLRC,
order_base_2(q->width));
} else {
- ret = ida_simple_get(&guc->submission_state.guc_ids, 0,
- GUC_ID_NUMBER_SLRC, GFP_NOWAIT);
+ ret = ida_alloc_max(&guc->submission_state.guc_ids,
+ GUC_ID_NUMBER_SLRC - 1, GFP_NOWAIT);
}
if (ret < 0)
return ret;
--
2.43.0
Le 14/01/2024 à 16:09, Christophe JAILLET a écrit :
> 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_max() is inclusive. So a -1 has been added when needed.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/gpu/drm/xe/xe_guc_submit.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> index 21ac68e3246f..11ffacd1dd58 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -311,7 +311,7 @@ static void __release_guc_id(struct xe_guc *guc, struct xe_exec_queue *q, u32 xa
> q->guc->id - GUC_ID_START_MLRC,
> order_base_2(q->width));
> else
> - ida_simple_remove(&guc->submission_state.guc_ids, q->guc->id);
> + ida_free(&guc->submission_state.guc_ids, q->guc->id);
> }
>
> static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
> @@ -335,8 +335,8 @@ static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
> ret = bitmap_find_free_region(bitmap, GUC_ID_NUMBER_MLRC,
> order_base_2(q->width));
> } else {
> - ret = ida_simple_get(&guc->submission_state.guc_ids, 0,
> - GUC_ID_NUMBER_SLRC, GFP_NOWAIT);
> + ret = ida_alloc_max(&guc->submission_state.guc_ids,
> + GUC_ID_NUMBER_SLRC - 1, GFP_NOWAIT);
> }
> if (ret < 0)
> return ret;
Hi,
gentle reminder.
All patches to remove the ida_simple API have been sent.
And Matthew Wilcox seems happy with the on going work. (see [1])
Based on next-20240220
$git grep ida_simple_get | wc -l
36
https://elixir.bootlin.com/linux/v6.8-rc3/A/ident/ida_simple_get
50
https://elixir.bootlin.com/linux/v6.7.4/A/ident/ida_simple_get
81
Thanks
CJ
[1]: https://lore.kernel.org/all/[email protected]/
On Sun, Jan 14, 2024 at 04:09:16PM +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_max() is inclusive. So a -1 has been added when needed.
>
>Signed-off-by: Christophe JAILLET <[email protected]>
Reviewed-by: Lucas De Marchi <[email protected]>
Lucas De Marchi
>---
> drivers/gpu/drm/xe/xe_guc_submit.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
>index 21ac68e3246f..11ffacd1dd58 100644
>--- a/drivers/gpu/drm/xe/xe_guc_submit.c
>+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
>@@ -311,7 +311,7 @@ static void __release_guc_id(struct xe_guc *guc, struct xe_exec_queue *q, u32 xa
> q->guc->id - GUC_ID_START_MLRC,
> order_base_2(q->width));
> else
>- ida_simple_remove(&guc->submission_state.guc_ids, q->guc->id);
>+ ida_free(&guc->submission_state.guc_ids, q->guc->id);
> }
>
> static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
>@@ -335,8 +335,8 @@ static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
> ret = bitmap_find_free_region(bitmap, GUC_ID_NUMBER_MLRC,
> order_base_2(q->width));
> } else {
>- ret = ida_simple_get(&guc->submission_state.guc_ids, 0,
>- GUC_ID_NUMBER_SLRC, GFP_NOWAIT);
>+ ret = ida_alloc_max(&guc->submission_state.guc_ids,
>+ GUC_ID_NUMBER_SLRC - 1, GFP_NOWAIT);
> }
> if (ret < 0)
> return ret;
>--
>2.43.0
>
On Tue, Feb 20, 2024 at 02:34:53PM -0600, Lucas De Marchi wrote:
>On Sun, Jan 14, 2024 at 04:09:16PM +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_max() is inclusive. So a -1 has been added when needed.
>>
>>Signed-off-by: Christophe JAILLET <[email protected]>
>
>
>Reviewed-by: Lucas De Marchi <[email protected]>
just noticed we already have CI results for this. Applied to
drm-xe-next, thanks.
Lucas De Marchi
>
>Lucas De Marchi
>
>>---
>>drivers/gpu/drm/xe/xe_guc_submit.c | 6 +++---
>>1 file changed, 3 insertions(+), 3 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
>>index 21ac68e3246f..11ffacd1dd58 100644
>>--- a/drivers/gpu/drm/xe/xe_guc_submit.c
>>+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
>>@@ -311,7 +311,7 @@ static void __release_guc_id(struct xe_guc *guc, struct xe_exec_queue *q, u32 xa
>> q->guc->id - GUC_ID_START_MLRC,
>> order_base_2(q->width));
>> else
>>- ida_simple_remove(&guc->submission_state.guc_ids, q->guc->id);
>>+ ida_free(&guc->submission_state.guc_ids, q->guc->id);
>>}
>>
>>static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
>>@@ -335,8 +335,8 @@ static int alloc_guc_id(struct xe_guc *guc, struct xe_exec_queue *q)
>> ret = bitmap_find_free_region(bitmap, GUC_ID_NUMBER_MLRC,
>> order_base_2(q->width));
>> } else {
>>- ret = ida_simple_get(&guc->submission_state.guc_ids, 0,
>>- GUC_ID_NUMBER_SLRC, GFP_NOWAIT);
>>+ ret = ida_alloc_max(&guc->submission_state.guc_ids,
>>+ GUC_ID_NUMBER_SLRC - 1, GFP_NOWAIT);
>> }
>> if (ret < 0)
>> return ret;
>>--
>>2.43.0
>>