linux_dsm_epyc7002/drivers/gpu/drm/i915/selftests
Chris Wilson 16e4dd0342 drm/i915: Markup paired operations on wakerefs
The majority of runtime-pm operations are bounded and scoped within a
function; these are easy to verify that the wakeref are handled
correctly. We can employ the compiler to help us, and reduce the number
of wakerefs tracked when debugging, by passing around cookies provided
by the various rpm_get functions to their rpm_put counterpart. This
makes the pairing explicit, and given the required wakeref cookie the
compiler can verify that we pass an initialised value to the rpm_put
(quite handy for double checking error paths).

For regular builds, the compiler should be able to eliminate the unused
local variables and the program growth should be minimal. Fwiw, it came
out as a net improvement as gcc was able to refactor rpm_get and
rpm_get_if_in_use together,

v2: Just s/rpm_put/rpm_put_unchecked/ everywhere, leaving the manual
mark up for smaller more targeted patches.
v3: Mention the cookie in Returns

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190114142129.24398-2-chris@chris-wilson.co.uk
2019-01-14 16:17:53 +00:00
..
huge_gem_object.c
huge_gem_object.h
huge_pages.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_coherency.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_context.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_gtt.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_object.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_live_selftests.h drm/i915/selftests: Add a simple exerciser for suspend/hibernate 2018-08-31 10:21:00 +01:00
i915_mock_selftests.h
i915_random.c
i915_random.h
i915_request.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_selftest.c
i915_sw_fence.c
i915_syncmap.c
i915_timeline.c
i915_vma.c
igt_flush_test.c
igt_flush_test.h
igt_reset.c drm/i915/selftests: Add tests for GT and engine workaround verification 2018-12-04 12:23:19 +00:00
igt_reset.h drm/i915/selftests: Add tests for GT and engine workaround verification 2018-12-04 12:23:19 +00:00
igt_spinner.c drm/i915/selftests: Reorder request allocation vs vma pinning 2018-12-04 17:53:19 +00:00
igt_spinner.h drm/i915/selftests: Extract spinner code 2018-11-30 15:09:00 +00:00
igt_wedge_me.h
intel_breadcrumbs.c
intel_engine_cs.c
intel_guc.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_hangcheck.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_lrc.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_uncore.c
intel_workarounds.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
lib_sw_fence.c
lib_sw_fence.h
mock_context.c drm/i915: Reduce context HW ID lifetime 2018-09-05 11:58:08 +01:00
mock_context.h
mock_dmabuf.c
mock_dmabuf.h
mock_drm.c
mock_drm.h
mock_engine.c drm/i915: Remove redundant trailing request flush 2018-12-31 15:35:45 +00:00
mock_engine.h
mock_gem_device.c drm/i915: Track all held rpm wakerefs 2019-01-14 16:17:50 +00:00
mock_gem_device.h
mock_gem_object.h
mock_gtt.c drm/i915: Explicitly mark Global GTT address spaces 2018-09-01 10:25:38 +01:00
mock_gtt.h
mock_request.c
mock_request.h
mock_timeline.c
mock_timeline.h
mock_uncore.c
mock_uncore.h
scatterlist.c