[PATCH v2] [PATCH] drm/amdgpu: Initialise drm_gem_object_funcs for imported BOs
kernel test robot
lkp at intel.com
Wed Dec 9 05:17:05 UTC 2020
Hi Andrey,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on drm-exynos/exynos-drm-next]
[also build test WARNING on drm-intel/for-linux-next tegra-drm/drm/tegra/for-next drm-tip/drm-tip linus/master v5.10-rc7 next-20201208]
[cannot apply to drm/drm-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Andrey-Grodzovsky/drm-amdgpu-Initialise-drm_gem_object_funcs-for-imported-BOs/20201209-041733
base: https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git exynos-drm-next
config: xtensa-randconfig-r004-20201208 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/a7b4d98b3660452b6787b39dc59980606b462ff3
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andrey-Grodzovsky/drm-amdgpu-Initialise-drm_gem_object_funcs-for-imported-BOs/20201209-041733
git checkout a7b4d98b3660452b6787b39dc59980606b462ff3
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All warnings (new ones prefixed by >>):
In file included from include/drm/drm_mm.h:49,
from include/drm/drm_vma_manager.h:26,
from include/drm/drm_gem.h:40,
from include/drm/drm_gem_ttm_helper.h:8,
from drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:36:
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c: In function 'amdgpu_gem_create_ioctl':
>> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:288:14: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'uint64_t' {aka 'long long unsigned int'} [-Wformat=]
288 | DRM_DEBUG("Failed to allocate GEM object (%ld, %d, %u, %d)\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289 | size, initial_domain, args->in.alignment, r);
| ~~~~
| |
| uint64_t {aka long long unsigned int}
include/drm/drm_print.h:504:25: note: in definition of macro 'DRM_DEBUG'
504 | __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__)
| ^~~
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:288:48: note: format string is defined here
288 | DRM_DEBUG("Failed to allocate GEM object (%ld, %d, %u, %d)\n",
| ~~^
| |
| long int
| %lld
In file included from include/drm/drm_mm.h:49,
from include/drm/drm_vma_manager.h:26,
from include/drm/drm_gem.h:40,
from include/drm/drm_gem_ttm_helper.h:8,
from drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:36:
>> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:288:14: warning: format '%u' expects argument of type 'unsigned int', but argument 5 has type '__u64' {aka 'long long unsigned int'} [-Wformat=]
288 | DRM_DEBUG("Failed to allocate GEM object (%ld, %d, %u, %d)\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289 | size, initial_domain, args->in.alignment, r);
| ~~~~~~~~~~~~~~~~~~
| |
| __u64 {aka long long unsigned int}
include/drm/drm_print.h:504:25: note: in definition of macro 'DRM_DEBUG'
504 | __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__)
| ^~~
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:288:56: note: format string is defined here
288 | DRM_DEBUG("Failed to allocate GEM object (%ld, %d, %u, %d)\n",
| ~^
| |
| unsigned int
| %llu
In file included from drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:38:
At top level:
drivers/gpu/drm/amd/amdgpu/amdgpu.h:198:19: warning: 'no_system_mem_limit' defined but not used [-Wunused-const-variable=]
198 | static const bool no_system_mem_limit;
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu.h:197:19: warning: 'debug_evictions' defined but not used [-Wunused-const-variable=]
197 | static const bool debug_evictions; /* = false */
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu.h:196:18: warning: 'sched_policy' defined but not used [-Wunused-const-variable=]
196 | static const int sched_policy = KFD_SCHED_POLICY_HWS;
| ^~~~~~~~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/dc_types.h:33,
from drivers/gpu/drm/amd/amdgpu/../display/dc/dm_services_types.h:30,
from drivers/gpu/drm/amd/amdgpu/../include/dm_pp_interface.h:26,
from drivers/gpu/drm/amd/amdgpu/amdgpu.h:67,
from drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:38:
drivers/gpu/drm/amd/amdgpu/../display/include/fixed31_32.h:76:32: warning: 'dc_fixpt_ln2_div_2' defined but not used [-Wunused-const-variable=]
76 | static const struct fixed31_32 dc_fixpt_ln2_div_2 = { 1488522236LL };
| ^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/fixed31_32.h:75:32: warning: 'dc_fixpt_ln2' defined but not used [-Wunused-const-variable=]
75 | static const struct fixed31_32 dc_fixpt_ln2 = { 2977044471LL };
| ^~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/fixed31_32.h:74:32: warning: 'dc_fixpt_e' defined but not used [-Wunused-const-variable=]
74 | static const struct fixed31_32 dc_fixpt_e = { 11674931555LL };
| ^~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/fixed31_32.h:73:32: warning: 'dc_fixpt_two_pi' defined but not used [-Wunused-const-variable=]
73 | static const struct fixed31_32 dc_fixpt_two_pi = { 26986075409LL };
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/fixed31_32.h:72:32: warning: 'dc_fixpt_pi' defined but not used [-Wunused-const-variable=]
72 | static const struct fixed31_32 dc_fixpt_pi = { 13493037705LL };
| ^~~~~~~~~~~
vim +288 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
213
214 /*
215 * GEM ioctls.
216 */
217 int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
218 struct drm_file *filp)
219 {
220 struct amdgpu_device *adev = drm_to_adev(dev);
221 struct amdgpu_fpriv *fpriv = filp->driver_priv;
222 struct amdgpu_vm *vm = &fpriv->vm;
223 union drm_amdgpu_gem_create *args = data;
224 uint64_t flags = args->in.domain_flags;
225 uint64_t size = args->in.bo_size;
226 struct dma_resv *resv = NULL;
227 struct drm_gem_object *gobj;
228 uint32_t handle, initial_domain;
229 int r;
230
231 /* reject invalid gem flags */
232 if (flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
233 AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
234 AMDGPU_GEM_CREATE_CPU_GTT_USWC |
235 AMDGPU_GEM_CREATE_VRAM_CLEARED |
236 AMDGPU_GEM_CREATE_VM_ALWAYS_VALID |
237 AMDGPU_GEM_CREATE_EXPLICIT_SYNC |
238 AMDGPU_GEM_CREATE_ENCRYPTED))
239
240 return -EINVAL;
241
242 /* reject invalid gem domains */
243 if (args->in.domains & ~AMDGPU_GEM_DOMAIN_MASK)
244 return -EINVAL;
245
246 if (!amdgpu_is_tmz(adev) && (flags & AMDGPU_GEM_CREATE_ENCRYPTED)) {
247 DRM_NOTE_ONCE("Cannot allocate secure buffer since TMZ is disabled\n");
248 return -EINVAL;
249 }
250
251 /* create a gem object to contain this object in */
252 if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS |
253 AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) {
254 if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) {
255 /* if gds bo is created from user space, it must be
256 * passed to bo list
257 */
258 DRM_ERROR("GDS bo cannot be per-vm-bo\n");
259 return -EINVAL;
260 }
261 flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
262 }
263
264 if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) {
265 r = amdgpu_bo_reserve(vm->root.base.bo, false);
266 if (r)
267 return r;
268
269 resv = vm->root.base.bo->tbo.base.resv;
270 }
271
272 retry:
273 initial_domain = (u32)(0xffffffff & args->in.domains);
274 r = amdgpu_gem_object_create(adev, size, args->in.alignment,
275 initial_domain,
276 flags, ttm_bo_type_device, resv, &gobj);
277 if (r) {
278 if (r != -ERESTARTSYS) {
279 if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) {
280 flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
281 goto retry;
282 }
283
284 if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) {
285 initial_domain |= AMDGPU_GEM_DOMAIN_GTT;
286 goto retry;
287 }
> 288 DRM_DEBUG("Failed to allocate GEM object (%ld, %d, %u, %d)\n",
289 size, initial_domain, args->in.alignment, r);
290 }
291 return r;
292 }
293
294 if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) {
295 if (!r) {
296 struct amdgpu_bo *abo = gem_to_amdgpu_bo(gobj);
297
298 abo->parent = amdgpu_bo_ref(vm->root.base.bo);
299 }
300 amdgpu_bo_unreserve(vm->root.base.bo);
301 }
302 if (r)
303 return r;
304
305 r = drm_gem_handle_create(filp, gobj, &handle);
306 /* drop reference from allocate - handle holds it now */
307 drm_gem_object_put(gobj);
308 if (r)
309 return r;
310
311 memset(args, 0, sizeof(*args));
312 args->out.handle = handle;
313 return 0;
314 }
315
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 30434 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20201209/24738870/attachment-0001.gz>
More information about the amd-gfx
mailing list