All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 11/11] drm/i915/scheduler: Support user-defined priorities
Date: Thu, 28 Sep 2017 17:14:28 +0300	[thread overview]
Message-ID: <1506608068.9186.42.camel@linux.intel.com> (raw)
In-Reply-To: <20170927164440.19678-12-chris@chris-wilson.co.uk>

On Wed, 2017-09-27 at 17:44 +0100, Chris Wilson wrote:
> Use a priority stored in the context as the initial value when
> submitting a request. This allows us to change the default priority on a
> per-context basis, allowing different contexts to be favoured with GPU
> time at the expense of lower importance work. The user can adjust the
> context's priority via I915_CONTEXT_PARAM_PRIORITY, with more positive
> values being higher priority (they will be serviced earlier, after their
> dependencies have been resolved). Any prerequisite work for an execbuf
> will have its priority raised to match the new request as required.
> 
> Normal users can specify any value in the range of -1023 to 0 [default],
> i.e. they can reduce the priority of their workloads (and temporarily
> boost it back to normal if so desired).
> 
> Privileged users can specify any value in the range of -1023 to 1023,
> [default is 0], i.e. they can raise their priority above all overs and
> so potentially starve the system.
> 
> Note that the existing schedulers are not fair, nor load balancing, the
> execution is strictly by priority on a first-come, first-served basis,
> and the driver may choose to boost some requests above the range
> available to users.
> 
> This priority was originally based around nice(2), but evolved to allow
> clients to adjust their priority within a small range, and allow for a
> privileged high priority range.
> 
> For example, this can be used to implement EGL_IMG_context_priority
> https://www.khronos.org/registry/egl/extensions/IMG/EGL_IMG_context_priority.txt
> 
> 	EGL_CONTEXT_PRIORITY_LEVEL_IMG determines the priority level of
>         the context to be created. This attribute is a hint, as an
>         implementation may not support multiple contexts at some
>         priority levels and system policy may limit access to high
>         priority contexts to appropriate system privilege level. The
>         default value for EGL_CONTEXT_PRIORITY_LEVEL_IMG is
>         EGL_CONTEXT_PRIORITY_MEDIUM_IMG."
> 
> so we can map
> 
> 	PRIORITY_HIGH -> 1023 [privileged, will failback to 0]
> 	PRIORITY_MED -> 0 [default]
> 	PRIORITY_LOW -> -1023
> 
> They also map onto the priorities used by VkQueue (and a VkQueue is
> essentially a timeline, our i915_gem_context under full-ppgtt).
> 
> v2: s/CAP_SYS_ADMIN/CAP_SYS_NICE/
> v3: Report min/max user priorities as defines in the uapi, and rebase
> internal priorities on the exposed values.
> 
> Testcase: igt/gem_exec_schedule
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

We should be good to go once Mesa is.

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-09-28 14:14 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-27 16:44 Execlists preemption & user priority Chris Wilson
2017-09-27 16:44 ` [PATCH v2 01/11] drm/i915/execlists: Move request unwinding to a separate function Chris Wilson
2017-09-28 11:49   ` Joonas Lahtinen
2017-09-27 16:44 ` [PATCH v2 02/11] drm/i915/execlists: Cache the last priolist lookup Chris Wilson
2017-09-28 11:59   ` Joonas Lahtinen
2017-09-28 12:05     ` Chris Wilson
2017-09-27 16:44 ` [PATCH v2 03/11] drm/i915/preempt: Fix WaEnablePreemptionGranularityControlByUMD Chris Wilson
2017-09-28 12:06   ` Joonas Lahtinen
2017-09-27 16:44 ` [PATCH v2 04/11] drm/i915/preempt: Default to disabled mid-command preemption levels Chris Wilson
2017-09-28 12:22   ` Joonas Lahtinen
2017-09-27 16:44 ` [PATCH v2 05/11] drm/i915/execlists: Distinguish the incomplete context notifies Chris Wilson
2017-09-28  4:59   ` Wang, Zhi A
2017-09-28 12:23   ` Joonas Lahtinen
2017-09-27 16:44 ` [PATCH v2 06/11] drm/i915: Introduce a preempt context Chris Wilson
2017-09-28 12:32   ` Joonas Lahtinen
2017-09-28 12:42     ` Chris Wilson
2017-09-27 16:44 ` [PATCH v2 07/11] drm/i915/execlists: Move bdw GPGPU w/a to emit_bb Chris Wilson
2017-09-28 12:50   ` Joonas Lahtinen
2017-09-27 16:44 ` [PATCH v2 08/11] drm/i915/execlists: Keep request->priority for its lifetime Chris Wilson
2017-09-28  9:14   ` Michał Winiarski
2017-09-28  9:31     ` Chris Wilson
2017-09-28  9:32       ` Chris Wilson
2017-09-28 11:09   ` Chris Wilson
2017-09-28 13:21     ` Michał Winiarski
2017-09-28 12:59   ` Joonas Lahtinen
2017-09-27 16:44 ` [PATCH v2 09/11] drm/i915: Expand I915_PARAM_HAS_SCHEDULER into a capability bitmask Chris Wilson
2017-09-28 13:07   ` Joonas Lahtinen
2017-09-28 13:11     ` Chris Wilson
2017-09-27 16:44 ` [PATCH v2 10/11] drm/i915/execlists: Preemption! Chris Wilson
2017-09-28 14:10   ` Joonas Lahtinen
2017-09-28 18:35     ` Chris Wilson
2017-09-27 16:44 ` [PATCH v2 11/11] drm/i915/scheduler: Support user-defined priorities Chris Wilson
2017-09-28 14:14   ` Joonas Lahtinen [this message]
2017-09-27 17:28 ` ✓ Fi.CI.BAT: success for series starting with [v2,01/11] drm/i915/execlists: Move request unwinding to a separate function Patchwork
2017-09-27 22:12 ` ✗ Fi.CI.IGT: failure " Patchwork

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=1506608068.9186.42.camel@linux.intel.com \
    --to=joonas.lahtinen@linux.intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.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.