* [bug report] drm/i915/selftests: Exercise context switching in parallel
@ 2019-10-11 11:42 Dan Carpenter
2019-10-11 11:58 ` Chris Wilson
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2019-10-11 11:42 UTC (permalink / raw)
To: chris; +Cc: intel-gfx
Hello Chris Wilson,
This is a semi-automatic email about new static checker warnings.
The patch 50d16d44cce4: "drm/i915/selftests: Exercise context
switching in parallel" from Sep 30, 2019, leads to the following
Smatch complaint:
drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:349 live_parallel_switch()
error: we previously assumed 'data' could be null (see line 263)
drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
257 }
258
259 engines = i915_gem_context_lock_engines(ctx);
260 count = engines->num_engines;
261
262 data = kcalloc(count, sizeof(*data), GFP_KERNEL);
263 if (!data) {
264 i915_gem_context_unlock_engines(ctx);
265 err = -ENOMEM;
266 goto out;
^^^^^^^^
goto out is always a sign of troubled times ahead...
267 }
268
269 m = 0; /* Use the first context as our template for the engines */
270 for_each_gem_engine(ce, engines, it) {
271 err = intel_context_pin(ce);
272 if (err) {
273 i915_gem_context_unlock_engines(ctx);
274 goto out;
275 }
276 data[m++].ce[0] = intel_context_get(ce);
277 }
278 i915_gem_context_unlock_engines(ctx);
279
280 /* Clone the same set of engines into the other contexts */
281 for (n = 1; n < ARRAY_SIZE(data->ce); n++) {
282 ctx = live_context(i915, file);
283 if (IS_ERR(ctx)) {
284 err = PTR_ERR(ctx);
285 goto out;
286 }
287
288 for (m = 0; m < count; m++) {
289 if (!data[m].ce[0])
290 continue;
291
292 ce = intel_context_create(ctx, data[m].ce[0]->engine);
293 if (IS_ERR(ce))
294 goto out;
295
296 err = intel_context_pin(ce);
297 if (err) {
298 intel_context_put(ce);
299 goto out;
300 }
301
302 data[m].ce[n] = ce;
303 }
304 }
305
306 for (fn = func; !err && *fn; fn++) {
307 struct igt_live_test t;
308 int n;
309
310 err = igt_live_test_begin(&t, i915, __func__, "");
311 if (err)
312 break;
313
314 for (n = 0; n < count; n++) {
315 if (!data[n].ce[0])
316 continue;
317
318 data[n].tsk = kthread_run(*fn, &data[n],
319 "igt/parallel:%s",
320 data[n].ce[0]->engine->name);
321 if (IS_ERR(data[n].tsk)) {
322 err = PTR_ERR(data[n].tsk);
323 break;
324 }
325 get_task_struct(data[n].tsk);
326 }
327
328 for (n = 0; n < count; n++) {
329 int status;
330
331 if (IS_ERR_OR_NULL(data[n].tsk))
332 continue;
333
334 status = kthread_stop(data[n].tsk);
335 if (status && !err)
336 err = status;
337
338 put_task_struct(data[n].tsk);
339 data[n].tsk = NULL;
340 }
341
342 if (igt_live_test_end(&t))
343 err = -EIO;
344 }
345
346 out:
347 for (n = 0; n < count; n++) {
348 for (m = 0; m < ARRAY_SIZE(data->ce); m++) {
349 if (!data[n].ce[m])
^^^^^^^^
Toasted.
350 continue;
351
regards,
dan carpenter
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [bug report] drm/i915/selftests: Exercise context switching in parallel
2019-10-11 11:42 [bug report] drm/i915/selftests: Exercise context switching in parallel Dan Carpenter
@ 2019-10-11 11:58 ` Chris Wilson
0 siblings, 0 replies; 2+ messages in thread
From: Chris Wilson @ 2019-10-11 11:58 UTC (permalink / raw)
To: Dan Carpenter; +Cc: intel-gfx
Quoting Dan Carpenter (2019-10-11 12:42:09)
> Hello Chris Wilson,
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch 50d16d44cce4: "drm/i915/selftests: Exercise context
> switching in parallel" from Sep 30, 2019, leads to the following
> Smatch complaint:
>
> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:349 live_parallel_switch()
> error: we previously assumed 'data' could be null (see line 263)
>
> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
> 257 }
> 258
> 259 engines = i915_gem_context_lock_engines(ctx);
> 260 count = engines->num_engines;
> 261
> 262 data = kcalloc(count, sizeof(*data), GFP_KERNEL);
> 263 if (!data) {
> 264 i915_gem_context_unlock_engines(ctx);
> 265 err = -ENOMEM;
> 266 goto out;
> ^^^^^^^^
> goto out is always a sign of troubled times ahead...
Has been upgraded to out_file with claims of fewer burnt toast.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-10-11 11:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-11 11:42 [bug report] drm/i915/selftests: Exercise context switching in parallel Dan Carpenter
2019-10-11 11:58 ` Chris Wilson
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.