mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 06:52:34 -04:00
Allocate a page for use as a status page by a group of timelines, as we only need a dword of storage for each (rounded up to the cacheline for safety) we can pack multiple timelines into the same page. Each timeline will then be able to track its own HW seqno. v2: Reuse the common per-engine HWSP for the solitary ringbuffer timeline, so that we do not have to emit (using per-gen specialised vfuncs) the breadcrumb into the distinct timeline HWSP and instead can keep on using the common MI_STORE_DWORD_INDEX. However, to maintain the sleight-of-hand for the global/per-context seqno switchover, we will store both temporarily (and so use a custom offset for the shared timeline HWSP until the switch over). v3: Keep things simple and allocate a page for each timeline, page sharing comes next. v4: I was caught repeating the same MI_STORE_DWORD_IMM over and over again in selftests. v5: And caught red handed copying create timeline + check. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190128181812.22804-3-chris@chris-wilson.co.uk
28 lines
1.2 KiB
C
28 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* List each unit test as selftest(name, function)
|
|
*
|
|
* The name is used as both an enum and expanded as subtest__name to create
|
|
* a module parameter. It must be unique and legal for a C identifier.
|
|
*
|
|
* The function should be of type int function(void). It may be conditionally
|
|
* compiled using #if IS_ENABLED(DRM_I915_SELFTEST).
|
|
*
|
|
* Tests are executed in order by igt/drv_selftest
|
|
*/
|
|
selftest(sanitycheck, i915_live_sanitycheck) /* keep first (igt selfcheck) */
|
|
selftest(uncore, intel_uncore_live_selftests)
|
|
selftest(workarounds, intel_workarounds_live_selftests)
|
|
selftest(requests, i915_request_live_selftests)
|
|
selftest(timelines, i915_timeline_live_selftests)
|
|
selftest(objects, i915_gem_object_live_selftests)
|
|
selftest(dmabuf, i915_gem_dmabuf_live_selftests)
|
|
selftest(coherency, i915_gem_coherency_live_selftests)
|
|
selftest(gtt, i915_gem_gtt_live_selftests)
|
|
selftest(gem, i915_gem_live_selftests)
|
|
selftest(evict, i915_gem_evict_live_selftests)
|
|
selftest(hugepages, i915_gem_huge_page_live_selftests)
|
|
selftest(contexts, i915_gem_context_live_selftests)
|
|
selftest(hangcheck, intel_hangcheck_live_selftests)
|
|
selftest(execlists, intel_execlists_live_selftests)
|
|
selftest(guc, intel_guc_live_selftest)
|