linux_dsm_epyc7002/drivers/gpu/drm/i915/gt
Chris Wilson 8ee36e048c drm/i915/execlists: Minimalistic timeslicing
If we have multiple contexts of equal priority pending execution,
activate a timer to demote the currently executing context in favour of
the next in the queue when that timeslice expires. This enforces
fairness between contexts (so long as they allow preemption -- forced
preemption, in the future, will kick those who do not obey) and allows
us to avoid userspace blocking forward progress with e.g. unbounded
MI_SEMAPHORE_WAIT.

For the starting point here, we use the jiffie as our timeslice so that
we should be reasonably efficient wrt frequent CPU wakeups.

Testcase: igt/gem_exec_scheduler/semaphore-resolve
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190620142052.19311-2-chris@chris-wilson.co.uk
2019-06-20 16:52:36 +01:00
..
intel_breadcrumbs.c drm/i915: Seal races between async GPU cancellation, retirement and signaling 2019-05-08 16:02:41 +01:00
intel_context_types.h drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
intel_context.c drm/i915: Keep rings pinned while the context is active 2019-06-19 19:49:14 +01:00
intel_context.h drm/i915: Keep contexts pinned until after the next kernel context switch 2019-06-14 19:03:32 +01:00
intel_engine_cs.c drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
intel_engine_pm.c drm/i915: Make the semaphore saturation mask global 2019-06-19 12:10:45 +01:00
intel_engine_pm.h drm/i915/execlists: Flush the tasklet on parking 2019-05-03 11:35:31 +01:00
intel_engine_types.h drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
intel_engine.h drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
intel_gpu_commands.h drm/i915: add in-kernel blitter client 2019-05-30 12:01:44 +01:00
intel_gt_pm.c drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
intel_gt_pm.h drm/i915: Invert the GEM wakeref hierarchy 2019-04-24 22:26:49 +01:00
intel_hangcheck.c drm/i915: update rpm_get/put to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_lrc_reg.h drm/i915/gtt: Use a common type for page directories 2019-06-17 16:30:54 +03:00
intel_lrc.c drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
intel_lrc.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
intel_mocs.c drm/i915/ehl: Update MOCS table for EHL 2019-06-15 08:19:49 -07:00
intel_mocs.h
intel_reset.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_reset.h drm/i915: Move i915_check_and_clear_faults to intel_reset.c 2019-06-10 09:09:26 +01:00
intel_ringbuffer.c drm/i915: Keep rings pinned while the context is active 2019-06-19 19:49:14 +01:00
intel_sseu.c Revert "drm/i915: Expand subslice mask" 2019-05-29 17:18:18 +03:00
intel_sseu.h Revert "drm/i915: Expand subslice mask" 2019-05-29 17:18:18 +03:00
intel_workarounds_types.h
intel_workarounds.c drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00
intel_workarounds.h
Makefile
Makefile.header-test
mock_engine.c drm/i915: Keep rings pinned while the context is active 2019-06-19 19:49:14 +01:00
mock_engine.h drm/i915: Split engine setup/init into two phases 2019-04-26 18:32:07 +01:00
selftest_engine_cs.c
selftest_hangcheck.c drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00
selftest_lrc.c drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
selftest_reset.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
selftest_workarounds.c drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00