[<prev] [next>] [day] [month] [year] [list]
Message-ID: <201708061744.TtU6Ni9X%fengguang.wu@intel.com>
Date: Sun, 6 Aug 2017 17:39:48 +0800
From: kbuild test robot <fengguang.wu@...el.com>
To: Jan Kiszka <jan.kiszka@...mens.com>
Cc: kbuild-all@...org, linux-kernel@...r.kernel.org,
Ingo Molnar <mingo@...nel.org>
Subject: drivers/gpu/drm/i915/selftests/i915_gem_request.c:344: error:
'request' may be used uninitialized in this function
Hi Jan,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0fdd951c9bef93637d5af036851e7a5632fbd6c3
commit: 7e6091209f7f73e2a81943020793b5ad26d645c6 x86/build: Permit building with old make versions
date: 2 months ago
config: x86_64-randconfig-v0-08061633 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
git checkout 7e6091209f7f73e2a81943020793b5ad26d645c6
# save the attached .config to linux build tree
make ARCH=x86_64
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All errors (new ones prefixed by >>):
cc1: warnings being treated as errors
In file included from drivers/gpu/drm/i915/i915_gem_request.c:1219:
drivers/gpu/drm/i915/selftests/i915_gem_request.c: In function 'live_nop_request':
>> drivers/gpu/drm/i915/selftests/i915_gem_request.c:344: error: 'request' may be used uninitialized in this function
vim +/request +344 drivers/gpu/drm/i915/selftests/i915_gem_request.c
b348090d Chris Wilson 2017-02-13 326
b348090d Chris Wilson 2017-02-13 327 static int live_nop_request(void *arg)
b348090d Chris Wilson 2017-02-13 328 {
b348090d Chris Wilson 2017-02-13 329 struct drm_i915_private *i915 = arg;
b348090d Chris Wilson 2017-02-13 330 struct intel_engine_cs *engine;
b348090d Chris Wilson 2017-02-13 331 struct live_test t;
b348090d Chris Wilson 2017-02-13 332 unsigned int id;
b348090d Chris Wilson 2017-02-13 333 int err;
b348090d Chris Wilson 2017-02-13 334
b348090d Chris Wilson 2017-02-13 335 /* Submit various sized batches of empty requests, to each engine
b348090d Chris Wilson 2017-02-13 336 * (individually), and wait for the batch to complete. We can check
b348090d Chris Wilson 2017-02-13 337 * the overhead of submitting requests to the hardware.
b348090d Chris Wilson 2017-02-13 338 */
b348090d Chris Wilson 2017-02-13 339
b348090d Chris Wilson 2017-02-13 340 mutex_lock(&i915->drm.struct_mutex);
b348090d Chris Wilson 2017-02-13 341
b348090d Chris Wilson 2017-02-13 342 for_each_engine(engine, i915, id) {
b348090d Chris Wilson 2017-02-13 343 IGT_TIMEOUT(end_time);
b348090d Chris Wilson 2017-02-13 @344 struct drm_i915_gem_request *request;
b348090d Chris Wilson 2017-02-13 345 unsigned long n, prime;
b348090d Chris Wilson 2017-02-13 346 ktime_t times[2] = {};
b348090d Chris Wilson 2017-02-13 347
b348090d Chris Wilson 2017-02-13 348 err = begin_live_test(&t, i915, __func__, engine->name);
b348090d Chris Wilson 2017-02-13 349 if (err)
b348090d Chris Wilson 2017-02-13 350 goto out_unlock;
b348090d Chris Wilson 2017-02-13 351
b348090d Chris Wilson 2017-02-13 352 for_each_prime_number_from(prime, 1, 8192) {
b348090d Chris Wilson 2017-02-13 353 times[1] = ktime_get_raw();
b348090d Chris Wilson 2017-02-13 354
b348090d Chris Wilson 2017-02-13 355 for (n = 0; n < prime; n++) {
b348090d Chris Wilson 2017-02-13 356 request = i915_gem_request_alloc(engine,
b348090d Chris Wilson 2017-02-13 357 i915->kernel_context);
b348090d Chris Wilson 2017-02-13 358 if (IS_ERR(request)) {
b348090d Chris Wilson 2017-02-13 359 err = PTR_ERR(request);
b348090d Chris Wilson 2017-02-13 360 goto out_unlock;
b348090d Chris Wilson 2017-02-13 361 }
b348090d Chris Wilson 2017-02-13 362
b348090d Chris Wilson 2017-02-13 363 /* This space is left intentionally blank.
b348090d Chris Wilson 2017-02-13 364 *
b348090d Chris Wilson 2017-02-13 365 * We do not actually want to perform any
b348090d Chris Wilson 2017-02-13 366 * action with this request, we just want
b348090d Chris Wilson 2017-02-13 367 * to measure the latency in allocation
b348090d Chris Wilson 2017-02-13 368 * and submission of our breadcrumbs -
b348090d Chris Wilson 2017-02-13 369 * ensuring that the bare request is sufficient
b348090d Chris Wilson 2017-02-13 370 * for the system to work (i.e. proper HEAD
b348090d Chris Wilson 2017-02-13 371 * tracking of the rings, interrupt handling,
b348090d Chris Wilson 2017-02-13 372 * etc). It also gives us the lowest bounds
b348090d Chris Wilson 2017-02-13 373 * for latency.
b348090d Chris Wilson 2017-02-13 374 */
b348090d Chris Wilson 2017-02-13 375
b348090d Chris Wilson 2017-02-13 376 i915_add_request(request);
b348090d Chris Wilson 2017-02-13 377 }
b348090d Chris Wilson 2017-02-13 378 i915_wait_request(request,
b348090d Chris Wilson 2017-02-13 379 I915_WAIT_LOCKED,
b348090d Chris Wilson 2017-02-13 380 MAX_SCHEDULE_TIMEOUT);
b348090d Chris Wilson 2017-02-13 381
b348090d Chris Wilson 2017-02-13 382 times[1] = ktime_sub(ktime_get_raw(), times[1]);
b348090d Chris Wilson 2017-02-13 383 if (prime == 1)
b348090d Chris Wilson 2017-02-13 384 times[0] = times[1];
b348090d Chris Wilson 2017-02-13 385
b348090d Chris Wilson 2017-02-13 386 if (__igt_timeout(end_time, NULL))
b348090d Chris Wilson 2017-02-13 387 break;
b348090d Chris Wilson 2017-02-13 388 }
b348090d Chris Wilson 2017-02-13 389
b348090d Chris Wilson 2017-02-13 390 err = end_live_test(&t);
b348090d Chris Wilson 2017-02-13 391 if (err)
b348090d Chris Wilson 2017-02-13 392 goto out_unlock;
b348090d Chris Wilson 2017-02-13 393
b348090d Chris Wilson 2017-02-13 394 pr_info("Request latencies on %s: 1 = %lluns, %lu = %lluns\n",
b348090d Chris Wilson 2017-02-13 395 engine->name,
b348090d Chris Wilson 2017-02-13 396 ktime_to_ns(times[0]),
b348090d Chris Wilson 2017-02-13 397 prime, div64_u64(ktime_to_ns(times[1]), prime));
b348090d Chris Wilson 2017-02-13 398 }
b348090d Chris Wilson 2017-02-13 399
b348090d Chris Wilson 2017-02-13 400 out_unlock:
b348090d Chris Wilson 2017-02-13 401 mutex_unlock(&i915->drm.struct_mutex);
b348090d Chris Wilson 2017-02-13 402 return err;
b348090d Chris Wilson 2017-02-13 403 }
b348090d Chris Wilson 2017-02-13 404
:::::: The code at line 344 was first introduced by commit
:::::: b348090d6758cc391dc91f8a8233b18f0acc8458 drm/i915: Simple selftest to exercise live requests
:::::: TO: Chris Wilson <chris@...is-wilson.co.uk>
:::::: CC: Chris Wilson <chris@...is-wilson.co.uk>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (27728 bytes)
Powered by blists - more mailing lists