From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hurley Subject: Re: [PATCH] drm/nouveau/gem: tolerate a buffer specified multiple times Date: Thu, 30 Jul 2015 10:49:10 -0400 Message-ID: <55BA3966.1050806@hurleysoftware.com> References: <1438252085-4773-1-git-send-email-pure.logic@nexus-software.ie> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f172.google.com (mail-qk0-f172.google.com [209.85.220.172]) by gabe.freedesktop.org (Postfix) with ESMTPS id F37866E281 for ; Thu, 30 Jul 2015 07:49:12 -0700 (PDT) Received: by qkbm65 with SMTP id m65so18748137qkb.2 for ; Thu, 30 Jul 2015 07:49:12 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ilia Mirkin , Bryan O'Donoghue Cc: Maarten Lankhorst , Ben Skeggs , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org T24gMDcvMzAvMjAxNSAxMDoxMiBBTSwgSWxpYSBNaXJraW4gd3JvdGU6Cj4gSXMgdGhpcyBoYXBw ZW5pbmcgd2l0aCBsaWJkcm0gMi40LjYwPyBJZiBzbywgdGhhdCdzIGEga25vd24KPiAodXNlci1z aWRlKSBpc3N1ZSBhbmQgc2hvdWxkIGJlIGZpeGVkIGJ5IHVzaW5nIGFueSB2ZXJzaW9uIGJ1dCB0 aGF0Cj4gb25lLgoKV2hhdCdzIHRoZSBmcmVlZGVza3RvcCBidWd6aWxsYSAjIGZvciByZWZlcmVu Y2U/CgpSZWdhcmRzLApQZXRlciBIdXJsZXkKCj4gT24gVGh1LCBKdWwgMzAsIDIwMTUgYXQgNjoy OCBBTSwgQnJ5YW4gTydEb25vZ2h1ZQo+IDxwdXJlLmxvZ2ljQG5leHVzLXNvZnR3YXJlLmllPiB3 cm90ZToKPj4gVWJ1bnR1IGlzIHNoaXBwaW5nIENocm9tZSBWZXJzaW9uIDQ0LjAuMjQwMy4xMjUg KDY0LWJpdCkuIFdpdGggdGhpcyB2ZXJzaW9uCj4+IG9mIHRoZSBicm93c2VyIGFuZCBjdXJyZW50 IHRpcC1vZi10cmVlIDg2ZWEwN2NhODQ2YSBJIGdldCB0aGUgZm9sbG93aW5nCj4+IGVycm9yIG1l c3NhZ2UgZm9sbG93ZWQgYnkgYSBsb2NrLXVwIG9mIFguCj4+Cj4+IG5vdXZlYXUgRVtjaHJvbWVb MjczN11dIG11bHRpcGxlIGluc3RhbmNlcyBvZiBidWZmZXIgMzMgb24gdmFsaWRhdGlvbiBsaXN0 Cj4+IG5vdXZlYXUgRVtjaHJvbWVbMjczN11dIHZhbGlkYXRlX2luaXQKPj4gbm91dmVhdSBFW2No cm9tZVsyNzM3XV0gdmFsaWRhdGU6IC0yMgo+PiBub3V2ZWF1IEVbY2hyb21lWzI3MzddXSBtdWx0 aXBsZSBpbnN0YW5jZXMgb2YgYnVmZmVyIDE4IG9uIHZhbGlkYXRpb24gbGlzdAo+PiBub3V2ZWF1 IEVbY2hyb21lWzI3MzddXSB2YWxpZGF0ZV9pbml0Cj4+ICBub3V2ZWF1IEVbY2hyb21lWzI3Mzdd XSB2YWxpZGF0ZTogLTIyCj4+IG5vdXZlYXUgRVsgICBQRklGT11bMDAwMDowMTowMC4wXSBQRklG TzogcmVhZCBmYXVsdCBhdAo+PiAweDAwMDNlMjEwMDAgW1BBR0VfTk9UX1BSRVNFTlRdIGZyb20g KHVua25vd24gZW51bQo+PiAweDAwMDAwMDAwKS9HUEMwLyh1bmtub3duIGVudW0gMHgwMDAwMDAw Zikgb24gY2hhbm5lbCAweDAwN2Y4MGMwMDAKPj4gW3Vua25vd25dCj4+Cj4+IFRoaXMgcGF0Y2gg c3VnZ2VzdHMgYSBmaXggZm9yIHRoaXMgd2l0aCB0aGUga2VybmVsIHNpbXBseSB0b2xlcmF0aW5n IGFuCj4+IGFwcGxpY2F0aW9uIHN1Y2ggYXMgY2hyb21lIHJlcXVlc3RpbmcgdGhlIHNhbWUgYnVm ZmVyIG1vcmUgdGhhbiBvbmNlLgo+Pgo+PiBXaXRoIHRoZSB2ZXJzaW9uIG9mIGNocm9tZSBnaXZl biBhYm92ZSwgeW91IGNhbiBlbGljaXQgdGhpcyBiZWhhdmlvdXIgYnkKPj4gY2xpY2tpbmcgb24g dGhlIGJvb2ttYXJrcyBkcm9wIGRvd24uIFRoaXMgd2lsbCBvcGVuIGFub3RoZXIgd2luZG93IG9u LXRvcAo+PiBvZiB0aGUgY3VycmVudCB3aW5kb3cuIE1pbnVzIHRoZSBmaXggaW5jbHVkZWQgaGVy ZSwgdGhpcyB3aWxsIGxlYWQgdG8gaGFyZAo+PiBsb2NrdXAgb2YgYWxsIHdpbmRvd3Mgb24gdGhl IGRlc2t0b3AuCj4+Cj4+IENocm9tZSBWZXJzaW9uIDQ0LjAuMjQwMy4xMjUgKDY0LWJpdCkKPj4g TGludXggNC4yLjAtcmM0KyA4NmVhMDdjYTg0NmEKPj4KPj4gUGVvcGxlIGFyZSBzdWdnZXN0aW5n IHJ1bm5pbmcgY2hyb21lIHdpdGggLWRpc2FibGUtZ3B1IGhvd2V2ZXIgaXQgaXMKPj4gcG9zc2li bGUgdG8gcnVuIENocm9tZSBpbiBpdCdzIGRlZmF1bHQgbW9kZSwgc28gbG9uZyBhcyB3ZSB0b2xl cmF0ZSB0aGUKPj4gYWJvdmUgYmVoYXZpb3VyLgo+Pgo+PiBodHRwOi8vdGlueXVybC5jb20vb3J2 YnpmMwo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBCcnlhbiBPJ0Rvbm9naHVlIDxwdXJlLmxvZ2ljQG5l eHVzLXNvZnR3YXJlLmllPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZ2VtLmMgfCA0ICstLS0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBk ZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCj4+IGlu ZGV4IGFmMWVlNTEuLmE5Njk0ZmFhZCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9nZW0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2dlbS5jCj4+IEBAIC00MDEsOSArNDAxLDcgQEAgcmV0cnk6Cj4+ICAgICAgICAgICAgICAg ICBpZiAobnZiby0+cmVzZXJ2ZWRfYnkgJiYgbnZiby0+cmVzZXJ2ZWRfYnkgPT0gZmlsZV9wcml2 KSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIE5WX1BSSU5USyhlcnJvciwgY2xpLCAibXVs dGlwbGUgaW5zdGFuY2VzIG9mIGJ1ZmZlciAlZCBvbiAiCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInZhbGlkYXRpb24gbGlzdFxuIiwgYi0+aGFuZGxlKTsKPj4gLSAg ICAgICAgICAgICAgICAgICAgICAgZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQo Z2VtKTsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwo+PiAgICAgICAgICAgICAgICAgfQo+Pgo+PiAgICAgICAgICAgICAgICAgcmV0ID0gdHRt X2JvX3Jlc2VydmUoJm52Ym8tPmJvLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgJm9wLT50aWNrZXQpOwo+ PiAtLQo+PiAxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751756AbbG3OtO (ORCPT ); Thu, 30 Jul 2015 10:49:14 -0400 Received: from mail-qk0-f181.google.com ([209.85.220.181]:33125 "EHLO mail-qk0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750936AbbG3OtM (ORCPT ); Thu, 30 Jul 2015 10:49:12 -0400 Message-ID: <55BA3966.1050806@hurleysoftware.com> Date: Thu, 30 Jul 2015 10:49:10 -0400 From: Peter Hurley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Ilia Mirkin , "Bryan O'Donoghue" CC: Maarten Lankhorst , Ben Skeggs , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] drm/nouveau/gem: tolerate a buffer specified multiple times References: <1438252085-4773-1-git-send-email-pure.logic@nexus-software.ie> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/30/2015 10:12 AM, Ilia Mirkin wrote: > Is this happening with libdrm 2.4.60? If so, that's a known > (user-side) issue and should be fixed by using any version but that > one. What's the freedesktop bugzilla # for reference? Regards, Peter Hurley > On Thu, Jul 30, 2015 at 6:28 AM, Bryan O'Donoghue > wrote: >> Ubuntu is shipping Chrome Version 44.0.2403.125 (64-bit). With this version >> of the browser and current tip-of-tree 86ea07ca846a I get the following >> error message followed by a lock-up of X. >> >> nouveau E[chrome[2737]] multiple instances of buffer 33 on validation list >> nouveau E[chrome[2737]] validate_init >> nouveau E[chrome[2737]] validate: -22 >> nouveau E[chrome[2737]] multiple instances of buffer 18 on validation list >> nouveau E[chrome[2737]] validate_init >> nouveau E[chrome[2737]] validate: -22 >> nouveau E[ PFIFO][0000:01:00.0] PFIFO: read fault at >> 0x0003e21000 [PAGE_NOT_PRESENT] from (unknown enum >> 0x00000000)/GPC0/(unknown enum 0x0000000f) on channel 0x007f80c000 >> [unknown] >> >> This patch suggests a fix for this with the kernel simply tolerating an >> application such as chrome requesting the same buffer more than once. >> >> With the version of chrome given above, you can elicit this behaviour by >> clicking on the bookmarks drop down. This will open another window on-top >> of the current window. Minus the fix included here, this will lead to hard >> lockup of all windows on the desktop. >> >> Chrome Version 44.0.2403.125 (64-bit) >> Linux 4.2.0-rc4+ 86ea07ca846a >> >> People are suggesting running chrome with -disable-gpu however it is >> possible to run Chrome in it's default mode, so long as we tolerate the >> above behaviour. >> >> http://tinyurl.com/orvbzf3 >> >> Signed-off-by: Bryan O'Donoghue >> --- >> drivers/gpu/drm/nouveau/nouveau_gem.c | 4 +--- >> 1 file changed, 1 insertion(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c >> index af1ee51..a9694faad 100644 >> --- a/drivers/gpu/drm/nouveau/nouveau_gem.c >> +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c >> @@ -401,9 +401,7 @@ retry: >> if (nvbo->reserved_by && nvbo->reserved_by == file_priv) { >> NV_PRINTK(error, cli, "multiple instances of buffer %d on " >> "validation list\n", b->handle); >> - drm_gem_object_unreference_unlocked(gem); >> - ret = -EINVAL; >> - break; >> + continue; >> } >> >> ret = ttm_bo_reserve(&nvbo->bo, true, false, true, &op->ticket); >> -- >> 1.9.1