Hi Dave, kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Dave-Airlie/ttm-use-gpu-mm-stats-to-track-gpu-memory-allocations/20250512-182204 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20250512061913.3522902-6-airlied%40gmail.com patch subject: [PATCH 5/7] ttm: add initial memcg integration. (v4) config: riscv-randconfig-001-20250512 (https://download.01.org/0day-ci/archive/20250512/202505122244.ieutpfwf-...@intel.com/config) compiler: riscv64-linux-gcc (GCC) 7.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250512/202505122244.ieutpfwf-...@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <l...@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202505122244.ieutpfwf-...@intel.com/ All error/warnings (new ones prefixed by >>): drivers/gpu/drm/xe/xe_bo.c: In function 'xe_bo_evict_pinned': >> drivers/gpu/drm/xe/xe_bo.c:1147:2: warning: the address of 'ctx' will always >> evaluate as 'true' [-Waddress] ret = ttm_bo_populate(&bo->ttm, &ctx); ^~~ >> drivers/gpu/drm/xe/xe_bo.c:1147:8: error: too few arguments to function >> 'ttm_bo_populate' ret = ttm_bo_populate(&bo->ttm, &ctx); ^~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/xe/xe_bo_types.h:12:0, from drivers/gpu/drm/xe/xe_bo.h:11, from drivers/gpu/drm/xe/xe_bo.c:6: include/drm/ttm/ttm_bo.h:494:5: note: declared here int ttm_bo_populate(struct ttm_buffer_object *bo, ^~~~~~~~~~~~~~~ drivers/gpu/drm/xe/xe_bo.c: In function 'xe_bo_restore_pinned': drivers/gpu/drm/xe/xe_bo.c:1208:2: warning: the address of 'ctx' will always evaluate as 'true' [-Waddress] ret = ttm_bo_populate(&bo->ttm, &ctx); ^~~ drivers/gpu/drm/xe/xe_bo.c:1208:8: error: too few arguments to function 'ttm_bo_populate' ret = ttm_bo_populate(&bo->ttm, &ctx); ^~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/xe/xe_bo_types.h:12:0, from drivers/gpu/drm/xe/xe_bo.h:11, from drivers/gpu/drm/xe/xe_bo.c:6: include/drm/ttm/ttm_bo.h:494:5: note: declared here int ttm_bo_populate(struct ttm_buffer_object *bo, ^~~~~~~~~~~~~~~ vim +/ttm_bo_populate +1147 drivers/gpu/drm/xe/xe_bo.c 00c8efc3180f0c Thomas Hellström 2025-03-05 1096 36919ebeaacab3 Matthew Auld 2023-04-06 1097 /** 36919ebeaacab3 Matthew Auld 2023-04-06 1098 * xe_bo_evict_pinned() - Evict a pinned VRAM object to system memory 36919ebeaacab3 Matthew Auld 2023-04-06 1099 * @bo: The buffer object to move. 36919ebeaacab3 Matthew Auld 2023-04-06 1100 * 75fd04f276de31 Nitin Gote 2025-01-06 1101 * On successful completion, the object memory will be moved to system memory. 36919ebeaacab3 Matthew Auld 2023-04-06 1102 * 36919ebeaacab3 Matthew Auld 2023-04-06 1103 * This is needed to for special handling of pinned VRAM object during 36919ebeaacab3 Matthew Auld 2023-04-06 1104 * suspend-resume. 36919ebeaacab3 Matthew Auld 2023-04-06 1105 * 36919ebeaacab3 Matthew Auld 2023-04-06 1106 * Return: 0 on success. Negative error code on failure. 36919ebeaacab3 Matthew Auld 2023-04-06 1107 */ 36919ebeaacab3 Matthew Auld 2023-04-06 1108 int xe_bo_evict_pinned(struct xe_bo *bo) 36919ebeaacab3 Matthew Auld 2023-04-06 1109 { 36919ebeaacab3 Matthew Auld 2023-04-06 1110 struct ttm_place place = { 36919ebeaacab3 Matthew Auld 2023-04-06 1111 .mem_type = XE_PL_TT, 36919ebeaacab3 Matthew Auld 2023-04-06 1112 }; 36919ebeaacab3 Matthew Auld 2023-04-06 1113 struct ttm_placement placement = { 36919ebeaacab3 Matthew Auld 2023-04-06 1114 .placement = &place, 36919ebeaacab3 Matthew Auld 2023-04-06 1115 .num_placement = 1, 36919ebeaacab3 Matthew Auld 2023-04-06 1116 }; 36919ebeaacab3 Matthew Auld 2023-04-06 1117 struct ttm_operation_ctx ctx = { 36919ebeaacab3 Matthew Auld 2023-04-06 1118 .interruptible = false, 6bd49cc1a8924c Thomas Hellström 2024-10-31 1119 .gfp_retry_mayfail = true, 36919ebeaacab3 Matthew Auld 2023-04-06 1120 }; 36919ebeaacab3 Matthew Auld 2023-04-06 1121 struct ttm_resource *new_mem; 36919ebeaacab3 Matthew Auld 2023-04-06 1122 int ret; 36919ebeaacab3 Matthew Auld 2023-04-06 1123 36919ebeaacab3 Matthew Auld 2023-04-06 1124 xe_bo_assert_held(bo); 36919ebeaacab3 Matthew Auld 2023-04-06 1125 36919ebeaacab3 Matthew Auld 2023-04-06 1126 if (WARN_ON(!bo->ttm.resource)) 36919ebeaacab3 Matthew Auld 2023-04-06 1127 return -EINVAL; 36919ebeaacab3 Matthew Auld 2023-04-06 1128 36919ebeaacab3 Matthew Auld 2023-04-06 1129 if (WARN_ON(!xe_bo_is_pinned(bo))) 36919ebeaacab3 Matthew Auld 2023-04-06 1130 return -EINVAL; 36919ebeaacab3 Matthew Auld 2023-04-06 1131 a19d1db9a3fa89 Matthew Brost 2024-10-31 1132 if (!xe_bo_is_vram(bo)) a19d1db9a3fa89 Matthew Brost 2024-10-31 1133 return 0; 36919ebeaacab3 Matthew Auld 2023-04-06 1134 36919ebeaacab3 Matthew Auld 2023-04-06 1135 ret = ttm_bo_mem_space(&bo->ttm, &placement, &new_mem, &ctx); 36919ebeaacab3 Matthew Auld 2023-04-06 1136 if (ret) 36919ebeaacab3 Matthew Auld 2023-04-06 1137 return ret; 36919ebeaacab3 Matthew Auld 2023-04-06 1138 36919ebeaacab3 Matthew Auld 2023-04-06 1139 if (!bo->ttm.ttm) { 36919ebeaacab3 Matthew Auld 2023-04-06 1140 bo->ttm.ttm = xe_ttm_tt_create(&bo->ttm, 0); 36919ebeaacab3 Matthew Auld 2023-04-06 1141 if (!bo->ttm.ttm) { 36919ebeaacab3 Matthew Auld 2023-04-06 1142 ret = -ENOMEM; 36919ebeaacab3 Matthew Auld 2023-04-06 1143 goto err_res_free; 36919ebeaacab3 Matthew Auld 2023-04-06 1144 } 36919ebeaacab3 Matthew Auld 2023-04-06 1145 } 36919ebeaacab3 Matthew Auld 2023-04-06 1146 fc5d96670eb254 Thomas Hellström 2024-09-11 @1147 ret = ttm_bo_populate(&bo->ttm, &ctx); 36919ebeaacab3 Matthew Auld 2023-04-06 1148 if (ret) 36919ebeaacab3 Matthew Auld 2023-04-06 1149 goto err_res_free; 36919ebeaacab3 Matthew Auld 2023-04-06 1150 36919ebeaacab3 Matthew Auld 2023-04-06 1151 ret = dma_resv_reserve_fences(bo->ttm.base.resv, 1); 36919ebeaacab3 Matthew Auld 2023-04-06 1152 if (ret) 36919ebeaacab3 Matthew Auld 2023-04-06 1153 goto err_res_free; 36919ebeaacab3 Matthew Auld 2023-04-06 1154 36919ebeaacab3 Matthew Auld 2023-04-06 1155 ret = xe_bo_move(&bo->ttm, false, &ctx, new_mem, NULL); 36919ebeaacab3 Matthew Auld 2023-04-06 1156 if (ret) 36919ebeaacab3 Matthew Auld 2023-04-06 1157 goto err_res_free; 36919ebeaacab3 Matthew Auld 2023-04-06 1158 36919ebeaacab3 Matthew Auld 2023-04-06 1159 return 0; 36919ebeaacab3 Matthew Auld 2023-04-06 1160 36919ebeaacab3 Matthew Auld 2023-04-06 1161 err_res_free: 36919ebeaacab3 Matthew Auld 2023-04-06 1162 ttm_resource_free(&bo->ttm, &new_mem); 36919ebeaacab3 Matthew Auld 2023-04-06 1163 return ret; 36919ebeaacab3 Matthew Auld 2023-04-06 1164 } 36919ebeaacab3 Matthew Auld 2023-04-06 1165 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki