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=-3.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no 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 A73D2C4727F for ; Wed, 7 Oct 2020 16:44:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 51572206FC for ; Wed, 7 Oct 2020 16:44:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qIM+Yh3y" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726348AbgJGQoX (ORCPT ); Wed, 7 Oct 2020 12:44:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726105AbgJGQoX (ORCPT ); Wed, 7 Oct 2020 12:44:23 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 18737C061755; Wed, 7 Oct 2020 09:44:23 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id g12so2966342wrp.10; Wed, 07 Oct 2020 09:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1mE5Gwn7xDIbM4htDyTfJFvStSh1Kg9XYcxXUrf4KUg=; b=qIM+Yh3y1tTEMLEhGgZdsvlJJLqbxVhsnJEIVoxm1EkKMcNXPsUH55jARR3ezgWKDx 9DBnk7oaNMu1GJOG7a7oTNnS9Hu4/W0MpHuo8a5rgSgM5MeIEPUrmXEpy4hy3Vu4aT4j QkWouP/erWGYyvTE5hHKbdxlGcsla3Ne/q2GCp5u7MQ8DQWFn4PxZDxffFXIWaFc+ECE dy8nO2lF/XFRfNJoDknZW5CKKKGvBwwf8bsgVftP/ALcXwfGWj3CG6hS8RMrcpbDkMIJ dcj/vTtBzXmFC+52hmFHX4tS76Zum9doFKeHuICoAifeljMVT5FNF7iEnFHU5UJS+dI1 aIxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1mE5Gwn7xDIbM4htDyTfJFvStSh1Kg9XYcxXUrf4KUg=; b=ExxZafcEvIKhc3lkCcTr8vTi2Bi8O2Sznlz9YINhyYYpoiFPkZH4EtL/jEe2yFTnsJ kg2r9QAhJikmYEogUOJSilIl48P219/4j+3DQgswYZaeRWh9JwIQLNVL3McirAoud08z jp4KBwyWMufNtYd9jHm1c/4lzunuze29hvfXeQZZaVqtHnst2l/ynbeO/0+To1K7/5AP P4EF3gYjgXhYbwdt5VO1pSoltxQAWsdjcXmHYfvhLiiPbsZEzIFcItORoWVV4VuDQv8j +lo/kDjppGj4SDy06jge80SRL92x4lPKGtkMMf8Xcbi42WiATOzRaCmqpg0kngJa3qNf tVBQ== X-Gm-Message-State: AOAM530seaS3Afv9tJqBnhB2ywv9+X5EDRq47WWKAX9NUwPnlXQw+wl9 OEn7CsnXro0vs88ztYVeUqbFrQHeVpuWinAJiP0= X-Google-Smtp-Source: ABdhPJz5HXnIE07xhxeYYE0PvUFLfABD/NJndXH7Tzk3cKxWEGnk9LZL0h8rgo1bVNUoAUGvaOwZEIX4OPrvF4gLutw= X-Received: by 2002:adf:bc0f:: with SMTP id s15mr4568520wrg.83.1602089061296; Wed, 07 Oct 2020 09:44:21 -0700 (PDT) MIME-Version: 1.0 References: <20200930211723.3028059-1-robdclark@gmail.com> <20201002105256.GA6112@intel.com> <20201002110544.GB6112@intel.com> <20201005121524.GI6112@intel.com> In-Reply-To: <20201005121524.GI6112@intel.com> From: Rob Clark Date: Wed, 7 Oct 2020 09:44:09 -0700 Message-ID: Subject: Re: [PATCH v2 0/3] drm: commit_work scheduling To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Daniel Vetter , Rob Clark , linux-arm-msm , open list , Tim Murray , dri-devel , Tejun Heo , Qais Yousef Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Mon, Oct 5, 2020 at 5:15 AM Ville Syrj=C3=A4l=C3=A4 wrote: > > On Fri, Oct 02, 2020 at 10:55:52AM -0700, Rob Clark wrote: > > On Fri, Oct 2, 2020 at 4:05 AM Ville Syrj=C3=A4l=C3=A4 > > wrote: > > > > > > On Fri, Oct 02, 2020 at 01:52:56PM +0300, Ville Syrj=C3=A4l=C3=A4 wro= te: > > > > On Thu, Oct 01, 2020 at 05:25:55PM +0200, Daniel Vetter wrote: > > > > > On Thu, Oct 1, 2020 at 5:15 PM Rob Clark wr= ote: > > > > > > > > > > > > I'm leaning towards converting the other drivers over to use th= e > > > > > > per-crtc kwork, and then dropping the 'commit_work` from atomic= state. > > > > > > I can add a patch to that, but figured I could postpone that ch= urn > > > > > > until there is some by-in on this whole idea. > > > > > > > > > > i915 has its own commit code, it's not even using the current com= mit > > > > > helpers (nor the commit_work). Not sure how much other fun there = is. > > > > > > > > I don't think we want per-crtc threads for this in i915. Seems > > > > to me easier to guarantee atomicity across multiple crtcs if > > > > we just commit them from the same thread. > > > > > > Oh, and we may have to commit things in a very specific order > > > to guarantee the hw doesn't fall over, so yeah definitely per-crtc > > > thread is a no go. > > > > If I'm understanding the i915 code, this is only the case for modeset > > commits? I suppose we could achieve the same result by just deciding > > to pick the kthread of the first CRTC for modeset commits. I'm not > > really so much concerned about parallelism for modeset. > > I'm not entirely happy about the random differences between modesets > and other commits. Ideally we wouldn't need any. > > Anyways, even if we ignore modesets we still have the issue with > atomicity guarantees across multiple crtcs. So I think we still > don't want per-crtc threads, rather it should be thread for each > commit. I don't really see any other way to solve the priority inversion other than per-CRTC kthreads. I've been thinking about it a bit more, and my conclusion is: (1) There isn't really any use for the N+1'th commit to start running before the kthread_work for the N'th commit completes, so I don't mind losing the unbound aspect of the workqueue approach (2) For cases where there does need to be serialization between commits on different CRTCs, since there is a per-CRTC kthread, you could achieve this with locking Since i915 isn't using the atomic helpers here, I suppose it is an option for i915 to just continue doing what it is doing. And I could ofc just stop using the atomic commit helper and do the kthreads thing in msm. But my first preference would be that the commit helper does generally the right thing. BR, -R 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=-3.3 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no 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 9BAAFC47095 for ; Wed, 7 Oct 2020 16:44:24 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 30998206BE for ; Wed, 7 Oct 2020 16:44:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qIM+Yh3y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 30998206BE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 221BD6E965; Wed, 7 Oct 2020 16:44:23 +0000 (UTC) Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id C82B26E917 for ; Wed, 7 Oct 2020 16:44:22 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id t10so3005792wrv.1 for ; Wed, 07 Oct 2020 09:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1mE5Gwn7xDIbM4htDyTfJFvStSh1Kg9XYcxXUrf4KUg=; b=qIM+Yh3y1tTEMLEhGgZdsvlJJLqbxVhsnJEIVoxm1EkKMcNXPsUH55jARR3ezgWKDx 9DBnk7oaNMu1GJOG7a7oTNnS9Hu4/W0MpHuo8a5rgSgM5MeIEPUrmXEpy4hy3Vu4aT4j QkWouP/erWGYyvTE5hHKbdxlGcsla3Ne/q2GCp5u7MQ8DQWFn4PxZDxffFXIWaFc+ECE dy8nO2lF/XFRfNJoDknZW5CKKKGvBwwf8bsgVftP/ALcXwfGWj3CG6hS8RMrcpbDkMIJ dcj/vTtBzXmFC+52hmFHX4tS76Zum9doFKeHuICoAifeljMVT5FNF7iEnFHU5UJS+dI1 aIxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1mE5Gwn7xDIbM4htDyTfJFvStSh1Kg9XYcxXUrf4KUg=; b=UyCBU8sbNFaPAEuzLZLTeYr8WnJk/LWhndi1P4hRGX0mLY+QGIpgu/ytcFaDfcMxYs MyPMw6NayIUkEn7wVwFAcDXIU6uo7WZMGfWofuK3MewIMM+8ZvlLKRQ+1/UT90jaCiHX DRkc40mgHNl8hz0prBp4kRCbv53QWoyN5RCPTXfrTCdDgN+RJcT1DlgUWRz8RkWyiYTp 92MAkEUoj0yn6VOYedTvr2vB0UKw2SdPAiqVf8aTvdPYxwWwdKAzHaxsSKYi0Bvj7F9x ODQDAtjDHFYRtV6lrXQJCUnXqglaYxPjPse0SLdL9iSCixFv1nnuZrFWko4qVVyCPSsc VAYQ== X-Gm-Message-State: AOAM530oPN2j6XBR4uvf6istSc9KoUQnjWRwcTMDRpWf6dPMzZ8Sleu3 DnMzDIR2dC/F92W1OdiZAuQkXKxL9VHVQituGbA= X-Google-Smtp-Source: ABdhPJz5HXnIE07xhxeYYE0PvUFLfABD/NJndXH7Tzk3cKxWEGnk9LZL0h8rgo1bVNUoAUGvaOwZEIX4OPrvF4gLutw= X-Received: by 2002:adf:bc0f:: with SMTP id s15mr4568520wrg.83.1602089061296; Wed, 07 Oct 2020 09:44:21 -0700 (PDT) MIME-Version: 1.0 References: <20200930211723.3028059-1-robdclark@gmail.com> <20201002105256.GA6112@intel.com> <20201002110544.GB6112@intel.com> <20201005121524.GI6112@intel.com> In-Reply-To: <20201005121524.GI6112@intel.com> From: Rob Clark Date: Wed, 7 Oct 2020 09:44:09 -0700 Message-ID: Subject: Re: [PATCH v2 0/3] drm: commit_work scheduling To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , linux-arm-msm , open list , Tim Murray , dri-devel , Tejun Heo , Qais Yousef Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gTW9uLCBPY3QgNSwgMjAyMCBhdCA1OjE1IEFNIFZpbGxlIFN5cmrDpGzDpAo8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+Cj4gT24gRnJpLCBPY3QgMDIsIDIwMjAgYXQg MTA6NTU6NTJBTSAtMDcwMCwgUm9iIENsYXJrIHdyb3RlOgo+ID4gT24gRnJpLCBPY3QgMiwgMjAy MCBhdCA0OjA1IEFNIFZpbGxlIFN5cmrDpGzDpAo+ID4gPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPiB3cm90ZToKPiA+ID4KPiA+ID4gT24gRnJpLCBPY3QgMDIsIDIwMjAgYXQgMDE6NTI6 NTZQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgT2N0IDAx LCAyMDIwIGF0IDA1OjI1OjU1UE0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4g PiBPbiBUaHUsIE9jdCAxLCAyMDIwIGF0IDU6MTUgUE0gUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21h aWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSSdtIGxlYW5pbmcgdG93YXJk cyBjb252ZXJ0aW5nIHRoZSBvdGhlciBkcml2ZXJzIG92ZXIgdG8gdXNlIHRoZQo+ID4gPiA+ID4g PiBwZXItY3J0YyBrd29yaywgYW5kIHRoZW4gZHJvcHBpbmcgdGhlICdjb21taXRfd29ya2AgZnJv bSBhdG9taWMgc3RhdGUuCj4gPiA+ID4gPiA+IEkgY2FuIGFkZCBhIHBhdGNoIHRvIHRoYXQsIGJ1 dCBmaWd1cmVkIEkgY291bGQgcG9zdHBvbmUgdGhhdCBjaHVybgo+ID4gPiA+ID4gPiB1bnRpbCB0 aGVyZSBpcyBzb21lIGJ5LWluIG9uIHRoaXMgd2hvbGUgaWRlYS4KPiA+ID4gPiA+Cj4gPiA+ID4g PiBpOTE1IGhhcyBpdHMgb3duIGNvbW1pdCBjb2RlLCBpdCdzIG5vdCBldmVuIHVzaW5nIHRoZSBj dXJyZW50IGNvbW1pdAo+ID4gPiA+ID4gaGVscGVycyAobm9yIHRoZSBjb21taXRfd29yaykuIE5v dCBzdXJlIGhvdyBtdWNoIG90aGVyIGZ1biB0aGVyZSBpcy4KPiA+ID4gPgo+ID4gPiA+IEkgZG9u J3QgdGhpbmsgd2Ugd2FudCBwZXItY3J0YyB0aHJlYWRzIGZvciB0aGlzIGluIGk5MTUuIFNlZW1z Cj4gPiA+ID4gdG8gbWUgZWFzaWVyIHRvIGd1YXJhbnRlZSBhdG9taWNpdHkgYWNyb3NzIG11bHRp cGxlIGNydGNzIGlmCj4gPiA+ID4gd2UganVzdCBjb21taXQgdGhlbSBmcm9tIHRoZSBzYW1lIHRo cmVhZC4KPiA+ID4KPiA+ID4gT2gsIGFuZCB3ZSBtYXkgaGF2ZSB0byBjb21taXQgdGhpbmdzIGlu IGEgdmVyeSBzcGVjaWZpYyBvcmRlcgo+ID4gPiB0byBndWFyYW50ZWUgdGhlIGh3IGRvZXNuJ3Qg ZmFsbCBvdmVyLCBzbyB5ZWFoIGRlZmluaXRlbHkgcGVyLWNydGMKPiA+ID4gdGhyZWFkIGlzIGEg bm8gZ28uCj4gPgo+ID4gSWYgSSdtIHVuZGVyc3RhbmRpbmcgdGhlIGk5MTUgY29kZSwgdGhpcyBp cyBvbmx5IHRoZSBjYXNlIGZvciBtb2Rlc2V0Cj4gPiBjb21taXRzPyAgSSBzdXBwb3NlIHdlIGNv dWxkIGFjaGlldmUgdGhlIHNhbWUgcmVzdWx0IGJ5IGp1c3QgZGVjaWRpbmcKPiA+IHRvIHBpY2sg dGhlIGt0aHJlYWQgb2YgdGhlIGZpcnN0IENSVEMgZm9yIG1vZGVzZXQgY29tbWl0cy4gIEknbSBu b3QKPiA+IHJlYWxseSBzbyBtdWNoIGNvbmNlcm5lZCBhYm91dCBwYXJhbGxlbGlzbSBmb3IgbW9k ZXNldC4KPgo+IEknbSBub3QgZW50aXJlbHkgaGFwcHkgYWJvdXQgdGhlIHJhbmRvbSBkaWZmZXJl bmNlcyBiZXR3ZWVuIG1vZGVzZXRzCj4gYW5kIG90aGVyIGNvbW1pdHMuIElkZWFsbHkgd2Ugd291 bGRuJ3QgbmVlZCBhbnkuCj4KPiBBbnl3YXlzLCBldmVuIGlmIHdlIGlnbm9yZSBtb2Rlc2V0cyB3 ZSBzdGlsbCBoYXZlIHRoZSBpc3N1ZSB3aXRoCj4gYXRvbWljaXR5IGd1YXJhbnRlZXMgYWNyb3Nz IG11bHRpcGxlIGNydGNzLiBTbyBJIHRoaW5rIHdlIHN0aWxsCj4gZG9uJ3Qgd2FudCBwZXItY3J0 YyB0aHJlYWRzLCByYXRoZXIgaXQgc2hvdWxkIGJlIHRocmVhZCBmb3IgZWFjaAo+IGNvbW1pdC4K CkkgZG9uJ3QgcmVhbGx5IHNlZSBhbnkgb3RoZXIgd2F5IHRvIHNvbHZlIHRoZSBwcmlvcml0eSBp bnZlcnNpb24gb3RoZXIKdGhhbiBwZXItQ1JUQyBrdGhyZWFkcy4gIEkndmUgYmVlbiB0aGlua2lu ZyBhYm91dCBpdCBhIGJpdCBtb3JlLCBhbmQKbXkgY29uY2x1c2lvbiBpczoKCigxKSBUaGVyZSBp c24ndCByZWFsbHkgYW55IHVzZSBmb3IgdGhlIE4rMSd0aCBjb21taXQgdG8gc3RhcnQgcnVubmlu ZwpiZWZvcmUgdGhlIGt0aHJlYWRfd29yayBmb3IgdGhlIE4ndGggY29tbWl0IGNvbXBsZXRlcywg c28gSSBkb24ndCBtaW5kCmxvc2luZyB0aGUgdW5ib3VuZCBhc3BlY3Qgb2YgdGhlIHdvcmtxdWV1 ZSBhcHByb2FjaAooMikgRm9yIGNhc2VzIHdoZXJlIHRoZXJlIGRvZXMgbmVlZCB0byBiZSBzZXJp YWxpemF0aW9uIGJldHdlZW4KY29tbWl0cyBvbiBkaWZmZXJlbnQgQ1JUQ3MsIHNpbmNlIHRoZXJl IGlzIGEgcGVyLUNSVEMga3RocmVhZCwgeW91CmNvdWxkIGFjaGlldmUgdGhpcyB3aXRoIGxvY2tp bmcKClNpbmNlIGk5MTUgaXNuJ3QgdXNpbmcgdGhlIGF0b21pYyBoZWxwZXJzIGhlcmUsIEkgc3Vw cG9zZSBpdCBpcyBhbgpvcHRpb24gZm9yIGk5MTUgdG8ganVzdCBjb250aW51ZSBkb2luZyB3aGF0 IGl0IGlzIGRvaW5nLgoKQW5kIEkgY291bGQgb2ZjIGp1c3Qgc3RvcCB1c2luZyB0aGUgYXRvbWlj IGNvbW1pdCBoZWxwZXIgYW5kIGRvIHRoZQprdGhyZWFkcyB0aGluZyBpbiBtc20uIEJ1dCBteSBm aXJzdCBwcmVmZXJlbmNlIHdvdWxkIGJlIHRoYXQgdGhlCmNvbW1pdCBoZWxwZXIgZG9lcyBnZW5l cmFsbHkgdGhlIHJpZ2h0IHRoaW5nLgoKQlIsCi1SCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=