From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [linux-next:pending-fixes 86/168] drivers/gpu/drm/i915/gt/selftest_lrc.c:1333:3: error: too few arguments to function 'engine_heartbeat_disable'
Date: Tue, 16 Jun 2020 12:38:11 +0800 [thread overview]
Message-ID: <202006161209.4TYE29pc%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 5173 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git pending-fixes
head: d1a574997c4e461b39d3c8162b5fcf1a402888b7
commit: 04dc41776145f539ab6da442cb633e45539bed9a [86/168] drm/i915/gt: Prevent timeslicing into unpreemptable requests
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Note: the linux-next/pending-fixes HEAD d1a574997c4e461b39d3c8162b5fcf1a402888b7 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>, old ones prefixed by <<):
In file included from drivers/gpu/drm/i915/gt/intel_lrc.c:5953:
drivers/gpu/drm/i915/gt/selftest_lrc.c: In function 'live_timeslice_nopreempt':
>> drivers/gpu/drm/i915/gt/selftest_lrc.c:1333:3: error: too few arguments to function 'engine_heartbeat_disable'
1333 | engine_heartbeat_disable(engine);
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/selftest_lrc.c:54:13: note: declared here
54 | static void engine_heartbeat_disable(struct intel_engine_cs *engine,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/selftest_lrc.c:1402:3: error: too few arguments to function 'engine_heartbeat_enable'
1402 | engine_heartbeat_enable(engine);
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/selftest_lrc.c:64:13: note: declared here
64 | static void engine_heartbeat_enable(struct intel_engine_cs *engine,
| ^~~~~~~~~~~~~~~~~~~~~~~
vim +/engine_heartbeat_disable +1333 drivers/gpu/drm/i915/gt/selftest_lrc.c
1300
1301 static int live_timeslice_nopreempt(void *arg)
1302 {
1303 struct intel_gt *gt = arg;
1304 struct intel_engine_cs *engine;
1305 enum intel_engine_id id;
1306 struct igt_spinner spin;
1307 int err = 0;
1308
1309 /*
1310 * We should not timeslice into a request that is marked with
1311 * I915_REQUEST_NOPREEMPT.
1312 */
1313 if (!IS_ACTIVE(CONFIG_DRM_I915_TIMESLICE_DURATION))
1314 return 0;
1315
1316 if (igt_spinner_init(&spin, gt))
1317 return -ENOMEM;
1318
1319 for_each_engine(engine, gt, id) {
1320 struct intel_context *ce;
1321 struct i915_request *rq;
1322 unsigned long timeslice;
1323
1324 if (!intel_engine_has_preemption(engine))
1325 continue;
1326
1327 ce = intel_context_create(engine);
1328 if (IS_ERR(ce)) {
1329 err = PTR_ERR(ce);
1330 break;
1331 }
1332
> 1333 engine_heartbeat_disable(engine);
1334 timeslice = xchg(&engine->props.timeslice_duration_ms, 1);
1335
1336 /* Create an unpreemptible spinner */
1337
1338 rq = igt_spinner_create_request(&spin, ce, MI_ARB_CHECK);
1339 intel_context_put(ce);
1340 if (IS_ERR(rq)) {
1341 err = PTR_ERR(rq);
1342 goto out_heartbeat;
1343 }
1344
1345 i915_request_get(rq);
1346 i915_request_add(rq);
1347
1348 if (!igt_wait_for_spinner(&spin, rq)) {
1349 i915_request_put(rq);
1350 err = -ETIME;
1351 goto out_spin;
1352 }
1353
1354 set_bit(I915_FENCE_FLAG_NOPREEMPT, &rq->fence.flags);
1355 i915_request_put(rq);
1356
1357 /* Followed by a maximum priority barrier (heartbeat) */
1358
1359 ce = intel_context_create(engine);
1360 if (IS_ERR(ce)) {
1361 err = PTR_ERR(rq);
1362 goto out_spin;
1363 }
1364
1365 rq = intel_context_create_request(ce);
1366 intel_context_put(ce);
1367 if (IS_ERR(rq)) {
1368 err = PTR_ERR(rq);
1369 goto out_spin;
1370 }
1371
1372 rq->sched.attr.priority = I915_PRIORITY_BARRIER;
1373 i915_request_get(rq);
1374 i915_request_add(rq);
1375
1376 /*
1377 * Wait until the barrier is in ELSP, and we know timeslicing
1378 * will have been activated.
1379 */
1380 if (wait_for_submit(engine, rq, HZ / 2)) {
1381 i915_request_put(rq);
1382 err = -ETIME;
1383 goto out_spin;
1384 }
1385
1386 /*
1387 * Since the ELSP[0] request is unpreemptible, it should not
1388 * allow the maximum priority barrier through. Wait long
1389 * enough to see if it is timesliced in by mistake.
1390 */
1391 if (i915_request_wait(rq, 0, timeslice_threshold(engine)) >= 0) {
1392 pr_err("%s: I915_PRIORITY_BARRIER request completed, bypassing no-preempt request\n",
1393 engine->name);
1394 err = -EINVAL;
1395 }
1396 i915_request_put(rq);
1397
1398 out_spin:
1399 igt_spinner_end(&spin);
1400 out_heartbeat:
1401 xchg(&engine->props.timeslice_duration_ms, timeslice);
1402 engine_heartbeat_enable(engine);
1403 if (err)
1404 break;
1405
1406 if (igt_flush_test(gt->i915)) {
1407 err = -EIO;
1408 break;
1409 }
1410 }
1411
1412 igt_spinner_fini(&spin);
1413 return err;
1414 }
1415
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 74658 bytes --]
reply other threads:[~2020-06-16 4:38 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202006161209.4TYE29pc%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.