On 5/28/2025 1:19 AM, Deng, Emily wrote:

[AMD Official Use Only - AMD Internal Distribution Only]


*From:*amd-gfx <[email protected]> *On Behalf Of *Deng, Emily
*Sent:* Monday, May 26, 2025 9:51 AM
*To:* Chen, Xiaogang <[email protected]>; [email protected]
*Subject:* RE: [PATCH v2] drm/ttm: Should to return the evict error

[AMD Official Use Only - AMD Internal Distribution Only]

[AMD Official Use Only - AMD Internal Distribution Only]

*From:*Chen, Xiaogang <[email protected]>
*Sent:* Friday, May 23, 2025 6:27 AM
*To:* Deng, Emily <[email protected]>; [email protected]
*Subject:* Re: [PATCH v2] drm/ttm: Should to return the evict error

On 5/21/2025 9:42 PM, Deng, Emily wrote:

    [AMD Official Use Only - AMD Internal Distribution Only]

    [AMD Official Use Only - AMD Internal Distribution Only]

    Ping......

    Emily Deng

    Best Wishes

        -----Original Message-----

        From: Emily Deng<[email protected]> <mailto:[email protected]>

        Sent: Wednesday, May 21, 2025 11:57 AM

        To:[email protected]

        Cc: Deng, Emily<[email protected]> <mailto:[email protected]>

        Subject: [PATCH v2] drm/ttm: Should to return the evict error

        For the evict fail case, the evict error should be returned.

        v2: Consider ENOENT case.

        Signed-off-by: Emily Deng<[email protected]> 
<mailto:[email protected]>

        ---

        drivers/gpu/drm/ttm/ttm_resource.c | 8 ++++----

        1 file changed, 4 insertions(+), 4 deletions(-)

        diff --git a/drivers/gpu/drm/ttm/ttm_resource.c 
b/drivers/gpu/drm/ttm/ttm_resource.c

        index 097716bd248a..abf104ae9d35 100644

        --- a/drivers/gpu/drm/ttm/ttm_resource.c

        +++ b/drivers/gpu/drm/ttm/ttm_resource.c

        @@ -511,12 +511,12 @@ int ttm_resource_manager_evict_all(struct 
ttm_device

        *bdev,

                       .force_alloc = true

               };

               struct dma_fence *fence;

        -      int ret;

        +      int ret, evict_ret = 0;

               do {

        -              ret = ttm_bo_evict_first(bdev, man, &ctx);

        +              evict_ret = ttm_bo_evict_first(bdev, man, &ctx);

                       cond_resched();

        -      } while (!ret);

        +      } while (!evict_ret);

               spin_lock(&man->move_lock);

               fence = dma_fence_get(man->move);

        @@ -529,7 +529,7 @@ int ttm_resource_manager_evict_all(struct 
ttm_device *bdev,

                               return ret;

               }

        -      return 0;

        +      return (evict_ret == -ENOENT) ? 0 : evict_ret;

        }

Can you explain why you care ENOENT(No such file or directory) specifically?

Regards

Xiaogang

For ENOENT, it simply means the resource or file doesn't exist—it doesn't indicate an error during eviction. We only need to focus on actual eviction-related errors.

I think I know what you mean. But I have a different view on that. ttm_resource_manager_evict_all release all resources associated with a ttm_resource_manager(man). It is part of memory manager cleanup sequence. Even it fail(no matter what reason is) I think the following memory manager cleanup should still continue going, then the returned error value should not be used to stop following clean up.

I think @Christian König can give judgment on it.

Regards

Xiaogang

Emily Deng

Best Wishes

        EXPORT_SYMBOL(ttm_resource_manager_evict_all);

        --

        2.34.1

Reply via email to