[PATCH v2 7/7] drm/xe/rtp: Simplify marking active workarounds

Lucas De Marchi lucas.demarchi at intel.com
Fri Jul 26 17:02:51 UTC 2024


On Fri, Jul 26, 2024 at 01:46:11PM GMT, Gustavo Sousa wrote:
>Quoting Lucas De Marchi (2024-07-26 03:43:37-03:00)
>>Stop doing the calculation both in rtp_mark_active() and in its caller.
>>The caller easily knows the number of entries to mark, so just pass it
>>forward. That also simplifies rtp_mark_active() since now it doesn't
>>have a special case when handling 1 entry.
>
>By the way, the "first == last" case was not even necessary, since "x -
>x + 1 = 1".

yeah, after the fix s/2/1/. I'm curious if something changed along the
way or if I hadn't enough coffee when I did that + 2 one year ago. I may
try some git/mailing-list digging to find out.

>
>:-)
>
>>
>>Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
>
>Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>

thanks
Lucas De Marchi

>
>>---
>> drivers/gpu/drm/xe/xe_rtp.c | 14 +++++---------
>> 1 file changed, 5 insertions(+), 9 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
>>index 1c641cc0f5a1..86727f34ca25 100644
>>--- a/drivers/gpu/drm/xe/xe_rtp.c
>>+++ b/drivers/gpu/drm/xe/xe_rtp.c
>>@@ -221,18 +221,15 @@ EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_ctx_enable_active_tracking);
>>
>> static void rtp_mark_active(struct xe_device *xe,
>>                             struct xe_rtp_process_ctx *ctx,
>>-                            unsigned int first, unsigned int last)
>>+                            unsigned int first, unsigned int n_entries)
>> {
>>         if (!ctx->active_entries)
>>                 return;
>>
>>-        if (drm_WARN_ON(&xe->drm, last > ctx->n_entries))
>>+        if (drm_WARN_ON(&xe->drm, first + n_entries > ctx->n_entries))
>>                 return;
>>
>>-        if (first == last)
>>-                bitmap_set(ctx->active_entries, first, 1);
>>-        else
>>-                bitmap_set(ctx->active_entries, first, last - first + 1);
>>+        bitmap_set(ctx->active_entries, first, n_entries);
>> }
>>
>> /**
>>@@ -277,8 +274,7 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
>>                 }
>>
>>                 if (match)
>>-                        rtp_mark_active(xe, ctx, entry - entries,
>>-                                        entry - entries);
>>+                        rtp_mark_active(xe, ctx, entry - entries, 1);
>>         }
>> }
>> EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
>>@@ -324,7 +320,7 @@ void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
>>                 entry--;
>>
>>                 rtp_mark_active(xe, ctx, first_entry - entries,
>>-                                entry - entries);
>>+                                entry - first_entry + 1);
>>         }
>> }
>> EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process);
>>--
>>2.43.0
>>


More information about the Intel-xe mailing list