Public
Regards,
Prike
> -----Original Message-----
> From: Koenig, Christian <[email protected]>
> Sent: Tuesday, May 26, 2026 4:15 PM
> To: Liang, Prike <[email protected]>; [email protected]
> Cc: Deucher, Alexander <[email protected]>
> Subject: Re: [PATCH] drm/amdgpu: improve the userq seq BO free bit lookup
>
>
>
> On 5/26/26 04:58, Prike Liang wrote:
> > Use find_next_zero_bit() to locate the next free seq slot bit instead
> > of the current walk, for more efficient bitmap scanning.
> >
> > Signed-off-by: Prike Liang <[email protected]>
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c | 9 +++++----
> > 1 file changed, 5 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
> > index f4be19223588..63771d6d466e 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
> > @@ -175,14 +175,15 @@ int amdgpu_seq64_alloc(struct amdgpu_device
> > *adev, u64 *va, {
> > unsigned long bit_pos;
> >
> > - for (;;) {
> > - bit_pos = find_first_zero_bit(adev->seq64.used, adev-
> >seq64.num_sem);
> > + do {
> > + bit_pos = find_next_zero_bit(adev->seq64.used,
> > + adev->seq64.num_sem, bit_pos);
>
> bit_pos is uninitialized for the first look here.
Thanks, will fix it in the v2 version.
>
> > if (bit_pos >= adev->seq64.num_sem)
> > return -ENOSPC;
> > -
> > if (!test_and_set_bit(bit_pos, adev->seq64.used))
> > break;
> > - }
> > + bit_pos++;
> > + } while (1);
> >
> > *va = bit_pos * sizeof(u64) + amdgpu_seq64_get_va_base(adev);
> >