Re: [PATCH] drm/xe: Fix a build error

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

 



Hi,

On 1/29/24 17:48, Christian König wrote:
Am 27.01.24 um 16:53 schrieb Oak Zeng:
This fixes a build failure on drm-tip. This issue was introduced during
merge of "drm/ttm: replace busy placement with flags v6". For some
reason, the xe_bo.c part of above change is not merged. Manually merge
the missing part to drm_tip

Mhm, I provided this as manual fixup for drm-tip in this rerere commit:

commit afc5797e8c03bed3ec47a34f2bc3cf03fce24411
Author: Christian König <christian.koenig@xxxxxxx>
Date:   Thu Jan 25 10:44:54 2024 +0100

    2024y-01m-25d-09h-44m-07s UTC: drm-tip rerere cache update

    git version 2.34.1


And for me compiling xe in drm-tip worked fine after that. No idea why that didn't work for you.

Anyway feel free to add my rb to this patch here if it helps in any way.

Regards,
Christian.

I reverted that rerere cache update and added another one, so now it works. Not sure exactly what the difference was, but the resulting patch was for the drm-misc-next merge in my case, and It was for drm-xe-something in your case.

/Thomas




Signed-off-by: Oak Zeng <oak.zeng@xxxxxxxxx>
---
  drivers/gpu/drm/xe/xe_bo.c | 33 +++++++++++++++------------------
  1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 686d716c5581..d6a193060cc0 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -38,22 +38,26 @@ static const struct ttm_place sys_placement_flags = {
  static struct ttm_placement sys_placement = {
      .num_placement = 1,
      .placement = &sys_placement_flags,
-    .num_busy_placement = 1,
-    .busy_placement = &sys_placement_flags,
  };
  -static const struct ttm_place tt_placement_flags = {
-    .fpfn = 0,
-    .lpfn = 0,
-    .mem_type = XE_PL_TT,
-    .flags = 0,
+static const struct ttm_place tt_placement_flags[] = {
+    {
+        .fpfn = 0,
+        .lpfn = 0,
+        .mem_type = XE_PL_TT,
+        .flags = TTM_PL_FLAG_DESIRED,
+    },
+    {
+        .fpfn = 0,
+        .lpfn = 0,
+        .mem_type = XE_PL_SYSTEM,
+        .flags = TTM_PL_FLAG_FALLBACK,
+    }
  };
    static struct ttm_placement tt_placement = {
-    .num_placement = 1,
-    .placement = &tt_placement_flags,
-    .num_busy_placement = 1,
-    .busy_placement = &sys_placement_flags,
+    .num_placement = 2,
+    .placement = tt_placement_flags,
  };
    bool mem_type_is_vram(u32 mem_type)
@@ -230,8 +234,6 @@ static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
      bo->placement = (struct ttm_placement) {
          .num_placement = c,
          .placement = bo->placements,
-        .num_busy_placement = c,
-        .busy_placement = bo->placements,
      };
        return 0;
@@ -251,7 +253,6 @@ static void xe_evict_flags(struct ttm_buffer_object *tbo,
          /* Don't handle scatter gather BOs */
          if (tbo->type == ttm_bo_type_sg) {
              placement->num_placement = 0;
-            placement->num_busy_placement = 0;
              return;
          }
  @@ -1391,8 +1392,6 @@ static int __xe_bo_fixed_placement(struct xe_device *xe,
      bo->placement = (struct ttm_placement) {
          .num_placement = 1,
          .placement = place,
-        .num_busy_placement = 1,
-        .busy_placement = place,
      };
        return 0;
@@ -2150,9 +2149,7 @@ int xe_bo_migrate(struct xe_bo *bo, u32 mem_type)
        xe_place_from_ttm_type(mem_type, &requested);
      placement.num_placement = 1;
-    placement.num_busy_placement = 1;
      placement.placement = &requested;
-    placement.busy_placement = &requested;
        /*
       * Stolen needs to be handled like below VRAM handling if we ever need




[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