Re: [PATCH v3] drm/ttm: fix error handling if no BO can be swapped out

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 22.04.21 um 12:25 schrieb Shiwu Zhang:
In case that all pre-allocated BOs are busy, just continue to populate

I'm not a native speaker of English either, but I think that should read "previously allocated".

BOs since likely half of system memory in total is still free.

Signed-off-by: Shiwu Zhang <shiwu.zhang@xxxxxxx>

---
  drivers/gpu/drm/ttm/ttm_device.c | 2 +-
  drivers/gpu/drm/ttm/ttm_tt.c     | 2 ++
  2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c
index 1f2024164d72..a48fe4dccd61 100644
--- a/drivers/gpu/drm/ttm/ttm_device.c
+++ b/drivers/gpu/drm/ttm/ttm_device.c
@@ -112,7 +112,7 @@ int ttm_global_swapout(struct ttm_operation_ctx *ctx, gfp_t gfp_flags)
  {
  	struct ttm_global *glob = &ttm_glob;
  	struct ttm_device *bdev;
-	int ret = -EBUSY;
+	int ret;

Oh, we have been inconsistent here?

In this case we should indeed zero initialize the variable and also fix the only other user in vmwgfx!

Going to take care of this myself.

Thanks for the help,
Christian.

mutex_lock(&ttm_global_mutex);
  	list_for_each_entry(bdev, &glob->device_list, device_list) {
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index 48c407cff112..539e0232cb3b 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -329,6 +329,8 @@ int ttm_tt_populate(struct ttm_device *bdev,
  	       ttm_dma32_pages_limit) {
ret = ttm_global_swapout(ctx, GFP_KERNEL);
+		if (ret == 0)
+			break;
  		if (ret < 0)
  			goto error;
  	}

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux