From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Subject: Re: [PATCH] drm: don't block fb changes for async plane updates Date: Thu, 13 Jun 2019 09:50:01 +0200 Message-ID: <20190613075001.GD19685@kroah.com> References: <156007626458164@kroah.com> <20190610133627.31923-1-helen.koike@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 30D7689791 for ; Thu, 13 Jun 2019 07:50:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190610133627.31923-1-helen.koike@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Helen Koike Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdW4gMTAsIDIwMTkgYXQgMTA6MzY6MjdBTSAtMDMwMCwgSGVsZW4gS29pa2Ugd3Jv dGU6Cj4gY29tbWl0IDg5YTRhYWMwYWIwZTZmNWVlYTEwZDdiZjQ4NjlkZDE1YzNkZTJjZDQgdXBz dHJlYW0uCj4gCj4gSW4gdGhlIGNhc2Ugb2YgYSBub3JtYWwgc3luYyB1cGRhdGUsIHRoZSBwcmVw YXJhdGlvbiBvZiBmcmFtZWJ1ZmZlcnMgKGJlCj4gaXQgY2FsbGluZyBkcm1fYXRvbWljX2hlbHBl cl9wcmVwYXJlX3BsYW5lcygpIG9yIGRvaW5nIHNldHVwcyB3aXRoCj4gZHJtX2ZyYW1lYnVmZmVy X2dldCgpKSBhcmUgcGVyZm9ybWVkIGluIHRoZSBuZXdfc3RhdGUgYW5kIHRoZSByZXNwZWN0aXZl Cj4gY2xlYW51cHMgYXJlIHBlcmZvcm1lZCBpbiB0aGUgb2xkX3N0YXRlLgo+IAo+IEluIHRoZSBj YXNlIG9mIGFzeW5jIHVwZGF0ZXMsIHRoZSBwcmVwYXJhdGlvbiBpcyBhbHNvIGRvbmUgaW4gdGhl Cj4gbmV3X3N0YXRlIGJ1dCB0aGUgY2xlYW51cHMgYXJlIGRvbmUgaW4gdGhlIG5ld19zdGF0ZSAo YmVjYXVzZSB1cGRhdGVzCj4gYXJlIHBlcmZvcm1lZCBpbiBwbGFjZSwgaS5lLiBpbiB0aGUgY3Vy cmVudCBzdGF0ZSkuCj4gCj4gVGhlIGN1cnJlbnQgY29kZSBibG9ja3MgYXN5bmMgdWRwYXRlcyB3 aGVuIHRoZSBmYiBpcyBjaGFuZ2VkLCB0dXJuaW5nCj4gYXN5bmMgdXBkYXRlcyBpbnRvIHN5bmMg dXBkYXRlcywgc2xvd2luZyBkb3duIGN1cnNvciB1cGRhdGVzIGFuZAo+IGludHJvZHVjaW5nIHJl Z3Jlc3Npb25zIGluIGlndCB0ZXN0cyB3aXRoIGVycm9ycyBvZiB0eXBlOgo+IAo+ICJDUklUSUNB TDogY29tcGxldGVkIDk3IGN1cnNvciB1cGRhdGVkIGluIGEgcGVyaW9kIG9mIDMwIGZsaXBzLCB3 ZQo+IGV4cGVjdCB0byBjb21wbGV0ZSBhcHByb3hpbWF0ZWx5IDE1MzYwIHVwZGF0ZXMsIHdpdGgg dGhlIHRocmVzaG9sZCBzZXQKPiBhdCA3NjgwIgo+IAo+IEZiIGNoYW5nZXMgaW4gYXN5bmMgdXBk YXRlcyB3ZXJlIHByZXZlbnRlZCB0byBhdm9pZCB0aGUgZm9sbG93aW5nIHNjZW5hcmlvOgo+IAo+ IC0gQXN5bmMgdXBkYXRlLCBvbGRmYiA9IE5VTEwsIG5ld2ZiID0gZmIxLCBwcmVwYXJlIGZiMSwg Y2xlYW51cCBmYjEKPiAtIEFzeW5jIHVwZGF0ZSwgb2xkZmIgPSBmYjEsIG5ld2ZiID0gZmIyLCBw cmVwYXJlIGZiMiwgY2xlYW51cCBmYjIKPiAtIE5vbi1hc3luYyBjb21taXQsIG9sZGZiID0gZmIy LCBuZXdmYiA9IGZiMSwgcHJlcGFyZSBmYjEsIGNsZWFudXAgZmIyICh3cm9uZykKPiBXaGVyZSB3 ZSBoYXZlIGEgc2luZ2xlIGNhbGwgdG8gcHJlcGFyZSBmYjIgYnV0IGRvdWJsZSBjbGVhbnVwIGNh bGwgdG8gZmIyLgo+IAo+IFRvIHNvbHZlIHRoZSBhYm92ZSBwcm9ibGVtcywgaW5zdGVhZCBvZiBi bG9ja2luZyBhc3luYyBmYiBjaGFuZ2VzLCB3ZQo+IHBsYWNlIHRoZSBvbGQgZnJhbWVidWZmZXIg aW4gdGhlIG5ld19zdGF0ZSBvYmplY3QsIHNvIHdoZW4gdGhlIGNvZGUKPiBwZXJmb3JtcyBjbGVh bnVwcyBpbiB0aGUgbmV3X3N0YXRlIGl0IHdpbGwgY2xlYW51cCB0aGUgb2xkX2ZiIGFuZCB3ZQo+ IHdpbGwgaGF2ZSB0aGUgZm9sbG93aW5nIHNjZW5hcmlvIGluc3RlYWQ6Cj4gCj4gLSBBc3luYyB1 cGRhdGUsIG9sZGZiID0gTlVMTCwgbmV3ZmIgPSBmYjEsIHByZXBhcmUgZmIxLCBubyBjbGVhbnVw Cj4gLSBBc3luYyB1cGRhdGUsIG9sZGZiID0gZmIxLCBuZXdmYiA9IGZiMiwgcHJlcGFyZSBmYjIs IGNsZWFudXAgZmIxCj4gLSBOb24tYXN5bmMgY29tbWl0LCBvbGRmYiA9IGZiMiwgbmV3ZmIgPSBm YjEsIHByZXBhcmUgZmIxLCBjbGVhbnVwIGZiMgo+IAo+IFdoZXJlIGNhbGxzIHRvIHByZXBhcmUv Y2xlYW51cCBhcmUgYmFsYW5jZWQuCj4gCj4gQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAj IHY0LjE0Kwo+IEZpeGVzOiAyNWRjMTk0YjM0ZGQgKCJkcm06IEJsb2NrIGZiIGNoYW5nZXMgZm9y IGFzeW5jIHBsYW5lIHVwZGF0ZXMiKQo+IFN1Z2dlc3RlZC1ieTogQm9yaXMgQnJlemlsbG9uIDxi b3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBIZWxlbiBLb2lr ZSA8aGVsZW4ua29pa2VAY29sbGFib3JhLmNvbT4KPiBSZXZpZXdlZC1ieTogQm9yaXMgQnJlemls bG9uIDxib3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNvbT4KPiBSZXZpZXdlZC1ieTogTmljaG9s YXMgS2F6bGF1c2thcyA8bmljaG9sYXMua2F6bGF1c2thc0BhbWQuY29tPgo+IFNpZ25lZC1vZmYt Ynk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+Cj4gTGlu azogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMTkwNjAz MTY1NjEwLjI0NjE0LTYtaGVsZW4ua29pa2VAY29sbGFib3JhLmNvbQo+IC0tLQo+IAo+IEhpLAo+ IAo+IFRoaXMgcGF0Y2ggZmFpbGVkIHRvIGFwcGx5IG9uIGtlcm5lbCBzdGFibGUgdjQuMTQsIEkn bSByZS1zZW5kaW5nIGl0Cj4gZml4aW5nIHRoZSBjb25mbGljdC4KCk5vdyBhcHBsaWVkLCB0aGFu a3MuCgpncmVnIGstaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36CCCC31E49 for ; Thu, 13 Jun 2019 16:34:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1063620449 for ; Thu, 13 Jun 2019 16:34:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560443688; bh=XnEL3VlElUWB68j93Q14HwRdvSfpesy69g8LPOA0sHo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=l9YTuZvgz+WD6CoZA0qMYDW/2SoCooyKozjRLTBeRQ3HKKZz2VfXnZRJzCIvufFlJ b9JkrDVKdmsvri6p5bHn6AIT+CLL9SlAEiRYny2b6e+1rAW43fspWGlTabcrdJELXB DAvoLji2n+N3hcu9ljBavp6zYC2mctzmzeqcCxNY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732097AbfFMQer (ORCPT ); Thu, 13 Jun 2019 12:34:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:34698 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730755AbfFMHuE (ORCPT ); Thu, 13 Jun 2019 03:50:04 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 76AFE20851; Thu, 13 Jun 2019 07:50:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560412204; bh=XnEL3VlElUWB68j93Q14HwRdvSfpesy69g8LPOA0sHo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=rZIMze5xvpEynR+1I1iwFtvEQuz9TKEAHIkA5gRCvuZ6xJU/sK1XaWvw8H3iscQUL oXEb+OEfNIcHEZy/vV9QW+SLtua2sqfveZLnVsrIY2WFb5r4HqkBqCasWH21QM62FV VLuW37KvucM8ggbwc7jHMmtwvqzkNlTipl4/2xn4= Date: Thu, 13 Jun 2019 09:50:01 +0200 From: Greg KH To: Helen Koike Cc: stable@vger.kernel.org, dri-devel@lists.freedesktop.org, kernel@collabora.com Subject: Re: [PATCH] drm: don't block fb changes for async plane updates Message-ID: <20190613075001.GD19685@kroah.com> References: <156007626458164@kroah.com> <20190610133627.31923-1-helen.koike@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190610133627.31923-1-helen.koike@collabora.com> User-Agent: Mutt/1.12.0 (2019-05-25) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On Mon, Jun 10, 2019 at 10:36:27AM -0300, Helen Koike wrote: > commit 89a4aac0ab0e6f5eea10d7bf4869dd15c3de2cd4 upstream. > > In the case of a normal sync update, the preparation of framebuffers (be > it calling drm_atomic_helper_prepare_planes() or doing setups with > drm_framebuffer_get()) are performed in the new_state and the respective > cleanups are performed in the old_state. > > In the case of async updates, the preparation is also done in the > new_state but the cleanups are done in the new_state (because updates > are performed in place, i.e. in the current state). > > The current code blocks async udpates when the fb is changed, turning > async updates into sync updates, slowing down cursor updates and > introducing regressions in igt tests with errors of type: > > "CRITICAL: completed 97 cursor updated in a period of 30 flips, we > expect to complete approximately 15360 updates, with the threshold set > at 7680" > > Fb changes in async updates were prevented to avoid the following scenario: > > - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1 > - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2 > - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong) > Where we have a single call to prepare fb2 but double cleanup call to fb2. > > To solve the above problems, instead of blocking async fb changes, we > place the old framebuffer in the new_state object, so when the code > performs cleanups in the new_state it will cleanup the old_fb and we > will have the following scenario instead: > > - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup > - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1 > - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 > > Where calls to prepare/cleanup are balanced. > > Cc: # v4.14+ > Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates") > Suggested-by: Boris Brezillon > Signed-off-by: Helen Koike > Reviewed-by: Boris Brezillon > Reviewed-by: Nicholas Kazlauskas > Signed-off-by: Boris Brezillon > Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-6-helen.koike@collabora.com > --- > > Hi, > > This patch failed to apply on kernel stable v4.14, I'm re-sending it > fixing the conflict. Now applied, thanks. greg k-h