Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp5081889iog; Wed, 22 Jun 2022 11:33:44 -0700 (PDT) X-Google-Smtp-Source: AGRyM1srhOfYaTbytPzEZCLZCrqunPw/M1tduaMEuPckWL9x/m/XA7AtXpIy1oWIpxcWqMYFzAGP X-Received: by 2002:a17:902:da92:b0:16a:fa2:f79e with SMTP id j18-20020a170902da9200b0016a0fa2f79emr24802419plx.27.1655922823879; Wed, 22 Jun 2022 11:33:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655922823; cv=none; d=google.com; s=arc-20160816; b=VaKtzmY6diY3AHUyN9liP8Z/H1GGQtvd+QOZSP4N3r70SwDZ8tqJfDaKry7IGyiWtq A3WcyFKmJaPY5/S3XiFRDqReRTUPR/X5PKbHiRuVxX+63gUIk7eLmgoJ6RGQaWl8VI4m f+EC8vbtZQIPOnlPz8BC+0TXLG4GOBEzI6QEfwo8gf0S+pxrpmkwdf3/8hO2gHEO+x+Z xDJsPv1x91fOA70AH7WWY5p5T8Er2Da5pe4w2yuHdwflRsO20H81/jZi+N6pQi2zVJmE vHeXe1dmNlPQyhc8OSmP5gXCfDIEQA28KC+aFH2gplCzpXapyEjxRK81Kmn9lbxXN4EK em8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=bpaCjOapTAdRzLf+qPNGfdtVaNsXQvV0h/9qPiGYMOA=; b=Ni7Rq7aFA3KPlrB2QG7j2KG4LnSwV2PY1A39V6DT9a44oJtVJDjpxWw76IFbYvZQ6u z7Zoz+OVine2yqK45JTtUmfmnQQogcbwpH0T1n8w8UmkZLh0e2lHqOcc2TXikhRbVh6v 0c+GxE6oXwYJm3wdQzpvjYey6zkwQJnQLIuZw1p1vYkCYxVugfdmGrqUKeCmHeVT/Y1k WaSNf7mn2SUZigQUIVOn8xE8kCRjmB2Q7uoA9p4WlYMcdQjW4vtOsPLWJEw737yHDwT4 br6B9zQEBLeR/oWSk5KLkslZe0lrQc79bphJviUCk5DBhPdBzIpaxYNDVTKLYf1i+uLi 6q0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ffkFg2lb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p10-20020a170902e74a00b0015e05374e86si26774941plf.443.2022.06.22.11.33.30; Wed, 22 Jun 2022 11:33:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ffkFg2lb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233854AbiFVRe3 (ORCPT + 99 others); Wed, 22 Jun 2022 13:34:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377535AbiFVRdt (ORCPT ); Wed, 22 Jun 2022 13:33:49 -0400 Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70AD72C656 for ; Wed, 22 Jun 2022 10:33:47 -0700 (PDT) Received: by mail-wr1-x42f.google.com with SMTP id r20so3999090wra.1 for ; Wed, 22 Jun 2022 10:33:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bpaCjOapTAdRzLf+qPNGfdtVaNsXQvV0h/9qPiGYMOA=; b=ffkFg2lbSb3JovwNfGx8zubU8Dwr+HwSn1U+ippQGAK0MbFuUCFwMj6Q3zcjkVBMJX r06VQt8A5L7uBOALduThYx4AbJnjfy/uAvteehzEHk8XIS7JpWonwdwFDL+Pf91iF6FC lamNLMveY3aEeIXPeYL9cG3rYD2eb7DABBe4kG/H3Daa53Hg0KM6JkxXkHtiKQzqw4km IGReMEivIQV7k7sLscKNP858QT8xEhag4zRzqzl9R/lNA6wYBjS7fcfTIR48kRHzd2sW nz+ES14mNwxbUONGki81ysA8iLmMbqVDmy75WyzbjwMLziYaBRLe235vOWsU3gH4nn2m 8b/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bpaCjOapTAdRzLf+qPNGfdtVaNsXQvV0h/9qPiGYMOA=; b=gp4MFWmoLrz9P6ZS0VzIFUNfDnyTXvZjqET2EP03DX1Q5mfgO6Dbo+zKt9ts7udWZI VRnmlzv/0b/8fJCF6geBmBcG8rFO7OWTrj5ZoIxhlrBNH7WC/xlo+iO6MtLL2Gmjk0BW TuwiTnELtI5RA19KVfpAJCdxXZCzAQZQ+mIp2BtqjgOi2t4SQK7OZ4cS6OT7SBhhrsv7 yzsw2jDQVSDLHjn2pqzZ0BR9WDsBHec06OOuU+m0LzMmJQgdpZC4H1Uj7tau+RxWWYDq FGBc5kjlknPeSU0mShHQcruaGhSoZrKB4z8AaKprmFwRtN9g0rd786I84+nO4er+ljV0 cA3w== X-Gm-Message-State: AJIora9Zer9kU4IlHb22tma8YR+joV/lDaGdTlENm7gn4Y7AuKLswzhr NbK9scBYMj2eH7/Jy1i+hBFDBSBUW48IW3waY7bpM9MX0+w= X-Received: by 2002:adf:eb45:0:b0:21a:efae:4b9f with SMTP id u5-20020adfeb45000000b0021aefae4b9fmr4447308wrn.585.1655919225863; Wed, 22 Jun 2022 10:33:45 -0700 (PDT) MIME-Version: 1.0 References: <20220622023855.2970913-1-swboyd@chromium.org> In-Reply-To: From: Rob Clark Date: Wed, 22 Jun 2022 10:33:33 -0700 Message-ID: Subject: Re: [PATCH] drm/msm/dpu: Increment vsync_cnt before waking up userspace To: Abhinav Kumar Cc: Stephen Boyd , Dmitry Baryshkov , Linux Kernel Mailing List , patches@lists.linux.dev, Sean Paul , dri-devel , freedreno , Mark Yacoub , Jessica Zhang Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 22, 2022 at 10:24 AM Abhinav Kumar wrote: > > > > On 6/21/2022 7:38 PM, Stephen Boyd wrote: > > The 'vsync_cnt' is used to count the number of frames for a crtc. > > Unfortunately, we increment the count after waking up userspace via > > dpu_crtc_vblank_callback() calling drm_crtc_handle_vblank(). > > drm_crtc_handle_vblank() wakes up userspace processes that have called > > drm_wait_vblank_ioctl(), and if that ioctl is expecting the count to > > increase it won't. > > > > Increment the count before calling into the drm APIs so that we don't > > have to worry about ordering the increment with anything else in drm. > > This fixes a software video decode test that fails to see frame counts > > increase on Trogdor boards. > > > > Cc: Mark Yacoub > > Cc: Jessica Zhang > > Fixes: 885455d6bf82 ("drm/msm: Change dpu_crtc_get_vblank_counter to use vsync count.") > > Signed-off-by: Stephen Boyd > > This is right, we should increment before drm_crtc_handle_vblank() as > that will query the vblank counter. This also matches what we do > downstream, hence > > Reviewed-by: Abhinav Kumar > > One small nit though, shouldnt the fixes tag be > > 25fdd5933e4c ("drm/msm: Add SDM845 DPU support") *Kinda*.. but the sw vblank counter wasn't used for reporting frame nr to userspace until 885455d6bf82. You could possibly list both, perhaps, but 885455d6bf82 is the important one for folks backporting to stable kernels to be aware of BR, -R > > This code has been this way since that commit itself. > > > --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c > > index 3a462e327e0e..a1b8c4592943 100644 > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c > > @@ -1251,12 +1251,13 @@ static void dpu_encoder_vblank_callback(struct drm_encoder *drm_enc, > > DPU_ATRACE_BEGIN("encoder_vblank_callback"); > > dpu_enc = to_dpu_encoder_virt(drm_enc); > > > > + atomic_inc(&phy_enc->vsync_cnt); > > + > > spin_lock_irqsave(&dpu_enc->enc_spinlock, lock_flags); > > if (dpu_enc->crtc) > > dpu_crtc_vblank_callback(dpu_enc->crtc); > > spin_unlock_irqrestore(&dpu_enc->enc_spinlock, lock_flags); > > > > - atomic_inc(&phy_enc->vsync_cnt); > > DPU_ATRACE_END("encoder_vblank_callback"); > > } > > > > > > base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56