lkml.org 
[lkml]   [2023]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v10 15/15] drm/i915: Add deadline based boost support
    Date
    From: Rob Clark <robdclark@chromium.org>

    I expect this patch to be replaced by someone who knows i915 better.

    Signed-off-by: Rob Clark <robdclark@chromium.org>
    ---
    drivers/gpu/drm/i915/i915_request.c | 20 ++++++++++++++++++++
    1 file changed, 20 insertions(+)

    diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
    index 7503dcb9043b..44491e7e214c 100644
    --- a/drivers/gpu/drm/i915/i915_request.c
    +++ b/drivers/gpu/drm/i915/i915_request.c
    @@ -97,6 +97,25 @@ static bool i915_fence_enable_signaling(struct dma_fence *fence)
    return i915_request_enable_breadcrumb(to_request(fence));
    }

    +static void i915_fence_set_deadline(struct dma_fence *fence, ktime_t deadline)
    +{
    + struct i915_request *rq = to_request(fence);
    +
    + if (i915_request_completed(rq))
    + return;
    +
    + if (i915_request_started(rq))
    + return;
    +
    + /*
    + * TODO something more clever for deadlines that are in the
    + * future. I think probably track the nearest deadline in
    + * rq->timeline and set timer to trigger boost accordingly?
    + */
    +
    + intel_rps_boost(rq);
    +}
    +
    static signed long i915_fence_wait(struct dma_fence *fence,
    bool interruptible,
    signed long timeout)
    @@ -182,6 +201,7 @@ const struct dma_fence_ops i915_fence_ops = {
    .signaled = i915_fence_signaled,
    .wait = i915_fence_wait,
    .release = i915_fence_release,
    + .set_deadline = i915_fence_set_deadline,
    };

    static void irq_execute_cb(struct irq_work *wrk)
    --
    2.39.2
    \
     
     \ /
      Last update: 2023-03-27 00:50    [W:5.418 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site