What do you mean the first in the chain ? and also can you explain the " 
perfect match." ? thanks 

Assume there is couple nodes equal to the size you requested, without this 
patch it will traveler to the bottom level of the RB tree and gives you
the node that close to the bottom level, which takes more time compared with 
break on the first node, but anyway you eventually get the node with the same 
size 

if there is no node that equal to the size you requested, without or with my 
patch the logic is totally the same.

/Monk
-----Original Message-----
From: Chris Wilson <[email protected]> 
Sent: Friday, November 23, 2018 5:03 PM
To: Liu, Monk <[email protected]>; [email protected]
Subject: Re: FW: [PATCH] drm: should break if already get the best size

Quoting Liu, Monk (2018-11-23 08:02:11)
> 
> 
> -----Original Message-----
> From: amd-gfx <[email protected]> On Behalf Of 
> Monk Liu
> Sent: Thursday, November 22, 2018 8:33 PM
> To: [email protected]
> Cc: Liu, Monk <[email protected]>
> Subject: [PATCH] drm: should break if already get the best size
> 
> Signed-off-by: Monk Liu <[email protected]>
> ---
>  drivers/gpu/drm/drm_mm.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c index 
> 3cc5fbd..369fd9b 100644
> --- a/drivers/gpu/drm/drm_mm.c
> +++ b/drivers/gpu/drm/drm_mm.c
> @@ -318,6 +318,8 @@ static struct drm_mm_node *best_hole(struct drm_mm *mm, 
> u64 size)
>                 if (size <= node->hole_size) {
>                         best = node;
>                         rb = rb->rb_right;
> +                       if (size == node->hole_size)
> +                               break;

No. The point is to find the first in the chain that matches because not every 
node is suitable. By not checking all best_sizes you may end up skipping the 
perfect match.
-Chris
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to