mbox series

[v2,0/3] drm/i915/guc/slpc: Implement waitboost for SLPC

Message ID 20211101043937.35747-1-vinay.belgaumkar@intel.com (mailing list archive)
Headers show
Series drm/i915/guc/slpc: Implement waitboost for SLPC | expand

Message

Vinay Belgaumkar Nov. 1, 2021, 4:39 a.m. UTC
Waitboost is a legacy feature implemented in the Host Turbo algorithm. This
patch set implements it for the SLPC path. A "boost" happens when user
calls gem_wait ioctl on a submission that has not landed on HW yet. GT
frequency gets temporarily bumped to RP0 to allow the previous request
to finish quickly. We achieve this on SLPC by setting the min frequency,
SLPC will set that as the requested frequency.

The boost will occur through a worker thread that will be scheduled
when the required conditions are met.

Like before, boost frequency is configurable through sysfs, so we can
adjust it to any specific value as long as it is between [min, RP0].

v2: Add a worker thread to perform freq boost.

Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>

Vinay Belgaumkar (3):
  drm/i915/guc/slpc: Define and initialize boost frequency
  drm/i915/guc/slpc: Add waitboost functionality for SLPC
  drm/i915/guc/slpc: Update boost sysfs hooks for SLPC

 drivers/gpu/drm/i915/gt/intel_rps.c           |  73 +++++++++
 drivers/gpu/drm/i915/gt/intel_rps.h           |   3 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c   | 149 +++++++++++++++---
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h   |   3 +
 .../gpu/drm/i915/gt/uc/intel_guc_slpc_types.h |  13 ++
 drivers/gpu/drm/i915/i915_request.c           |   2 +-
 drivers/gpu/drm/i915/i915_sysfs.c             |  19 +--
 7 files changed, 222 insertions(+), 40 deletions(-)

Comments

Dixit, Ashutosh Nov. 1, 2021, 8:24 p.m. UTC | #1
On Sun, 31 Oct 2021 21:39:34 -0700, Belgaumkar, Vinay wrote:
>
> Waitboost is a legacy feature implemented in the Host Turbo algorithm. This
> patch set implements it for the SLPC path. A "boost" happens when user
> calls gem_wait ioctl on a submission that has not landed on HW yet.

Afaiu user doesn't have to call gem_wait, the boost will happen whenever a
request waits to be submitted to GuC because of an unmet depedency. This
has to be done from i915 because GuC has not yet seen the request.

Rest of the cover letter is fine.
Vinay Belgaumkar Nov. 2, 2021, 12:18 a.m. UTC | #2
On 11/1/2021 1:24 PM, Dixit, Ashutosh wrote:
> On Sun, 31 Oct 2021 21:39:34 -0700, Belgaumkar, Vinay wrote:
>>
>> Waitboost is a legacy feature implemented in the Host Turbo algorithm. This
>> patch set implements it for the SLPC path. A "boost" happens when user
>> calls gem_wait ioctl on a submission that has not landed on HW yet.
> 
> Afaiu user doesn't have to call gem_wait, the boost will happen whenever a
> request waits to be submitted to GuC because of an unmet depedency. This
> has to be done from i915 because GuC has not yet seen the request.
> 
> Rest of the cover letter is fine.

Ok, thanks,
Vinay.
>