[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4c955afcc2eb28794a5bbcc0e1642592@codeaurora.org>
Date: Wed, 18 Nov 2020 12:03:51 -0800
From: abhinavk@...eaurora.org
To: Rob Clark <robdclark@...il.com>
Cc: Stephen Boyd <swboyd@...omium.org>,
freedreno <freedreno@...ts.freedesktop.org>,
linux-arm-msm <linux-arm-msm@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
dri-devel <dri-devel@...ts.freedesktop.org>,
Sean Paul <sean@...rly.run>,
Kalyan Thota <kalyan_t@...eaurora.org>
Subject: Re: [Freedreno] [PATCH] drm/msm/dpu: Remove chatty vbif debug print
Hi Stephen
On 2020-11-18 07:49, Rob Clark wrote:
> On Tue, Nov 17, 2020 at 2:53 PM Stephen Boyd <swboyd@...omium.org>
> wrote:
>>
>> Quoting abhinavk@...eaurora.org (2020-11-17 12:34:56)
>> > On 2020-11-17 09:26, Stephen Boyd wrote:
>> > > I don't know what this debug print is for but it is super chatty,
>> > > throwing 8 lines of debug prints in the logs every time we update a
>> > > plane. It looks like it has no value. Let's nuke it so we can get
>> > > better logs.
>> > >
>> > > Cc: Sean Paul <sean@...rly.run>
>> > > Cc: Abhinav Kumar <abhinavk@...eaurora.org>
>> > > Signed-off-by: Stephen Boyd <swboyd@...omium.org>
>> >
>> > > ---
>> > > drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c | 3 ---
>> > > 1 file changed, 3 deletions(-)
>> > >
>> > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c
>> > > b/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c
>> > > index 5e8c3f3e6625..5eb2b2ee09f5 100644
>> > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c
>> > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c
>> > > @@ -245,9 +245,6 @@ void dpu_vbif_set_qos_remap(struct dpu_kms
>> > > *dpu_kms,
>> > > forced_on = mdp->ops.setup_clk_force_ctrl(mdp, params->clk_ctrl,
>> > > true);
>> > >
>> > > for (i = 0; i < qos_tbl->npriority_lvl; i++) {
>> > > - DPU_DEBUG("vbif:%d xin:%d lvl:%d/%d\n",
>> > > - params->vbif_idx, params->xin_id, i,
>> > > - qos_tbl->priority_lvl[i]);
>> >
>> > Instead of getting rid of this print, we should optimize the caller of
>> > this.
>>
>> Does the print tell us anything? Right now it prints 8 lines where it
>> feels like it could be trimmed down:
>>
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:0/3
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:1/3
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:2/4
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:3/4
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:4/5
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:5/5
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:6/6
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 lvl:7/6
>>
>> maybe one line that combines the index into values?
>>
>> [drm:dpu_vbif_set_qos_remap] vbif:0 xin:0 [3 3 4 4 5 5 6 6]
>>
>
> or possibly convert to a tracepoint (so it doesn't spam the drm_trace
> buffer)
>
> BR,
> -R
>
>> But again I have no idea if this print is really useful. Maybe we can
>> print it only if the value changes from what was already there?
>> Basically move the print into dpu_hw_set_qos_remap() and then skip out
>> early if nothing changed or print and modify the register.
>>
>> > This is what
>> > we are doing in downstream. So we need to update the property only if we
>> > are switching from a RT client
>> > to non-RT client for the plane and vice-versa. So we should try to do
>> > the same thing here.
>> >
>> > is_rt = sde_crtc_is_rt_client(crtc, crtc->state);
>> > if (is_rt != psde->is_rt_pipe) {
>> > psde->is_rt_pipe = is_rt;
>> > pstate->dirty |= SDE_PLANE_DIRTY_QOS;
>> > }
>> >
>> >
>> > if (pstate->dirty & DPU_PLANE_DIRTY_QOS)
>> > _dpu_plane_set_qos_remap(plane);
>> >
>>
>> Sounds great! Can you send the patch?
Will finalize approach and send the patch in a day or two.
Thanks
Abhinav
Powered by blists - more mailing lists