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=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 05824C433B4 for ; Thu, 8 Apr 2021 04:26:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C9A1F610FC for ; Thu, 8 Apr 2021 04:26:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229534AbhDHE0m (ORCPT ); Thu, 8 Apr 2021 00:26:42 -0400 Received: from rere.qmqm.pl ([91.227.64.183]:44111 "EHLO rere.qmqm.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229469AbhDHE0j (ORCPT ); Thu, 8 Apr 2021 00:26:39 -0400 Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 4FG7W803jgzCg; Thu, 8 Apr 2021 06:26:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1617855988; bh=qV2VpTLMpZWXRFCyeedYlxHbghdwLxGxZaqi0GEU1/4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gTjlsVCAGkjaPoo/BbQcO77yNHYvuDMrpCkp/O6NBeZgBsq6ah90OKSkNjqJ1hCTH ZjnOizDiBu8ajTdySkdp8ZFxXAUBU5BiRLLsLYX4+mfU/A2Y21MPSYIuaUkWRbwkaf 8HATHDnNusG77VQl20Gtk1A+9qu6MIexg0yHkP5aQdc8bIXAzsMfoAt0Mw+6ZYl5fp bIYLgFvuUXjgU7Z7cYBpOnZYz6hW0/eYpFkdFbwygs4GiUj0QxlaBJoiv4TTunDaZO niAb5JPbJNnPlu2ktgcwTWXb13RIVbV9d91XBklxSQ9fHdRa+m22ekvM3wUMdH2KOz F4KUvk0DviP0w== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.4 at mail Date: Thu, 8 Apr 2021 06:25:31 +0200 From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= To: Dmitry Osipenko Cc: Mikko Perttunen , Thierry Reding , Mikko Perttunen , jonathanh@nvidia.com, airlied@linux.ie, daniel@ffwll.ch, linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, talho@nvidia.com, bhuntsman@nvidia.com Subject: Re: [PATCH v5 03/21] gpu: host1x: Show number of pending waiters in debugfs Message-ID: <20210408042531.GC19244@qmqm.qmqm.pl> References: <20210111130019.3515669-1-mperttunen@nvidia.com> <20210111130019.3515669-4-mperttunen@nvidia.com> <1010683e-56c9-4b06-1540-d8c60a632c70@kapsi.fi> <20210401211949.GA25223@qmqm.qmqm.pl> <7636618d-72f7-ee0f-df23-1f2ec96973b4@gmail.com> <20210408041344.GB19244@qmqm.qmqm.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210408041344.GB19244@qmqm.qmqm.pl> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org On Thu, Apr 08, 2021 at 06:13:44AM +0200, Michał Mirosław wrote: > On Fri, Apr 02, 2021 at 07:02:32PM +0300, Dmitry Osipenko wrote: > > 02.04.2021 00:19, Michał Mirosław пишет: > > > On Fri, Mar 26, 2021 at 04:34:13PM +0200, Mikko Perttunen wrote: > > >> On 3/23/21 12:16 PM, Thierry Reding wrote: > > >>> On Mon, Jan 11, 2021 at 03:00:01PM +0200, Mikko Perttunen wrote: > > >>>> Show the number of pending waiters in the debugfs status file. > > >>>> This is useful for testing to verify that waiters do not leak > > >>>> or accumulate incorrectly. > > >>>> > > >>>> Signed-off-by: Mikko Perttunen > > >>>> --- > > >>>> drivers/gpu/host1x/debug.c | 14 +++++++++++--- > > >>>> 1 file changed, 11 insertions(+), 3 deletions(-) > > >>>> > > >>>> diff --git a/drivers/gpu/host1x/debug.c b/drivers/gpu/host1x/debug.c > > >>>> index 1b4997bda1c7..8a14880c61bb 100644 > > >>>> --- a/drivers/gpu/host1x/debug.c > > >>>> +++ b/drivers/gpu/host1x/debug.c > > >>>> @@ -69,6 +69,7 @@ static int show_channel(struct host1x_channel *ch, void *data, bool show_fifo) > > >>>> static void show_syncpts(struct host1x *m, struct output *o) > > >>>> { > > >>>> + struct list_head *pos; > > >>>> unsigned int i; > > >>>> host1x_debug_output(o, "---- syncpts ----\n"); > > >>>> @@ -76,12 +77,19 @@ static void show_syncpts(struct host1x *m, struct output *o) > > >>>> for (i = 0; i < host1x_syncpt_nb_pts(m); i++) { > > >>>> u32 max = host1x_syncpt_read_max(m->syncpt + i); > > >>>> u32 min = host1x_syncpt_load(m->syncpt + i); > > >>>> + unsigned int waiters = 0; > > >>>> - if (!min && !max) > > >>>> + spin_lock(&m->syncpt[i].intr.lock); > > >>>> + list_for_each(pos, &m->syncpt[i].intr.wait_head) > > >>>> + waiters++; > > >>>> + spin_unlock(&m->syncpt[i].intr.lock); > > >>> > > >>> Would it make sense to keep a running count so that we don't have to > > >>> compute it here? > > >> > > >> Considering this is just a debug facility, I think I prefer not adding a new > > >> field just for it. > > > > > > This looks like IRQ-disabled region, so unless only root can trigger > > > this code, maybe the additional field could save a potential headache? > > > How many waiters can there be in the worst case? > > > > The host1x's IRQ handler runs in a workqueue, so it should be okay. > > Why, then, this uses a spinlock (and it has 'intr' in its name)? The critical sections are already O(n) in number of waiters, so this patch doesn't make things worse as I previously thought. The questions remain: What is the expected number and upper bound of workers? Shouldn't this be a mutex instead? Best Regards Michał Mirosław 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=-14.3 required=3.0 tests=BAYES_00,DKIM_ADSP_ALL, DKIM_INVALID,DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 74739C433ED for ; Thu, 8 Apr 2021 04:26:32 +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 C986D611C0 for ; Thu, 8 Apr 2021 04:26:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C986D611C0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=rere.qmqm.pl 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 C02E66E140; Thu, 8 Apr 2021 04:26:30 +0000 (UTC) Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183]) by gabe.freedesktop.org (Postfix) with ESMTPS id 99C586E140 for ; Thu, 8 Apr 2021 04:26:29 +0000 (UTC) Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 4FG7W803jgzCg; Thu, 8 Apr 2021 06:26:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1617855988; bh=qV2VpTLMpZWXRFCyeedYlxHbghdwLxGxZaqi0GEU1/4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gTjlsVCAGkjaPoo/BbQcO77yNHYvuDMrpCkp/O6NBeZgBsq6ah90OKSkNjqJ1hCTH ZjnOizDiBu8ajTdySkdp8ZFxXAUBU5BiRLLsLYX4+mfU/A2Y21MPSYIuaUkWRbwkaf 8HATHDnNusG77VQl20Gtk1A+9qu6MIexg0yHkP5aQdc8bIXAzsMfoAt0Mw+6ZYl5fp bIYLgFvuUXjgU7Z7cYBpOnZYz6hW0/eYpFkdFbwygs4GiUj0QxlaBJoiv4TTunDaZO niAb5JPbJNnPlu2ktgcwTWXb13RIVbV9d91XBklxSQ9fHdRa+m22ekvM3wUMdH2KOz F4KUvk0DviP0w== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.4 at mail Date: Thu, 8 Apr 2021 06:25:31 +0200 From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= To: Dmitry Osipenko Subject: Re: [PATCH v5 03/21] gpu: host1x: Show number of pending waiters in debugfs Message-ID: <20210408042531.GC19244@qmqm.qmqm.pl> References: <20210111130019.3515669-1-mperttunen@nvidia.com> <20210111130019.3515669-4-mperttunen@nvidia.com> <1010683e-56c9-4b06-1540-d8c60a632c70@kapsi.fi> <20210401211949.GA25223@qmqm.qmqm.pl> <7636618d-72f7-ee0f-df23-1f2ec96973b4@gmail.com> <20210408041344.GB19244@qmqm.qmqm.pl> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210408041344.GB19244@qmqm.qmqm.pl> User-Agent: Mutt/1.10.1 (2018-07-13) 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: Mikko Perttunen , airlied@linux.ie, dri-devel@lists.freedesktop.org, jonathanh@nvidia.com, talho@nvidia.com, bhuntsman@nvidia.com, Thierry Reding , linux-tegra@vger.kernel.org, Mikko Perttunen Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVGh1LCBBcHIgMDgsIDIwMjEgYXQgMDY6MTM6NDRBTSArMDIwMCwgTWljaGHFgiBNaXJvc8WC YXcgd3JvdGU6Cj4gT24gRnJpLCBBcHIgMDIsIDIwMjEgYXQgMDc6MDI6MzJQTSArMDMwMCwgRG1p dHJ5IE9zaXBlbmtvIHdyb3RlOgo+ID4gMDIuMDQuMjAyMSAwMDoxOSwgTWljaGHFgiBNaXJvc8WC YXcg0L/QuNGI0LXRgjoKPiA+ID4gT24gRnJpLCBNYXIgMjYsIDIwMjEgYXQgMDQ6MzQ6MTNQTSAr MDIwMCwgTWlra28gUGVydHR1bmVuIHdyb3RlOgo+ID4gPj4gT24gMy8yMy8yMSAxMjoxNiBQTSwg VGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gPiA+Pj4gT24gTW9uLCBKYW4gMTEsIDIwMjEgYXQgMDM6 MDA6MDFQTSArMDIwMCwgTWlra28gUGVydHR1bmVuIHdyb3RlOgo+ID4gPj4+PiBTaG93IHRoZSBu dW1iZXIgb2YgcGVuZGluZyB3YWl0ZXJzIGluIHRoZSBkZWJ1Z2ZzIHN0YXR1cyBmaWxlLgo+ID4g Pj4+PiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdGluZyB0byB2ZXJpZnkgdGhhdCB3YWl0ZXJzIGRv IG5vdCBsZWFrCj4gPiA+Pj4+IG9yIGFjY3VtdWxhdGUgaW5jb3JyZWN0bHkuCj4gPiA+Pj4+Cj4g PiA+Pj4+IFNpZ25lZC1vZmYtYnk6IE1pa2tvIFBlcnR0dW5lbiA8bXBlcnR0dW5lbkBudmlkaWEu Y29tPgo+ID4gPj4+PiAtLS0KPiA+ID4+Pj4gICBkcml2ZXJzL2dwdS9ob3N0MXgvZGVidWcuYyB8 IDE0ICsrKysrKysrKysrLS0tCj4gPiA+Pj4+ICAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCj4gPiA+Pj4+Cj4gPiA+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9ob3N0MXgvZGVidWcuYyBiL2RyaXZlcnMvZ3B1L2hvc3QxeC9kZWJ1Zy5jCj4gPiA+ Pj4+IGluZGV4IDFiNDk5N2JkYTFjNy4uOGExNDg4MGM2MWJiIDEwMDY0NAo+ID4gPj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9ob3N0MXgvZGVidWcuYwo+ID4gPj4+PiArKysgYi9kcml2ZXJzL2dwdS9o b3N0MXgvZGVidWcuYwo+ID4gPj4+PiBAQCAtNjksNiArNjksNyBAQCBzdGF0aWMgaW50IHNob3df Y2hhbm5lbChzdHJ1Y3QgaG9zdDF4X2NoYW5uZWwgKmNoLCB2b2lkICpkYXRhLCBib29sIHNob3df ZmlmbykKPiA+ID4+Pj4gICBzdGF0aWMgdm9pZCBzaG93X3N5bmNwdHMoc3RydWN0IGhvc3QxeCAq bSwgc3RydWN0IG91dHB1dCAqbykKPiA+ID4+Pj4gICB7Cj4gPiA+Pj4+ICsJc3RydWN0IGxpc3Rf aGVhZCAqcG9zOwo+ID4gPj4+PiAgIAl1bnNpZ25lZCBpbnQgaTsKPiA+ID4+Pj4gICAJaG9zdDF4 X2RlYnVnX291dHB1dChvLCAiLS0tLSBzeW5jcHRzIC0tLS1cbiIpOwo+ID4gPj4+PiBAQCAtNzYs MTIgKzc3LDE5IEBAIHN0YXRpYyB2b2lkIHNob3dfc3luY3B0cyhzdHJ1Y3QgaG9zdDF4ICptLCBz dHJ1Y3Qgb3V0cHV0ICpvKQo+ID4gPj4+PiAgIAlmb3IgKGkgPSAwOyBpIDwgaG9zdDF4X3N5bmNw dF9uYl9wdHMobSk7IGkrKykgewo+ID4gPj4+PiAgIAkJdTMyIG1heCA9IGhvc3QxeF9zeW5jcHRf cmVhZF9tYXgobS0+c3luY3B0ICsgaSk7Cj4gPiA+Pj4+ICAgCQl1MzIgbWluID0gaG9zdDF4X3N5 bmNwdF9sb2FkKG0tPnN5bmNwdCArIGkpOwo+ID4gPj4+PiArCQl1bnNpZ25lZCBpbnQgd2FpdGVy cyA9IDA7Cj4gPiA+Pj4+IC0JCWlmICghbWluICYmICFtYXgpCj4gPiA+Pj4+ICsJCXNwaW5fbG9j aygmbS0+c3luY3B0W2ldLmludHIubG9jayk7Cj4gPiA+Pj4+ICsJCWxpc3RfZm9yX2VhY2gocG9z LCAmbS0+c3luY3B0W2ldLmludHIud2FpdF9oZWFkKQo+ID4gPj4+PiArCQkJd2FpdGVycysrOwo+ ID4gPj4+PiArCQlzcGluX3VubG9jaygmbS0+c3luY3B0W2ldLmludHIubG9jayk7Cj4gPiA+Pj4K PiA+ID4+PiBXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIGtlZXAgYSBydW5uaW5nIGNvdW50IHNvIHRo YXQgd2UgZG9uJ3QgaGF2ZSB0bwo+ID4gPj4+IGNvbXB1dGUgaXQgaGVyZT8KPiA+ID4+Cj4gPiA+ PiBDb25zaWRlcmluZyB0aGlzIGlzIGp1c3QgYSBkZWJ1ZyBmYWNpbGl0eSwgSSB0aGluayBJIHBy ZWZlciBub3QgYWRkaW5nIGEgbmV3Cj4gPiA+PiBmaWVsZCBqdXN0IGZvciBpdC4KPiA+ID4gCj4g PiA+IFRoaXMgbG9va3MgbGlrZSBJUlEtZGlzYWJsZWQgcmVnaW9uLCBzbyB1bmxlc3Mgb25seSBy b290IGNhbiB0cmlnZ2VyCj4gPiA+IHRoaXMgY29kZSwgbWF5YmUgdGhlIGFkZGl0aW9uYWwgZmll bGQgY291bGQgc2F2ZSBhIHBvdGVudGlhbCBoZWFkYWNoZT8KPiA+ID4gSG93IG1hbnkgd2FpdGVy cyBjYW4gdGhlcmUgYmUgaW4gdGhlIHdvcnN0IGNhc2U/Cj4gPiAKPiA+IFRoZSBob3N0MXgncyBJ UlEgaGFuZGxlciBydW5zIGluIGEgd29ya3F1ZXVlLCBzbyBpdCBzaG91bGQgYmUgb2theS4KPiAK PiBXaHksIHRoZW4sIHRoaXMgdXNlcyBhIHNwaW5sb2NrIChhbmQgaXQgaGFzICdpbnRyJyBpbiBp dHMgbmFtZSk/CgpUaGUgY3JpdGljYWwgc2VjdGlvbnMgYXJlIGFscmVhZHkgTyhuKSBpbiBudW1i ZXIgb2Ygd2FpdGVycywgc28gdGhpcwpwYXRjaCBkb2Vzbid0IG1ha2UgdGhpbmdzIHdvcnNlIGFz IEkgcHJldmlvdXNseSB0aG91Z2h0LiBUaGUgcXVlc3Rpb25zCnJlbWFpbjogV2hhdCBpcyB0aGUg ZXhwZWN0ZWQgbnVtYmVyIGFuZCB1cHBlciBib3VuZCBvZiB3b3JrZXJzPwpTaG91bGRuJ3QgdGhp cyBiZSBhIG11dGV4IGluc3RlYWQ/CgpCZXN0IFJlZ2FyZHMKTWljaGHFgiBNaXJvc8WCYXcKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==