From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: [PATCH v4 8/9] gpu/drm/i915: optimize out the case when a range is updated to read only Date: Thu, 24 Jan 2019 10:30:32 -0500 Message-ID: <20190124153032.GA5030@redhat.com> References: <20190123222315.1122-1-jglisse@redhat.com> <20190123222315.1122-9-jglisse@redhat.com> <154833175216.4120.925061299171157938@jlahtine-desk.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <154833175216.4120.925061299171157938@jlahtine-desk.ger.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Joonas Lahtinen Cc: Ralph Campbell , Jan Kara , Arnd Bergmann , kvm@vger.kernel.org, Matthew Wilcox , linux-rdma@vger.kernel.org, John Hubbard , Felix Kuehling , Radim =?utf-8?B?S3LEjW3DocWZ?= , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Jason Gunthorpe , Christian =?iso-8859-1?Q?K=F6nig?= , Ross Zwisler , linux-fsdevel@vger.kernel.org, Paolo Bonzini , Dan Williams , Andrew Morton List-Id: linux-rdma@vger.kernel.org T24gVGh1LCBKYW4gMjQsIDIwMTkgYXQgMDI6MDk6MTJQTSArMDIwMCwgSm9vbmFzIExhaHRpbmVu IHdyb3RlOgo+IEhpIEplcm9tZSwKPiAKPiBUaGlzIHBhdGNoIHNlZW1zIHRvIGhhdmUgcGxlbnR5 IG9mIENjOnMsIGJ1dCBub25lIG9mIHRoZSByaWdodCBvbmVzIDopCgpTbyBzb3JyeSwgaSBhbSBi YWQgd2l0aCBnaXQgY29tbWFuZHMuCgo+IEZvciBmdXJ0aGVyIGl0ZXJhdGlvbnMsIEkgZ3Vlc3Mg eW91IGNvdWxkIHVzZSBnaXQgb3B0aW9uIC0tY2MgdG8gbWFrZQo+IHN1cmUgZXZlcnlvbmUgZ2V0 cyB0aGUgd2hvbGUgc2VyaWVzLCBhbmQgc3RpbGwga2VlcCB0aGUgQ2M6cyBpbiB0aGUKPiBwYXRj aGVzIHRoZW1zZWx2ZXMgcmVsZXZhbnQgdG8gc3Vic3lzdGVtcy4KCldpbGwgZG8uCgo+IFRoaXMg ZG9lc24ndCBzZWVtIHRvIGJlIG9uIHRvcCBvZiBkcm0tdGlwLCBidXQgb24gdG9wIG9mIHlvdXIg cHJldmlvdXMKPiBwYXRjaGVzKD8pIHRoYXQgSSBoYWQgc29tZSBjb21tZW50cyBhYm91dC4gQ291 bGQgeW91IHRha2UgYSBtb21lbnQgdG8KPiBmaXJzdCBhZGRyZXNzIHRoZSBjb3VwbGUgb2YgcXVl c3Rpb24gSSBoYWQsIGJlZm9yZSBwcm9jZWVkaW5nIHRvIGRpc2N1c3MKPiB3aGF0IGlzIGJ1aWx0 IG9uIHRvcCBvZiB0aGF0IGJhc2UuCgpJdCBpcyBvbiB0b3Agb2YgTGludXMgdHJlZSBzbyByb3Vn aGx5IH4gcmMzIGl0IGRvZXMgbm90IGRlcGVuZCBvbiBhbnkKb2YgdGhlIHByZXZpb3VzIHBhdGNo IGkgcG9zdGVkLiBJIHN0aWxsIGludGVuZGVkIHRvIHByb3Bvc2UgdG8gcmVtb3ZlCkdVUCBmcm9t IGk5MTUgb25jZSBpIGdldCBhcm91bmQgdG8gaW1wbGVtZW50IHRoZSBlcXVpdmFsZW50IG9mIEdV UF9mYXN0CmZvciBITU0gYW5kIG90aGVyIGJvbnVzIGNvb2tpZXMgd2l0aCBpdC4KClRoZSBwbGFu IGlzIG9uY2UgaSBoYXZlIGFsbCBtbSBiaXRzIHByb3Blcmx5IHVwc3RyZWFtIHRoZW4gaSBjYW4g cHJvcG9zZQpwYXRjaGVzIHRvIGluZGl2aWR1YWwgZHJpdmVyIGFnYWluc3QgdGhlIHByb3BlciBk cml2ZXIgdHJlZSBpZSBmb2xsb3dpbmcKcnVsZXMgb2YgZWFjaCBpbmRpdmlkdWFsIGRldmljZSBk cml2ZXIgc3ViLXN5c3RlbSBhbmQgQ2Mgb25seSBwZW9wbGUKdGhlcmUgdG8gYXZvaWQgc3BhbW1p bmcgdGhlIG1tIGZvbGtzIDopCgoKPiAKPiBNeSByZXBseSdzIE1lc3NhZ2UtSUQgaXM6Cj4gMTU0 Mjg5NTE4OTk0LjE5NDAyLjM0ODE4Mzg1NDgwMjgwNjgyMTNAamxhaHRpbmUtZGVzay5nZXIuY29y cC5pbnRlbC5jb20KPiAKPiBSZWdhcmRzLCBKb29uYXMKPiAKPiBQUy4gUGxlYXNlIGtlZXAgbWUg Q2M6ZCBpbiB0aGUgZm9sbG93aW5nIHBhdGNoZXMsIEknbSBrZWVuIG9uCj4gdW5kZXJzdGFuZGlu ZyB0aGUgbW90aXZlIGFuZCBiZW5lZml0cy4KPiAKPiBRdW90aW5nIGpnbGlzc2VAcmVkaGF0LmNv bSAoMjAxOS0wMS0yNCAwMDoyMzoxNCkKPiA+IEZyb206IErDqXLDtG1lIEdsaXNzZSA8amdsaXNz ZUByZWRoYXQuY29tPgo+ID4gCj4gPiBXaGVuIHJhbmdlIG9mIHZpcnR1YWwgYWRkcmVzcyBpcyB1 cGRhdGVkIHJlYWQgb25seSBhbmQgY29ycmVzcG9uZGluZwo+ID4gdXNlciBwdHIgb2JqZWN0IGFy ZSBhbHJlYWR5IHJlYWQgb25seSBpdCBpcyBwb2ludGxlc3MgdG8gZG8gYW55dGhpbmcuCj4gPiBP cHRpbWl6ZSB0aGlzIGNhc2Ugb3V0Lgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBKw6lyw7RtZSBH bGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiA+IENjOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJp c3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+ IENjOiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KPiA+IENjOiBKYXNv biBHdW50aG9ycGUgPGpnZ0BtZWxsYW5veC5jb20+Cj4gPiBDYzogQW5kcmV3IE1vcnRvbiA8YWtw bUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBNYXR0aGV3IFdpbGNveCA8bWF3aWxjb3hA bWljcm9zb2Z0LmNvbT4KPiA+IENjOiBSb3NzIFp3aXNsZXIgPHp3aXNsZXJAa2VybmVsLm9yZz4K PiA+IENjOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBQ YW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPgo+ID4gQ2M6IFJhZGltIEtyxI1tw6HF mSA8cmtyY21hckByZWRoYXQuY29tPgo+ID4gQ2M6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQGtlcm5l bC5vcmc+Cj4gPiBDYzogUmFscGggQ2FtcGJlbGwgPHJjYW1wYmVsbEBudmlkaWEuY29tPgo+ID4g Q2M6IEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZpZGlhLmNvbT4KPiA+IENjOiBrdm1Admdlci5r ZXJuZWwub3JnCj4gPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gQ2M6 IGxpbnV4LXJkbWFAdmdlci5rZXJuZWwub3JnCj4gPiBDYzogbGludXgtZnNkZXZlbEB2Z2VyLmtl cm5lbC5vcmcKPiA+IENjOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+ID4gLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jIHwgMTYgKysrKysrKysr KysrKysrKwo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCj4gPiAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKPiA+IGluZGV4IDk1NTg1ODJjMTA1 ZS4uMjMzMzBhYzNkN2VhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fdXNlcnB0ci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91 c2VycHRyLmMKPiA+IEBAIC01OSw2ICs1OSw3IEBAIHN0cnVjdCBpOTE1X21tdV9vYmplY3Qgewo+ ID4gICAgICAgICBzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlIGl0Owo+ID4gICAgICAgICBzdHJ1 Y3QgbGlzdF9oZWFkIGxpbms7Cj4gPiAgICAgICAgIHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwo+ ID4gKyAgICAgICBib29sIHJlYWRfb25seTsKPiA+ICAgICAgICAgYm9vbCBhdHRhY2hlZDsKPiA+ ICB9Owo+ID4gIAo+ID4gQEAgLTExOSw2ICsxMjAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3Vz ZXJwdHJfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICpfbW4s Cj4gPiAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mKF9tbiwgc3RydWN0IGk5MTVfbW11X25v dGlmaWVyLCBtbik7Cj4gPiAgICAgICAgIHN0cnVjdCBpOTE1X21tdV9vYmplY3QgKm1vOwo+ID4g ICAgICAgICBzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICppdDsKPiA+ICsgICAgICAgYm9vbCB1 cGRhdGVfdG9fcmVhZF9vbmx5Owo+ID4gICAgICAgICBMSVNUX0hFQUQoY2FuY2VsbGVkKTsKPiA+ ICAgICAgICAgdW5zaWduZWQgbG9uZyBlbmQ7Cj4gPiAgCj4gPiBAQCAtMTI4LDYgKzEzMCw4IEBA IHN0YXRpYyBpbnQgaTkxNV9nZW1fdXNlcnB0cl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0 cnVjdCBtbXVfbm90aWZpZXIgKl9tbiwKPiA+ICAgICAgICAgLyogaW50ZXJ2YWwgcmFuZ2VzIGFy ZSBpbmNsdXNpdmUsIGJ1dCBpbnZhbGlkYXRlIHJhbmdlIGlzIGV4Y2x1c2l2ZSAqLwo+ID4gICAg ICAgICBlbmQgPSByYW5nZS0+ZW5kIC0gMTsKPiA+ICAKPiA+ICsgICAgICAgdXBkYXRlX3RvX3Jl YWRfb25seSA9IG1tdV9ub3RpZmllcl9yYW5nZV91cGRhdGVfdG9fcmVhZF9vbmx5KHJhbmdlKTsK PiA+ICsKPiA+ICAgICAgICAgc3Bpbl9sb2NrKCZtbi0+bG9jayk7Cj4gPiAgICAgICAgIGl0ID0g aW50ZXJ2YWxfdHJlZV9pdGVyX2ZpcnN0KCZtbi0+b2JqZWN0cywgcmFuZ2UtPnN0YXJ0LCBlbmQp Owo+ID4gICAgICAgICB3aGlsZSAoaXQpIHsKPiA+IEBAIC0xNDUsNiArMTQ5LDE3IEBAIHN0YXRp YyBpbnQgaTkxNV9nZW1fdXNlcnB0cl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBt bXVfbm90aWZpZXIgKl9tbiwKPiA+ICAgICAgICAgICAgICAgICAgKiBvYmplY3QgaWYgaXQgaXMg bm90IGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGRlc3Ryb3llZC4KPiA+ICAgICAgICAgICAgICAg ICAgKi8KPiA+ICAgICAgICAgICAgICAgICBtbyA9IGNvbnRhaW5lcl9vZihpdCwgc3RydWN0IGk5 MTVfbW11X29iamVjdCwgaXQpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIC8qCj4gPiArICAg ICAgICAgICAgICAgICogSWYgaXQgaXMgYWxyZWFkeSByZWFkIG9ubHkgYW5kIHdlIGFyZSB1cGRh dGluZyB0bwo+ID4gKyAgICAgICAgICAgICAgICAqIHJlYWQgb25seSB0aGVuIHdlIGRvIG5vdCBu ZWVkIHRvIGNoYW5nZSBhbnl0aGluZy4KPiA+ICsgICAgICAgICAgICAgICAgKiBTbyBzYXZlIHRp bWUgYW5kIHNraXAgdGhpcyBvbmUuCj4gPiArICAgICAgICAgICAgICAgICovCj4gPiArICAgICAg ICAgICAgICAgaWYgKHVwZGF0ZV90b19yZWFkX29ubHkgJiYgbW8tPnJlYWRfb25seSkgewo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgaXQgPSBpbnRlcnZhbF90cmVlX2l0ZXJfbmV4dChpdCwg cmFuZ2UtPnN0YXJ0LCBlbmQpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gPiArICAgICAgICAgICAgICAgfQo+ID4gKwo+ID4gICAgICAgICAgICAgICAgIGlmIChrcmVm X2dldF91bmxlc3NfemVybygmbW8tPm9iai0+YmFzZS5yZWZjb3VudCkpCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICBxdWV1ZV93b3JrKG1uLT53cSwgJm1vLT53b3JrKTsKPiA+ICAKPiA+IEBA IC0yNzAsNiArMjg1LDcgQEAgaTkxNV9nZW1fdXNlcnB0cl9pbml0X19tbXVfbm90aWZpZXIoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICAgICAgICAgbW8tPm1uID0gbW47Cj4g PiAgICAgICAgIG1vLT5vYmogPSBvYmo7Cj4gPiAgICAgICAgIG1vLT5pdC5zdGFydCA9IG9iai0+ dXNlcnB0ci5wdHI7Cj4gPiArICAgICAgIG1vLT5yZWFkX29ubHkgPSBpOTE1X2dlbV9vYmplY3Rf aXNfcmVhZG9ubHkob2JqKTsKPiA+ICAgICAgICAgbW8tPml0Lmxhc3QgPSBvYmotPnVzZXJwdHIu cHRyICsgb2JqLT5iYXNlLnNpemUgLSAxOwo+ID4gICAgICAgICBJTklUX1dPUksoJm1vLT53b3Jr LCBjYW5jZWxfdXNlcnB0cik7Cj4gPiAgCj4gPiAtLSAKPiA+IDIuMTcuMgo+ID4gCj4gPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gZHJpLWRldmVs IG1haWxpbmcgbGlzdAo+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== 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=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED, USER_AGENT_MUTT autolearn=unavailable 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 3BBC4C282C5 for ; Thu, 24 Jan 2019 15:30:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 11C90218A2 for ; Thu, 24 Jan 2019 15:30:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728536AbfAXPau (ORCPT ); Thu, 24 Jan 2019 10:30:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48452 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728079AbfAXPau (ORCPT ); Thu, 24 Jan 2019 10:30:50 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E547DC070E05; Thu, 24 Jan 2019 15:30:48 +0000 (UTC) Received: from redhat.com (unknown [10.20.6.236]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 11F6F10D8233; Thu, 24 Jan 2019 15:30:33 +0000 (UTC) Date: Thu, 24 Jan 2019 10:30:32 -0500 From: Jerome Glisse To: Joonas Lahtinen Cc: linux-mm@kvack.org, Ralph Campbell , Jan Kara , Arnd Bergmann , kvm@vger.kernel.org, Matthew Wilcox , linux-rdma@vger.kernel.org, John Hubbard , Felix Kuehling , Radim =?utf-8?B?S3LEjW3DocWZ?= , Dan Williams , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Michal Hocko , Jason Gunthorpe , Ross Zwisler , linux-fsdevel@vger.kernel.org, Paolo Bonzini , Andrew Morton , Christian =?iso-8859-1?Q?K=F6nig?= Subject: Re: [PATCH v4 8/9] gpu/drm/i915: optimize out the case when a range is updated to read only Message-ID: <20190124153032.GA5030@redhat.com> References: <20190123222315.1122-1-jglisse@redhat.com> <20190123222315.1122-9-jglisse@redhat.com> <154833175216.4120.925061299171157938@jlahtine-desk.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <154833175216.4120.925061299171157938@jlahtine-desk.ger.corp.intel.com> User-Agent: Mutt/1.10.0 (2018-05-17) X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 24 Jan 2019 15:30:49 +0000 (UTC) Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org On Thu, Jan 24, 2019 at 02:09:12PM +0200, Joonas Lahtinen wrote: > Hi Jerome, > > This patch seems to have plenty of Cc:s, but none of the right ones :) So sorry, i am bad with git commands. > For further iterations, I guess you could use git option --cc to make > sure everyone gets the whole series, and still keep the Cc:s in the > patches themselves relevant to subsystems. Will do. > This doesn't seem to be on top of drm-tip, but on top of your previous > patches(?) that I had some comments about. Could you take a moment to > first address the couple of question I had, before proceeding to discuss > what is built on top of that base. It is on top of Linus tree so roughly ~ rc3 it does not depend on any of the previous patch i posted. I still intended to propose to remove GUP from i915 once i get around to implement the equivalent of GUP_fast for HMM and other bonus cookies with it. The plan is once i have all mm bits properly upstream then i can propose patches to individual driver against the proper driver tree ie following rules of each individual device driver sub-system and Cc only people there to avoid spamming the mm folks :) > > My reply's Message-ID is: > 154289518994.19402.3481838548028068213@jlahtine-desk.ger.corp.intel.com > > Regards, Joonas > > PS. Please keep me Cc:d in the following patches, I'm keen on > understanding the motive and benefits. > > Quoting jglisse@redhat.com (2019-01-24 00:23:14) > > From: Jérôme Glisse > > > > When range of virtual address is updated read only and corresponding > > user ptr object are already read only it is pointless to do anything. > > Optimize this case out. > > > > Signed-off-by: Jérôme Glisse > > Cc: Christian König > > Cc: Jan Kara > > Cc: Felix Kuehling > > Cc: Jason Gunthorpe > > Cc: Andrew Morton > > Cc: Matthew Wilcox > > Cc: Ross Zwisler > > Cc: Dan Williams > > Cc: Paolo Bonzini > > Cc: Radim Krčmář > > Cc: Michal Hocko > > Cc: Ralph Campbell > > Cc: John Hubbard > > Cc: kvm@vger.kernel.org > > Cc: dri-devel@lists.freedesktop.org > > Cc: linux-rdma@vger.kernel.org > > Cc: linux-fsdevel@vger.kernel.org > > Cc: Arnd Bergmann > > --- > > drivers/gpu/drm/i915/i915_gem_userptr.c | 16 ++++++++++++++++ > > 1 file changed, 16 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c > > index 9558582c105e..23330ac3d7ea 100644 > > --- a/drivers/gpu/drm/i915/i915_gem_userptr.c > > +++ b/drivers/gpu/drm/i915/i915_gem_userptr.c > > @@ -59,6 +59,7 @@ struct i915_mmu_object { > > struct interval_tree_node it; > > struct list_head link; > > struct work_struct work; > > + bool read_only; > > bool attached; > > }; > > > > @@ -119,6 +120,7 @@ static int i915_gem_userptr_mn_invalidate_range_start(struct mmu_notifier *_mn, > > container_of(_mn, struct i915_mmu_notifier, mn); > > struct i915_mmu_object *mo; > > struct interval_tree_node *it; > > + bool update_to_read_only; > > LIST_HEAD(cancelled); > > unsigned long end; > > > > @@ -128,6 +130,8 @@ static int i915_gem_userptr_mn_invalidate_range_start(struct mmu_notifier *_mn, > > /* interval ranges are inclusive, but invalidate range is exclusive */ > > end = range->end - 1; > > > > + update_to_read_only = mmu_notifier_range_update_to_read_only(range); > > + > > spin_lock(&mn->lock); > > it = interval_tree_iter_first(&mn->objects, range->start, end); > > while (it) { > > @@ -145,6 +149,17 @@ static int i915_gem_userptr_mn_invalidate_range_start(struct mmu_notifier *_mn, > > * object if it is not in the process of being destroyed. > > */ > > mo = container_of(it, struct i915_mmu_object, it); > > + > > + /* > > + * If it is already read only and we are updating to > > + * read only then we do not need to change anything. > > + * So save time and skip this one. > > + */ > > + if (update_to_read_only && mo->read_only) { > > + it = interval_tree_iter_next(it, range->start, end); > > + continue; > > + } > > + > > if (kref_get_unless_zero(&mo->obj->base.refcount)) > > queue_work(mn->wq, &mo->work); > > > > @@ -270,6 +285,7 @@ i915_gem_userptr_init__mmu_notifier(struct drm_i915_gem_object *obj, > > mo->mn = mn; > > mo->obj = obj; > > mo->it.start = obj->userptr.ptr; > > + mo->read_only = i915_gem_object_is_readonly(obj); > > mo->it.last = obj->userptr.ptr + obj->base.size - 1; > > INIT_WORK(&mo->work, cancel_userptr); > > > > -- > > 2.17.2 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel